Red de conocimiento informático - Material del sitio web - Cómo usar Python para conectarse a la base de datos, insertar y consultar datos

Cómo usar Python para conectarse a la base de datos, insertar y consultar datos

Puede visitar la interfaz y API de la base de datos de Python para ver una lista detallada de las bases de datos compatibles. Para diferentes bases de datos, debe descargar diferentes módulos DB API; por ejemplo, si necesita acceder a la base de datos Oracle y a los datos Mysql, debe descargar los módulos de bases de datos Oracle y MySQL.

DB-API es una especificación. Define un conjunto de objetos necesarios y métodos de acceso a la base de datos para proporcionar interfaces de acceso consistentes para varios sistemas de bases de datos subyacentes y varios programas de interfaz de bases de datos.

DB-API de Python implementa la interfaz de la mayoría de las bases de datos, por lo que la conexión a cada base de datos funciona de la misma manera.

Proceso de uso de Python DB-API:

Introduzca el módulo API.

Obtener la conexión a la base de datos.

Ejecutar sentencias SQL y procedimientos almacenados.

Cierra la conexión a la base de datos.

¿Qué es MySQLdb?

MySQLdb es la interfaz para que Python se conecte a la base de datos Mysql. Implementa la especificación API de la base de datos Python V2.0 basada en la API MySQL C.

¿Cómo instalar MySQLdb?

Para utilizar DB-API para escribir scripts MySQL, debe asegurarse de que MySQL esté instalado. Copie el siguiente código y ejecute:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

Si el resultado después de la ejecución es el siguiente, significa que no tienes el módulo MySQLdb instalado:

Rastreo (llamada más reciente):

Archivo "test.py", línea 3, en

importar MySQLdb

ImportError: No hay módulo llamado MySQLdb

Para instalar MySQLdb, (para plataformas Linux puede visitar :) Desde aquí puede elegir la instalación adecuada para su plataforma Paquetes y los paquetes de instalación se dividen en archivos binarios precompilados y paquetes de instalación de código fuente.

Si selecciona una distribución binaria, el proceso de instalación se completará en el mensaje de instalación. Si realiza la instalación desde el código fuente, debe cambiar al directorio de nivel superior de la distribución MySQLdb y escribir el siguiente comando:

$ gunzip MySQL-python-1.2.2.tar.gz

$ tar -xvf MySQL-python-1.2.2.tar

$ cd MySQL-python-1.2.2

$ python setup.py build

$ python setup.py install

NOTA: Asegúrese de tener permisos de root para instalar los módulos anteriores.

Conexión de Base de Datos

Antes de conectarse a la base de datos, asegúrese de lo siguiente:

Ha creado la base de datos TESTDB.

En la base de datos TESTDB, has creado la tabla EMPLOYEE

Los campos de la tabla EMPLOYEE son FIRST_NAME y LAST_NAME

Utiliza el nombre de usuario "testuser" y contraseña "test123" para conectarse A la base de datos TESTDB, puede configurarla usted mismo o usar directamente el nombre de usuario y la contraseña raíz. Para la autorización del usuario de la base de datos Mysql, utilice el comando Grant.

El módulo Python MySQLdb ya está instalado en su máquina.

Si no está familiarizado con las sentencias SQL, puede visitar nuestro Tutorial de conceptos básicos de SQL

Ejemplo:

El siguiente ejemplo enlaza con la base de datos Mysql TESTDB:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

# Abrir una conexión de base de datos

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

# Utilice el método cursor() para obtener el cursor de operación

cursor = db.

# Utilice el método de ejecución para ejecutar sentencias SQL

cursor.execute("SELECT VERSION()")

# Utilice el fetchone () método Obtener la base de datos.

datos = cursor.fetchone()

imprimir "Versión de la base de datos: %s " % datos

# Cerrar la conexión de la base de datos

db .close()

Al ejecutar el script anterior se generará el siguiente contenido:

Versión de la base de datos: 5.0.45

Crear tabla de base de datos

Si la conexión a la base de datos existe, podemos usar el método ejecutar() para crear una tabla para la base de datos, cree la tabla EMPLEADO de la siguiente manera:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

# Abrir conexión a base de datos

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

# Utilice el método cursor() para obtener el cursor de operación

cursor = db .cursor()

# Utilice el método ejecutar() para eliminar una tabla existente.

cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# Crear sentencia SQL de tabla

sql = """CREAR TABLA EMPLEADO (

FIRST_NAME CHAR(20) NO NULO,

APELLIDO CHAR(20),

EDAD INT,

SEXO CHAR(1), p>

INCOME FLOAT )"""

cursor.execute(sql)

# Cerrar la conexión de la base de datos

# Cerrar la conexión de la base de datos

db .close()

Operación de inserción de base de datos

El siguiente ejemplo inserta registros en la tabla EMPLOYEE utilizando la instrucción SQL INSERT:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

# Abrir una conexión de base de datos

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

# Utilice el método cursor() para obtener el cursor de operación

cursor = db.execute(sql)

# Enviar a la base de datos para su ejecución

db.commit()

excepto:

# Revertir cuando se produce un error

db.rollback()

# Cerrar la conexión de la base de datos

db.close ()

El ejemplo anterior puede también se escribirá de la siguiente manera:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

# Abrir una conexión de base de datos

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

# Utilice el método cursor() para obtener el cursor de operación

