MySQL es un sistema de gestión de bases de datos relacional de código abierto, ampliamente adoptado en proyectos de todos los tamaños. A continuación, se presentan conceptos fundamentales y operaciones esenciales para trabajar con esta herramienta.
Instalación y puesta en marcha
- Instalación: Descarga el paquete correspondiente a tu sistema operativo (Windows, macOS o Linux) desde el sitio oficial y sigue las instrucciones del instalador.
- Inicio del servicio: Puedes activar MySQL desde la línea de comandos o mediante el administrador de servicios del sistema.
Operaciones básicas
1. Conexión al servidor
mysql -u usuario -p
Tras ingresar la contraseña, se establece la conexión con el servidor MySQL.
2. Listar bases de datos
SHOW DATABASES;
3. Crear una base de datos
CREATE DATABASE nombre_base_datos;
4. Seleccionar una base de datos
USE nombre_base_datos;
5. Crear una tabla
CREATE TABLE nombre_tabla (
columna1 tipo_dato,
columna2 tipo_dato,
...
);
6. Insertar registros
INSERT INTO nombre_tabla (columna1, columna2, ...) VALUES (valor1, valor2, ...);
7. Consultar datos
SELECT columna1, columna2, ... FROM nombre_tabla WHERE condicion;
8. Actualizar registros
UPDATE nombre_tabla SET columna1 = nuevo_valor1, columna2 = nuevo_valor2, ... WHERE condicion;
9. Eliminar registros
DELETE FROM nombre_tabla WHERE condicion;
10. Eliminar una tabla
DROP TABLE nombre_tabla;
11. Eliminar una base de datos
DROP DATABASE nombre_base_datos;
Funcionalidades avanzadas
1. Índices
Los índices aceleran la recuperación de datos.
CREATE INDEX nombre_indice ON nombre_tabla (nombre_columna);
2. Vistas
Una vista es una tabla virtual generada a partir de una consulta SQL.
CREATE VIEW nombre_vista AS SELECT columna1, columna2, ... FROM nombre_tabla WHERE condicion;
3. Procedimientos almacenados
Son bloques de código SQL precompilados que se ejecutan bajo demanda.
DELIMITER //
CREATE PROCEDURE nombre_procedimiento()
BEGIN
sentencias_sql;
END //
DELIMITER ;
4. Disparadores (Triggers)
Se activan automáticamente ante ciertos eventos en la base de datos.
CREATE TRIGGER nombre_trigger BEFORE INSERT ON nombre_tabla FOR EACH ROW
BEGIN
sentencias_sql;
END;
Consejos de optimización
- Análisis de consultas: Emplea
EXPLAINpara revisar el plan de ejecución y detectar cuellos de botella. - Uso de índices: Prioriza su aplicación en columnas usadas en cláusulas
WHEREoJOINpara evitar escaneos completos de tabla. - Diseño normalizado: Reduce la redundancia aplicando formas normales (1NF, 2NF, 3NF) según las necesidades del proyecto.
- Tipos de datos adecuados: Asigna tipos (INT, VARCHAR, etc.) que se ajusten al volumen real de información para ahorrar espacio.
- Ajustes de configuración: Modifica parámetros como
innodb_buffer_pool_sizeomax_connectionssegún los recursos del servidor.
Seguridad
1. Gestión de usuarios
Crea usuarios y asigna permisos específicos para limitar el acceso.
CREATE USER 'usuario'@'host' IDENTIFIED BY 'contraseña';
GRANT privilegios ON nombre_base_datos.* TO 'usuario'@'host';
FLUSH PRIVILEGES;
2. Cifrado de datos
- Activa SSL/TLS para proteger la comunicación entre cliente y servidor.
- Almacena información sensible (contraseñas, datos personales) utilizando funciones de hashing o cifrado como
AES_ENCRYPT.