base de datos mysql
1. Qué es MySQL? #
MySQL es un sistema de gestión de bases de datos relacional de código abierto muy popular. Es ampliamente utilizado en aplicaciones web para almacenar y manejar grandes volúmenes de datos.
2. Por qué usar MySQL con Python? #
- Escalabilidad: MySQL es ideal para manejar grandes cantidades de datos y múltiples usuarios.
- Integración: Se integra bien con aplicaciones Python, especialmente en entornos web.
3. Conectarse a MySQL desde Python #
Para conectarte a una base de datos MySQL desde Python, puedes usar el módulo mysql-connector-python. Si no lo tienes instalado, puedes instalarlo usando pip:
1pip install mysql-connector-python
4. Paso 1: Conectar a la base de datos #
Primero, debes conectarte a la base de datos MySQL. Necesitarás conocer el host, nombre de usuario, contraseña y el nombre de la base de datos.
1import mysql.connector 2 3# Conectar a la base de datos MySQL 4conexion = mysql.connector.connect( 5 host="localhost", 6 user="tu_usuario", 7 password="tu_contraseña", 8 database="mi_base_de_datos" 9) 10 11# Crear un cursor para interactuar con la base de datos 12cursor = conexion.cursor() 13 14print("Conexión a la base de datos establecida.")
- ¿Qué hace este código?:
- Conecta a la base de datos MySQL utilizando las credenciales y el nombre de la base de datos.
- Crea un cursor para ejecutar comandos SQL.
- Resultado en pantalla:
Conexión a la base de datos establecida.
5. Paso 2: Crear una tabla #
Después de conectarte a la base de datos, puedes crear una tabla para almacenar datos.
1# Crear una tabla llamada "usuarios" 2cursor.execute(""" 3CREATE TABLE IF NOT EXISTS usuarios ( 4 id INT AUTO_INCREMENT PRIMARY KEY, 5 nombre VARCHAR(100), 6 edad INT, 7 email VARCHAR(100) UNIQUE 8) 9""") 10 11print("Tabla 'usuarios' creada.")
- ¿Qué hace este código?:
- Crea una tabla llamada
usuarioscon columnas paraid,nombre,edadyemail. AUTO_INCREMENTenidhace que se incremente automáticamente.
- Crea una tabla llamada
- Resultado en pantalla:
Tabla 'usuarios' creada.
6. Paso 3: Insertar datos en la tabla #
Ahora que la tabla está creada, puedes insertar datos en ella.
1# Insertar un nuevo usuario en la tabla 2cursor.execute(""" 3INSERT INTO usuarios (nombre, edad, email) 4VALUES (%s, %s, %s) 5""", ("Ana", 30, "ana@example.com")) 6 7# Confirmar la inserción de datos 8conexion.commit() 9 10print("Datos insertados en la tabla 'usuarios'.")
- ¿Qué hace este código?:
- Inserta un nuevo registro en la tabla
usuarios. commit()guarda los cambios en la base de datos.
- Inserta un nuevo registro en la tabla
- Resultado en pantalla:
Datos insertados en la tabla 'usuarios'.
7. Paso 4: Consultar datos #
Puedes recuperar datos de la base de datos usando una consulta SQL.
1# Consultar todos los usuarios de la tabla 2cursor.execute("SELECT * FROM usuarios") 3usuarios = cursor.fetchall() 4 5# Mostrar los resultados 6print("Usuarios en la base de datos:") 7for usuario in usuarios: 8 print(usuario)
- ¿Qué hace este código?:
- Ejecuta una consulta SQL para seleccionar todos los registros de la tabla
usuarios. fetchall()obtiene todos los resultados de la consulta.- Muestra cada usuario en la base de datos.
- Ejecuta una consulta SQL para seleccionar todos los registros de la tabla
- Resultado en pantalla:
Usuarios en la base de datos: (1, 'Ana', 30, 'ana@example.com')
8. Paso 5: Actualizar y eliminar datos #
También puedes actualizar y eliminar registros en la base de datos.
Actualizar datos #
1# Actualizar la edad de un usuario 2cursor.execute(""" 3UPDATE usuarios 4SET edad = 31 5WHERE nombre = 'Ana' 6""") 7 8# Confirmar los cambios 9conexion.commit() 10 11print("Edad del usuario 'Ana' actualizada.")
- Resultado en pantalla:
Edad del usuario 'Ana' actualizada.
Eliminar datos #
1# Eliminar un usuario de la tabla 2cursor.execute("DELETE FROM usuarios WHERE nombre = 'Ana'") 3 4# Confirmar los cambios 5conexion.commit() 6 7print("Usuario 'Ana' eliminado de la base de datos.")
- Resultado en pantalla:
Usuario 'Ana' eliminado de la base de datos.
9. Paso 6: Cerrar la conexión #
Finalmente, siempre debes cerrar la conexión con la base de datos cuando termines de trabajar con ella.
1# Cerrar la conexión 2conexion.close() 3 4print("Conexión a la base de datos cerrada.")
- Resultado en pantalla:
Conexión a la base de datos cerrada.
Resumen del tema
Conceptos clave #
- Driver
mysql-connector-python: controlador cliente oficial para conectar aplicaciones Python con servidores MySQL/MariaDB. - Parámetros de Conexión: host, puerto, usuario, contraseña y base de datos de destino.
- Marcadores de Posición
%s: las consultas parametrizadas en el conector MySQL usan%s(cursor.execute(sql, (val1, val2))) para proteger contra SQL Injection. - Manejo de Conexiones y Pool: gestión de conexiones mediante
conexion.commit()y cierre explícito o mediante gestores de contexto.
Qué debes recordar #
Para interactuar con MySQL en Python se usa mysql-connector-python, aplicando consultas parametrizadas con %s y confirmando cambios con .commit().