cursor = db.cursor()

# instrucción de inserción SQL

sql = "INSERTAR EN EL EMPLEADO(PRIMER_NOMBRE, \

APELLIDO, EDAD, SEXO, INGRESOS) \

VALUES ('%s', '%s', '%d', '%c', '%d' )"

# Usar el método cursor() para obtener Manipular el cursor.

%\

('Mac', 'Mohan', 20, 'M', 2000)

intenta:

# Ejecutar instrucción SQL

cursor.execute(sql)

#Enviar a la base de datos para su ejecución

db.commit()

excepto:

# Revertir en caso de error

db.commit()

()

()

()rollback()

# Cerrar la conexión de la base de datos

db.close()

Ejemplo:

El siguiente código utiliza variables para pasar parámetros a la declaración SQL:

.................................

user_id = "prueba123 "

contraseña = "contraseña"

con.execute('insertar en valores de inicio de sesión("%s", "%s")' %\

(id_usuario, contraseña))

................................

Operación de consulta de base de datos

Python consulta Mysql usando el método fetchone() para obtener un solo dato y el método fetchall() para obtener múltiples datos.

fetchone(): este método obtiene el siguiente conjunto de resultados de la consulta. El conjunto de resultados es un objeto

fetchall(): recibe todas las filas de resultados devueltas.

rowcount: Esta es una propiedad de solo lectura que devuelve el número de filas afectadas por la ejecución del método ejecutar().

Ejemplo:

Consultar todos los datos de la tabla EMPLEADO cuyo campo salario sea mayor que 1000:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

# Abrir una conexión de base de datos

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

# Utilice el método cursor() para obtener el cursor de operación

cursor = db.cursor()

# Declaración de consulta SQL

sql = "SELECCIONAR * DEL EMPLEADO \

DÓNDE INGRESOS > '%d'" % ( 1000)

intenta:

#Ejecutar sentencia SQL

cursor.execute(sql)

#Obtener una lista de todos los registros

p>

resultados = cursor.

para fila en resultados:

fname = fila[0]

lname = fila [1]

edad = fila[2]

sexo = fila[3]

ingresos = fila[4]

# Imprimir resultados

print "fname=%s,lname=%s,age=%d,sex=%s,ingresos=%d" %\

(fname, lname, edad, sexo, ingresos)

excepto:

imprimir "Error: no se pueden recuperar datos"

# Cerrar conexión de base de datos

db .close()

p>

Los resultados de la ejecución del script anterior son los siguientes:

fname=Mac, lname=Mohan, age=20, sex=M, ingresos=2000

Operación de actualización de la base de datos

p>

Las operaciones de actualización se utilizan para actualizar datos en la tabla de datos.

El siguiente ejemplo cambia todos los campos SEXO en la tabla TESTDB a "M" e incrementa el campo EDAD en 1:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

# Abrir una conexión de base de datos

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

# Utilice el método cursor() para obtener el cursor de operación

cursor = db.cursor()

# Declaración de actualización de SQL

sql = "ACTUALIZAR EMPLEADO CONJUNTO EDAD = EDAD + 1

DONDE SEXO = '%c' " % ('M')

prueba:

# Ejecutar instrucción SQL

cursor.execute(sql)

# Enviar a Ejecución de la base de datos

db.commit()

excepto:

# Revertir cuando ocurre un error

db.rollback() p>

# Cerrar la conexión de la base de datos

db.close()

Operación de eliminación

La operación de eliminación se utiliza para eliminar los datos en la tabla de datos. El siguiente ejemplo demuestra cómo eliminar todos los datos cuya edad sea mayor a 20 años en la tabla de datos EMPLEADO:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

importar MySQLdb

# Abrir una conexión de base de datos

db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

# Utilice el método cursor() para obtener el cursor de operación

cursor = db.cursor()

# Declaración de eliminación de SQL

sql = "ELIMINAR DEL EMPLEADO DONDE EDAD > '%d' " % (20)

intente:

# Ejecutar instrucción SQL

cursor.execute(sql)

# Confirmar cambios

db.commit()

excepto:

# Revertir en caso de error

db.rollback()

# Cerrar conexión

db .close ()

Ejecutar transacciones

El mecanismo de transacción garantiza la coherencia de los datos.

Las transacciones deben tener cuatro propiedades: atomicidad, consistencia, aislamiento y durabilidad. Estas cuatro propiedades a menudo se denominan propiedades ÁCIDAS.

Atómica. Una transacción es una unidad integral de trabajo en la que todas las operaciones incluidas en la transacción están completas o incompletas.

Consistencia. Las transacciones deben mover la base de datos de un estado de coherencia a otro. La consistencia está estrechamente relacionada con la atomicidad.

Aislamiento. La ejecución de una transacción no puede verse interferida por otras transacciones. Es decir, las operaciones y los datos utilizados en la transacción están aislados de otras transacciones concurrentes y las transacciones que se ejecutan al mismo tiempo no interfieren entre sí.

Persistencia (durabilidad). La durabilidad, también conocida como permanencia, se refiere al hecho de que una vez que se confirma una transacción, sus cambios en los datos de la base de datos deben ser permanentes. Otras operaciones o fallos posteriores no tendrán ningún impacto sobre el mismo.

Python DB API 2.0 proporciona dos métodos para transacciones: confirmar o revertir.