Instalación y funcionamiento de pymysql

1. Instalación de pymysql

1.1 instalación en línea del intérprete de entorno conda

Ejecute Terminal como administrador o use Anaconda Powershell Prompt y ejecútelo como administrador

conda install -c conda-forge pymysql

Nota : después de que conda instala pymysql, solo se puede llamar usando el intérprete de conda

1.2 Instalación en línea del entorno Python

1. Encuentre la ubicación de instalación de python, abra la terminal e ingrese donde python

2. Ingrese cd para ingresar al directorio de ubicación de python

inserte la descripción de la imagen aquí

3. Introducir guiones

inserte la descripción de la imagen aquí

4. Ingrese pip install pymysql

2. Proceso de operación de escritura

    1、建立数据库连接 (db = pymysql.connect(...))
        connect()参数:host(主机地址,本地localhost)、port(端口号,默认3306)
                      user(用户名)、password(密码)、database(数据库)、charaset(编码方式,默认utf8)
    2、创建游标对象 (c = db.cursor())
    3、游标方法   c.execute("insert......")
    4、提交到数据库  db.commit()  将写操作提交到数据库(增删改)
    5、关闭游标对象  c.close()
    6、断开数据库连接   db.close()

3. Caso de operación de escritura (inserción)

3.1 Caso 1

La cadena sql en Python tiene el mismo formato que la instrucción sql, es decir, se puede copiar a la terminal y ejecutar

import pymysql

# 连接数据库
db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='1234',
                     database='student',
                     charset='utf8')
# 获取游标(操作数据库,执行sql语句,承载结果)
cur = db.cursor()
# 执行SQL语句
sql = "insert into class (name,age,sex,score) values ('王俊龙',19,'w',67),('李伯俊',19,'m',81);"
cur.execute(sql)
# 提交写操作,可将多次写操作一起提交
db.commit()
cur.close()
db.close()

3.2 Caso 2

Método 1 de procesamiento de declaraciones SQL: en este método, debe prestar atención al marcador de posición de la cadena y las comillas '', el propósito es mantener el formato de la declaración sql completamente coincidente con la
declaración sql: sql = "insertar en clase (nombre, edad ,sexo,puntuación) valores ('Wang Junlong',19,'w',67),('Li Bojun',19,'m',81);" Por lo tanto, el marcador de posición de cadena debe estar entre comillas
precio, nivel, comentario) VALORES ( '%s','%s',%f,'%s','%s' ); ” % (
nombre, afición, precio, nivel , comentario)

import pymysql

# 连接数据库
db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='1234',
                     database='student',
                     charset='utf8')
# 获取游标(操作数据库、执行sql语句、承载结果)
cur = db.cursor()
name = input("姓名:")
hobby = input("爱好:")
price = int(input("价格:"))
# 不用强转也可以,sql语句中字符串带'',
# 数字没有,而在下方格式化中,数字直接取代占位符,与sql语句一致;而字符串需要在占位符上加''
level = input("水平:")
comment = input("评语:")
# 注意:下列字符串格式化时一定要与sql语句格式一致,字段对应的值如果是字符串加 ''
# 例如:sql = "insert into class (name,age,sex,score) values ('王俊龙',19,'w',67),('李伯俊',19,'m',81);"
sql = "INSERT INTO interest (name,hobby,price,level,comment) VALUES ('%s','%s',%f,'%s','%s');" % (
    name, hobby, price, level, comment)
try:
    cur.execute(sql)
    db.commit()
except Exception as e:
    db.rollback()
finally:
    cur.close()
    db.close()

3.3 Caso 3

Use pymysql para operaciones de lectura.
Cuando ejecute el método de procesamiento de sentencias sql 2, use los valores en la segunda lista de parámetros para que coincidan con %s
sql = "INSERT INTO interest (name, hobby, price, level, comment) VALUES (%s , %s,%s,%s,%s);"
cur.execute(sql, [nombre, hobby, precio, nivel, comentario])

import pymysql

db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='1234',
                     database='student',
                     charset='utf8')
cur = db.cursor()
name = input("姓名:")
hobby = input("爱好:")
price = input("价格:")
# 不用强转也可以,sql语句中字符串带'',
# 数字没有,而在下方格式化中,数字直接取代占位符,与sql语句一致;而字符串需要在占位符上加''
level = input("水平:")
comment = input("评语:")
sql = "INSERT INTO interest (name,hobby,price,level,comment) VALUES (%s,%s,%s,%s,%s);"
try:
    # 执行sql语句时,会自动查找VALUES后面的值,用参数2列表中的值顺次匹配,会自动适应sql语句格式
    # (不用管列表中值的数据类型,sql字符串中直接%s),
    # 此时sql这个字符串中的%s不用加''
    cur.execute(sql, [name, hobby, price, level, comment])
    db.commit()
except Exception as e:
    db.rollback()
finally:
    cur.close()
    db.close()

**Nota: **Además de las operaciones de inserción mencionadas anteriormente, también hay operaciones de eliminación y modificación para las operaciones de escritura. El proceso es similar a los casos 1 y 2, solo reemplace la instrucción sql. En el caso 3, solo los valores Se pueden pasar parámetros o parámetros de ciertos campos.No se pueden pasar nombres de campos y nombres de tablas.

4. Proceso de operación de lectura

import pymysql

# 连接数据库
db = pymysql.connect(host='localhost',
                     port=3306,
                     user='root',
                     password='1234',
                     database='student',
                     charset='utf8')
# 创建游标对象
cur = db.cursor()
sql = "select * from interest"
# 执行sql语句
cur.execute(sql)
# 打印读取的内容
print(cur.fetchone())     # 返回值是一个元组
print(cur.fetchmany(3))   # 游标输出内容,等待下次输出时会接着上次游标所在位置读取(该语句输出三条记录)
print(cur.fetchall())     # 单独使用,输出所有的记录;但此时会在上述游标操作后的位置输出所有记录(返回值为元组,里面每一条记录也是元组)
cur.close()
db.close()
"""
# (1, 'Tom', 'sing,dance', Decimal('16800.00'), 'B', '表现不错,进步好快')
# ((2, 'kevin', 'draw', Decimal('18800.00'), 'A', '基础扎实,画风突出'), (3, 'lily', 'sing,draw', Decimal('13499.00'), 'C', '进步空间巨大'), (5, 'Mary', 'sing', Decimal('13900.00'), 'B', '未来可期'))
# ((6, 'Jim', 'sing,dance', Decimal('16900.00'), 'C', '再接再厉'),)
"""

Supongo que te gusta

Origin blog.csdn.net/m0_51489557/article/details/130301811
Recomendado
Clasificación