Para trabajar con MySQL usando Python, debe tener algunos conocimientos de SQL
Antes de sumergirnos profundo, entendamos
¿Qué es MySQL?
MySQL es una base de datos de código abierto y uno de los mejores tipos de RDBMS (Sistema de gestión de bases de datos relacionales). El cofundador de MySQLdb es Michael Widenius, y también el nombre de MySQL deriva de la hija de Michael.
Cómo instalar MySQL
Instale MySQL en Linux / Unix:
Descargue el paquete RPM para Linux / Unix del sitio oficial: https://www.mysql.com/downloads/
En la terminal, use el siguiente comando
rpm -i
Example rpm -i MySQL-5.0.9.0.i386.rpm
Para comprobar en Linux
mysql --version
Instalar MySQL en Windows
Descargue el exe de la base de datos MySQL del sitio oficial e instale como de costumbre la instalación normal del software en Windows. Consulte este tutorial para obtener una guía paso a paso
Instalar la biblioteca de conectores MySQL para Python
Para Python 2.7 o una instalación inferior usando pip como:
pip install mysql-connector
Para Python 3 o una versión superior, instale usando pip3 como:
pip3 install mysql-connector
Pruebe la conexión de la base de datos MySQL con Python
Para probar la conexión de la base de datos aquí, usamos el conector MySQL preinstalado y pasamos las credenciales a la función connect () como host, nombre de usuario y contraseña.
Sintaxis para acceder a MySQL con Python:
import mysql.connectordb_connection = mysql.connector.connect(host="hostname",user="username",passwd="password")
Ejemplo,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root")print(db_connection)
Producción:
Aquí la salida muestra la conexión creada con éxito.
Creando una base de datos en MySQL usando Python
La sintaxis para crear una nueva base de datos en SQL es
CREATE DATABASE "database_name"
Ahora creamos una base de datos usando Python en MySQL
import mysql.connectordb_connection = mysql.connector.connect(host= "localhost",user= "root",passwd= "root")# creating database_cursor to perform SQL operationdb_cursor = db_connection.cursor()# executing cursor with execute method and pass SQL querydb_cursor.execute("CREATE DATABASE my_first_db")# get list of all databasesdb_cursor.execute("SHOW DATABASES")#print all databasesfor db in db_cursor:print(db)
Producción:
Aquí la imagen de arriba muestra que se crea la base de datos my_first_db
Crea una tabla en MySQL con Python
Creemos una tabla simple "estudiante" que tiene dos columnas.
Sintaxis SQL:
CREATE TABLE student (id INT, name VARCHAR(255))
Ejemplo:
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()#Here creating database table as student'db_cursor.execute("CREATE TABLE student (id INT, name VARCHAR(255))")#Get database table'db_cursor.execute("SHOW TABLES")for table in db_cursor:print(table)
Producción:
('student',)
Crear una tabla con clave principal
Creemos una tabla de empleados con tres columnas diferentes. Agregaremos una clave principal en la columna de identificación con la restricción AUTO_INCREMENT
Sintaxis SQL,
CREATE TABLE employee(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), salary INT(6))
Ejemplo,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()#Here creating database table as employee with primary keydb_cursor.execute("CREATE TABLE employee(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), salary INT(6))")#Get database tabledb_cursor.execute("SHOW TABLES")for table in db_cursor:print(table)
Producción:
('employee',) ('student',)
ALTERAR tabla en MySQL con Python
El comando Alter se utiliza para modificar la estructura de la tabla en SQL. Aquí modificaremos la tabla de estudiantes y agregaremos una clave principal al campo de identificación .
Sintaxis SQL,
ALTER TABLE student MODIFY id INT PRIMARY KEY
Ejemplo,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()#Here we modify existing column iddb_cursor.execute("ALTER TABLE student MODIFY id INT PRIMARY KEY")
Producción:
A continuación, puede ver que la columna de identificación está modificada.
Insertar operación con MySQL en Python:
Realicemos la operación de inserción en la tabla de base de datos MySQL que ya creamos. Insertaremos datos de la tabla ESTUDIANTE y la tabla EMPLEADO.
Sintaxis SQL,
INSERT INTO student (id, name) VALUES (01, "John")INSERT INTO employee (id, name, salary) VALUES(01, "John", 10000)
Ejemplo,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()student_sql_query = "INSERT INTO student(id,name) VALUES(01, 'John')"employee_sql_query = " INSERT INTO employee (id, name, salary) VALUES (01, 'John', 10000)"#Execute cursor and pass query as well as student datadb_cursor.execute(student_sql_query)#Execute cursor and pass query of employee and data of employeedb_cursor.execute(employee_sql_query)db_connection.commit()print(db_cursor.rowcount, "Record Inserted")
Producción:
2 Record Inserted