sql >> Base de Datos >  >> RDS >> Mysql

Conexión a MySQL usando Python

En este artículo, discutiremos cómo conectarse a MySQL usando Python. Python es uno de los lenguajes de programación más productivos y ampliamente utilizados en la actualidad. Su sintaxis simple y elegante lo hace ideal para los nuevos programadores, mientras que los programadores experimentados disfrutan de la extensa lista de módulos y funcionalidades disponibles.

MySQL es un sólido sistema de gestión de base de datos relacional basado en SQL de código abierto que se utiliza en muchos programas de software y servidores web. Este artículo tiene como objetivo mostrar cómo conectarse para usar Python para conectarse a MySQL y realizar algunas tareas básicas.

¿Por qué usar Python para conectarse a MySQL?

Quizás te estés preguntando, ¿por qué es importante esta información? ¡La mejor respuesta es que estos dos componentes se complementan de manera brillante! La capacidad de Pythons para manipular datos utilizando información de origen no tiene rival. MySQL o MariaDB contienen los datos que Python puede manipular. El uso de estos dos factores para mejorar y complementarse entre sí solo aumenta la sinergia general entre ellos.

Paso 1. Instalación del módulo conector

Empecemos instalando el módulo conector. El primer paso para conectar MySQL con Python es instalar el módulo Pip Python. Si aún no tiene pip instalado, puede encontrar instrucciones detalladas para instalar pip en múltiples sistemas operativos en Liquid Web Knowledge Base. Una vez que hayamos instalado pip, debemos instalar mysql-connector-python controlador usando el siguiente comando.

root@host:~# pip install mysql-connector-python 
Collecting mysql-connector-python
  Downloading mysql_connector_python-8.0.21-cp27-cp27mu-manylinux1_x86_64.whl (16.0 MB)
     |################################| 16.0 MB 13.7 MB/s 
Collecting protobuf>=3.0.0
  Downloading protobuf-3.12.2-cp27-cp27mu-manylinux1_x86_64.whl (1.3 MB)
     |################################| 1.3 MB 17.0 MB/s 
Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf>=3.0.0->mysql-connector-python) (44.1.1)
Collecting six>=1.9
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.21 protobuf-3.12.2 six-1.15.0

En el ejemplo anterior, pip busca otros módulos que pueda requerir el controlador mysql-connector-python, que luego se instalarán si es necesario.

Paso 2. Importar conector

El siguiente paso es importar el mysql-connector-python módulo usando este comando dentro de su código.

import mysql.connector

Este comando le dice a Python que cargue y habilite todas las funciones y objetos relacionados y utilizados por el módulo del conector MySQL.

Paso 3. Conectar MySQL al servidor

Nuestro próximo paso es llamar al mysql.connector.connect() método para crear una conexión con el servidor.

import mysql.connector

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password=’password’
)

Por lo general, cuando nos comunicamos con una base de datos MySQL, usamos un cursor MySQL object (que es parte del módulo mysql-connector-python). Piense en este objeto como un tipo de CLI (interfaz de línea de comandos) donde podemos escribir consultas SQL utilizadas para interactuar con el servidor. Esta comunicación se logra usando el método del cursor (cursor =db.cursor() ), llamando al objeto db que creamos en el último paso con el método de conexión:

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

Un objeto db.cursor nos permite ejecutar consultas SQL. Esta consulta devuelve un objeto que podemos iterar con un bucle for así.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

cursor.execute("show databases")

for x in cursor:
	print(x)

Hay una base de datos preexistente que se configuró en un tutorial anterior de KB sobre Vistas de SQL. Contiene información sobre una serie ficticia de autos stock. Usando el script anterior, los resultados se verían así:

# python mysql-test.py 
(u'information_schema',)
(u'races',)
(u'sys',)

Podemos usar otros comandos con el cursor actual (db.cursor() ) para interactuar con esta base de datos. Aquí, extraemos una lista de las tablas y vistas de la misma base de datos.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password='password'
)

cursor = db.cursor()


cursor.execute("use races")
cursor.execute("show tables")
for x in cursor:
        print(x)


The output results look like this.

# python mysql-test.py 
(u'all_finishes',)
(u'drivers',)
(u'finishes',)
(u'race_winners',)
(u'races',)
(u'standings_leader',)
(u'tracks',)
Nota:La "u" delante del resultado indica que es una cadena Unicode.

Inserción de datos con el objeto de cursor de MySQL

Ahora que podemos recuperar la estructura de la base de datos, podemos usar el objeto cursor para ejecutar otros comandos. Había una sección donde se insertaban en la base de datos los pilotos de la temporada de carreras. Se hizo con el uso de esta consulta SQL.

insert into drivers (name,car_number) values
  ('Buddy Baker',28),
  ('Dale Earnhardt Jr.',8),
  ('Ricky Rudd',88);

Para ejecutar esta misma consulta SQL usando Python, simplemente pasamos esta cadena al método de ejecución de nuestro cursor . Un buen método para practicar el uso de esto es asignar una variable como texto de la consulta y luego llamar a ejecutar en el objeto del cursor. También debe indicarle a mysql que confirme los cambios llamando a db.commit() así.

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Los resultados:

id nombre

número de coche

1 Buddy Baker

28

2

Dale Earnhardt Jr.

8
3

Ricky Rudd

88

Cuando insertamos varias filas, la interfaz ofrece el método "ejecutar muchas" , que nos permite crear una matriz de valores para insertar y una cadena con formato especial con el símbolo %s reemplazando los valores de las matrices. Este ejemplo es idéntico al inserto anterior:

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Los valores de la matriz 'controladores' se pasan uno por uno a la declaración 'sql' y luego se pasan a 'executemany() '

Uso de Seleccionar

Al igual que otras sentencias SQL, podemos usar el objeto cursor para ejecutar selecciones. Después de una selección, un cursor obtiene algunos métodos nuevos, incluido fetchall() y buscar() . fetchall() devuelve una lista de todos los resultados. Cada resultado es una lista con las columnas correspondientes en el orden en que fueron seleccionadas. El método fetchone() devuelve el siguiente resultado del conjunto de resultados.

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()

for x in results:
        print(x)

Resultados:

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 88)

Si queremos un resultado a la vez, podemos usar fetchone()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Resultados:

(u'Buddy Baker', 28)

Actualización y eliminación de datos

Al igual que el comando de inserción, los comandos de eliminación y actualización utilizan un objeto de cursor y deben llamar a db.commit(); de lo contrario, son similares a otros comandos SQL.

Actualizar :

sql = "update drivers set car_number = 1 where car_number = 88"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 1)

Eliminar :

sql = "delete from drivers where car_number = 8"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Ricky Rudd', 1)

Conclusión

Entonces, ¿cuáles son las conclusiones de este artículo? El uso de Python para interactuar con MySQL es una forma simple y efectiva de manipular datos de manera que complemente cada sistema.

¿Tiene preguntas? ¡Nos enorgullecemos de ser los seres humanos más serviciales en Hosting™! Nuestro personal de soporte técnico está siempre disponible para ayudar con cualquier problema relacionado con este artículo, las 24 horas del día, los 7 días de la semana, los 365 días del año.

Estamos disponibles, a través de nuestros sistemas de tickets en [email protected], por teléfono (al 800-580-4986), o a través de LiveChat o cualquier método que prefiera. Trabajamos duro para ti para que puedas relajarte.