Bases de Datos en MySQL

MySQL es uno de los sistemas de gestión de bases de datos relacionales más populares. Es ampliamente utilizado en aplicaciones web y empresariales debido a su estabilidad, rendimiento y soporte para múltiples usuarios y transacciones complejas.
Conceptos Clave
Relacional: MySQL organiza los datos en tablas que se relacionan entre sí.
Escalabilidad: Adecuado para aplicaciones pequeñas y grandes.
Transacciones: Admite transacciones para garantizar la integridad de los datos.
SQL estándar: Usa SQL para definir, consultar y manipular datos.
Comunidad activa: Gran cantidad de documentación y soporte.
Configuración de MySQL con Docker
Instrucciones
Crear un contenedor de MySQL con Docker:
Ejecuta el siguiente comando para iniciar un servidor MySQL en Docker.
docker run --name mysql-database -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=tienda -p 3306:3306 -d mysql:8.0Parámetros:
–name: Nombre del contenedor. MYSQL_ROOT_PASSWORD: Contraseña para el usuario root. MYSQL_DATABASE: Nombre de la base de datos que se creará al iniciar. -p 3306:3306: Mapea el puerto del contenedor al puerto local. mysql:8.0: Imagen oficial de MySQL.
Acceder al contenedor (opcional):
docker exec -it mysql-database mysql -uroot -prootEjemplos
Ejemplo 1: Conexión a la base de datos desde Python

import mysql.connector
conexion = mysql.connector.connect(
host="localhost",
user="root",
password="root",
database="tienda"
)
if conexion.is_connected():
print("Conexión exitosa a MySQL")
conexion.close()En el ejemplo anterior, se establece una conexión a la base de datos MySQL llamada tienda con el usuario root y la contraseña root.
Ejemplo 2: Crear una tabla

conexion = mysql.connector.connect(
host="localhost",
user="root",
password="root",
database="tienda"
)
cursor = conexion.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(255) NOT NULL,
precio DECIMAL(10, 2) NOT NULL
)
""")
conexion.commit()
conexion.close()En este caso, se crea una tabla productos con columnas para id, nombre y precio.
Ejemplo 3: Insertar datos

conexion = mysql.connector.connect(
host="localhost",
user="root",
password="root",
database="tienda"
)
cursor = conexion.cursor()
cursor.execute("INSERT INTO productos (nombre, precio) VALUES (%s, %s)", ("Laptop", 1299.99))
conexion.commit()
conexion.close()En este caso, se inserta un nuevo producto en la tabla productos con nombre “Laptop” y precio 1299.99.
Ejemplo 4: Consultar datos

conexion = mysql.connector.connect(
host="localhost",
user="root",
password="root",
database="tienda"
)
cursor = conexion.cursor()
cursor.execute("SELECT * FROM productos")
for fila in cursor.fetchall():
print(fila)
conexion.close()La consulta SELECT * FROM productos recupera todos los registros de la tabla productos y los imprime en pantalla.
Ejemplo Práctico
Objetivo: Crear, administrar y consultar productos en una base de datos MySQL usando Python.
Descripción: Se implementará un sistema que permite agregar, listar, y buscar productos. La base de datos será configurada mediante Docker.
Instrucciones:
- Configura un contenedor de MySQL usando Docker.
- Crea una tabla productos en la base de datos tienda.
- Implementa funciones para administrar los productos desde Python.
Posible solución
Código:

import mysql.connector
def conectar():
return mysql.connector.connect(
host="localhost",
user="root",
password="root",
database="tienda"
)
def crear_tabla():
conexion = conectar()
cursor = conexion.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(255) NOT NULL,
precio DECIMAL(10, 2) NOT NULL
)
""")
conexion.commit()
conexion.close()
def agregar_producto(nombre, precio):
conexion = conectar()
cursor = conexion.cursor()
cursor.execute("INSERT INTO productos (nombre, precio) VALUES (%s, %s)", (nombre, precio))
conexion.commit()
conexion.close()
def listar_productos():
conexion = conectar()
cursor = conexion.cursor()
cursor.execute("SELECT * FROM productos")
for fila in cursor.fetchall():
print(fila)
conexion.close()
# Uso
crear_tabla()
agregar_producto("Mouse", 19.99)
agregar_producto("Teclado", 49.99)
print("Productos registrados:")
listar_productos()Conclusiones
- MySQL es una base de datos relacional popular con soporte para múltiples usuarios y transacciones.
- Docker facilita la configuración de entornos de desarrollo con contenedores aislados.
- Python se puede utilizar para interactuar con bases de datos MySQL mediante el conector mysql-connector-python.