1. Antecedentes de la aplicación
Utilice Python para operar la base de datos MySQL en la red interna corporativa. Sin embargo, Python no viene con la biblioteca de funciones pymysql para acceder a la base de datos MySQL y debe instalarse por separado. Hay muchas instalaciones de pymysql en Internet que requieren soporte de Internet. Este artículo explica principalmente cómo instalar pymysql sin conexión y presenta brevemente cómo pymysql realiza las operaciones de mysql.
pymysql es un controlador de base de datos MySQL escrito en Python puro, basado en la especificación Python DB-API 2.0. No solo es compatible con la versión Python 2.x, sino que también es compatible con la versión Python 3.x, por lo que cuando lo use, debe elegir el paquete de instalación de pymysql apropiado de acuerdo con su propia versión de Python.
2. Preparación ambiental
1.versión pymysql. La versión de Python utilizada en este artículo es Python 3.9, por lo que la versión de pymysql utilizada es 0.9.3.
2.versión anaconda3. El entorno operativo Python de este artículo es anaconda 2.3.1, python3.9.
3. Entorno IDE. Este artículo utiliza el software IDE de Python Spyder 5.2.2 que viene con anaconda.
4.versión mysql. La versión de MySQL es 5.7, proporcionada por wampserver 2.5. Si desea utilizar la versión mysql8.1, puede consultar el artículo Problemas y soluciones encontrados al actualizar la base de datos MySql 5.7 a 8.1_wamp update blog-CSDN de mysql_hongdi
3. Instalación de pymsql
1. Descargue el paquete de instalación de pymsql
Las direcciones de descarga para otras versiones también se proporcionan aquí:
2. Instale pyMySQL
(1) Descomprima pymsql-0.9.3.tar.gz en el directorio de instalación de anaconda, asumiendo que es E:\Anaconda3
(2) Abra la interfaz de línea de comando cmd, cambie a E:\Anaconda3 y luego ingrese el comando python setup.py install
(3) Pruebe si la instalación se realizó correctamente. Ingrese el intérprete de Python en la línea de comando, ingrese el comando >>> importar pymysql y presione Entrar. Si no se informa ningún error, se puede considerar que pymsql se instaló correctamente.
4. Introducción al desarrollo de pymysql.
(1) Proceso de codificación de pymysql
1. Establezca una conexión de base de datos db = pymysql.connect (parámetro)
Los parámetros de la función connect (): host = dirección de host o localhost, puerto = número de puerto (predeterminado 3306),
usuario = nombre de usuario, contraseña = contraseña,
base de datos=base de datos, charaset=método de codificación (utf8 predeterminado)
2. Cree el objeto de cursor cur = db.cursor()
3. Ejecute el método de cursor cur.execute("declaración sql")
4. Envíe a la base de datos db.commit( )
5.Cierre el objeto del cursor cur.close()
6.Cierre la conexión de la base de datos db.close()
(2) Consulta en pymysql
Agregar, eliminar y modificar pymysql es relativamente simple: simplemente coloque las declaraciones de inserción, eliminación y actualización correspondientes en cur.execute para su ejecución. Para verificar, pymysql proporciona varios métodos: fetchone, fetchall, fetchmany, que se presentan a continuación:
1.método de búsqueda de una persona
Devuelve un solo registro, es decir una tupla. Si no hay datos devuelve Ninguno. Por ejemplo:
cur.execute("seleccione col1,col2, de mytable donde id=1");
arr=cur.fetchone()
#Se puede acceder a los valores de col1 y col2 mediante arr[0] y arr[1]
imprimir(arr[0],arr[1])
Nota: Utilice cursor.fetchone() varias veces en un bucle para obtener el siguiente resultado hasta que esté vacío.
2.método de búsqueda
Devuelve varios registros, es decir, varias tuplas. Si no hay resultado, devuelve (). El código es el siguiente.
cur.execute("seleccione col1,col2, de mitabla ");
arrs = cur.fetchall()
para fila en arrs:
print(fila)
3.fetchmany(n)方法
Para obtener las primeras n filas de datos, el código es el siguiente:
cur.execute("seleccione col1,col2, de mitabla ");
arr3 = cur.fetchmany(3) obtiene las primeras tres filas de datos
(3) Uso de marcadores de posición en pymysql
El proceso de desarrollo a menudo requiere pasar parámetros a declaraciones SQL. La forma más sencilla es unir cadenas, pero este método es propenso a ataques de inyección SQL. Por lo tanto, al desarrollar, se recomienda pasar parámetros. Aquí presentamos principalmente varios métodos.
Supongamos que necesita agregar registros a la tabla mytable
Declaración SQL normal: sql = "insertar en mytable (col1,col2) valores ('usuario1',19),('usuario2',20);"
1. Método de marcador de posición:
sql = “insertar en mytable (col1,col2) valores ('%s',%f),('%s',%f);”
Para mantener una coincidencia completa con el formato de la declaración SQL, es necesario escribir la siguiente declaración:
sql = “insertar en mytable (col1,col2) valores ('%s',%f),('%s',%f);”%('usuario1',19,'usuario2',20)
Nota: Este método requiere agregar comillas simples '%s' al marcador de posición de la cadena.
2. Método de paso de parámetros:
sql = “insertar en mytable (col1,col2) valores ('%s',%f),('%s',%f);”
Además de pasar sql en el método de ejecución, también se debe pasar la lista de parámetros correspondiente, de la siguiente manera:
cur.execute(sql,['user1',19,'user2',20])
Nota: El segundo parámetro aquí coincidirá secuencialmente de acuerdo con los valores de la lista
(4) Ejemplo de código fuente completo
import pymysql
db = pymysql.connect(host='localhost',
port=3306,
user='user',
password='pwd',
database='mydatabase',
charset='utf8')
cur = db.cursor()
sql = "INSERT INTO interest (col1,col2) VALUES ('%s',%f),('%s',%f);"
try:
cur.execute(sql, ['user1',19,'user2',20])
db.commit()
except Exception as e:
db.rollback()
finally:
cur.close()
db.close()