Prácticas detalladas de base de datos en MySQL con
ejemplos
1. Crear una base de datos
Para comenzar, abre MySQL (puedes usar la terminal o una herramienta gráfica como
MySQL Workbench) y ejecuta el siguiente comando para crear una base de datos llamada
empresa:
sql
CREATE DATABASE empresa;
Luego selecciona la base de datos para trabajar en ella:
sql
USE empresa;
2. Crear tablas
Supongamos que queremos gestionar empleados y departamentos. Creamos las siguientes
tablas:
sql
CREATE TABLE departamentos (
id_departamento INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
CREATE TABLE empleados (
id_empleado INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido VARCHAR(100) NOT NULL,
salario DECIMAL(10,2),
id_departamento INT,
FOREIGN KEY (id_departamento) REFERENCES departamentos(id_departamento)
);
3. Insertar datos en las tablas
Agregamos algunos departamentos y empleados:
sql
INSERT INTO departamentos (nombre) VALUES
('Recursos Humanos'),
('Tecnología'),
('Finanzas');
INSERT INTO empleados (nombre, apellido, salario, id_departamento) VALUES
('Ana', 'Pérez', 2500.00, 1),
('Luis', 'Gómez', 3200.00, 2),
('María', 'López', 2800.00, 3),
('Carlos', 'Martínez', 3000.00, 2);
4. Consultar datos
Para ver todos los empleados:
sql
SELECT * FROM empleados;
Para ver los empleados junto con el nombre de su departamento (JOIN):
sql
SELECT [Link], [Link], [Link], [Link] AS
departamento
FROM empleados
INNER JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento;
5. Consultas avanzadas
• Obtener los empleados con salario mayor a 2800:
sql
SELECT nombre, apellido, salario FROM empleados WHERE salario > 2800;
• Contar cuántos empleados hay por departamento:
sql
SELECT [Link], COUNT(empleados.id_empleado) AS total_empleados
FROM empleados
INNER JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento
GROUP BY [Link];
6. Actualizar y eliminar datos
• Actualizar salario de un empleado:
sql
UPDATE empleados SET salario = 3500 WHERE nombre = 'Luis' AND apellido = 'Gómez';
• Eliminar un empleado:
sql
DELETE FROM empleados WHERE nombre = 'Ana' AND apellido = 'Pérez';
7. Ejemplo de relación muchos a muchos
Si un empleado puede trabajar en varios proyectos, se crea una tabla intermedia:
sql
CREATE TABLE proyectos (
id_proyecto INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
CREATE TABLE trabaja_en (
id_empleado INT,
id_proyecto INT,
horas INT,
PRIMARY KEY (id_empleado, id_proyecto),
FOREIGN KEY (id_empleado) REFERENCES empleados(id_empleado),
FOREIGN KEY (id_proyecto) REFERENCES proyectos(id_proyecto)
);
8. Consultas multitabla y ejercicios
• Listar todos los proyectos en los que trabaja cada empleado:
sql
SELECT [Link], [Link], [Link] AS proyecto, trabaja_en.horas
FROM trabaja_en
INNER JOIN empleados ON trabaja_en.id_empleado = empleados.id_empleado
INNER JOIN proyectos ON trabaja_en.id_proyecto = proyectos.id_proyecto;
Resumen de comandos básicos
Acción Comando SQL Ejemplo
Crear base de datos CREATE DATABASE empresa;
Seleccionar base USE empresa;
Crear tabla CREATE TABLE empleados (...);
Insertar datos INSERT INTO empleados (...) VALUES (...);
Consultar datos SELECT * FROM empleados;
Actualizar datos UPDATE empleados SET salario = 3500 WHERE ...;
Eliminar datos DELETE FROM empleados WHERE ...;
Unir tablas (JOIN) SELECT ... FROM empleados INNER JOIN departamentos ...;
1. Crear una base de datos
Para comenzar, abre MySQL (puedes usar la terminal o una herramienta gráfica como
MySQL Workbench) y ejecuta el siguiente comando para crear una base de datos llamada
empresa:
sql
CREATE DATABASE empresa;
Luego selecciona la base de datos para trabajar en ella:
sql
USE empresa;
2. Crear tablas
Supongamos que queremos gestionar empleados y departamentos. Creamos las siguientes
tablas:
sql
CREATE TABLE departamentos (
id_departamento INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
CREATE TABLE empleados (
id_empleado INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido VARCHAR(100) NOT NULL,
salario DECIMAL(10,2),
id_departamento INT,
FOREIGN KEY (id_departamento) REFERENCES departamentos(id_departamento)
);
3. Insertar datos en las tablas
Agregamos algunos departamentos y empleados:
sql
INSERT INTO departamentos (nombre) VALUES
('Recursos Humanos'),
('Tecnología'),
('Finanzas');
INSERT INTO empleados (nombre, apellido, salario, id_departamento) VALUES
('Ana', 'Pérez', 2500.00, 1),
('Luis', 'Gómez', 3200.00, 2),
('María', 'López', 2800.00, 3),
('Carlos', 'Martínez', 3000.00, 2);
4. Consultar datos
Para ver todos los empleados:
sql
SELECT * FROM empleados;
Para ver los empleados junto con el nombre de su departamento (JOIN):
sql
SELECT [Link], [Link], [Link], [Link] AS
departamento
FROM empleados
INNER JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento;
5. Consultas avanzadas
• Obtener los empleados con salario mayor a 2800:
sql
SELECT nombre, apellido, salario FROM empleados WHERE salario > 2800;
• Contar cuántos empleados hay por departamento:
sql
SELECT [Link], COUNT(empleados.id_empleado) AS total_empleados
FROM empleados
INNER JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento
GROUP BY [Link];
6. Actualizar y eliminar datos
• Actualizar salario de un empleado:
sql
UPDATE empleados SET salario = 3500 WHERE nombre = 'Luis' AND apellido = 'Gómez';
• Eliminar un empleado:
sql
DELETE FROM empleados WHERE nombre = 'Ana' AND apellido = 'Pérez';
7. Ejemplo de relación muchos a muchos
Si un empleado puede trabajar en varios proyectos, se crea una tabla intermedia:
sql
CREATE TABLE proyectos (
id_proyecto INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
CREATE TABLE trabaja_en (
id_empleado INT,
id_proyecto INT,
horas INT,
PRIMARY KEY (id_empleado, id_proyecto),
FOREIGN KEY (id_empleado) REFERENCES empleados(id_empleado),
FOREIGN KEY (id_proyecto) REFERENCES proyectos(id_proyecto)
);
8. Consultas multitabla y ejercicios
• Listar todos los proyectos en los que trabaja cada empleado:
sql
SELECT [Link], [Link], [Link] AS proyecto, trabaja_en.horas
FROM trabaja_en
INNER JOIN empleados ON trabaja_en.id_empleado = empleados.id_empleado
INNER JOIN proyectos ON trabaja_en.id_proyecto = proyectos.id_proyecto;
Resumen de comandos básicos
Acción Comando SQL Ejemplo
Crear base de datos CREATE DATABASE empresa;
Seleccionar base USE empresa;
Crear tabla CREATE TABLE empleados (...);
Insertar datos INSERT INTO empleados (...) VALUES (...);
Consultar datos SELECT * FROM empleados;
Actualizar datos UPDATE empleados SET salario = 3500 WHERE ...;
Eliminar datos DELETE FROM empleados WHERE ...;
Unir tablas (JOIN) SELECT ... FROM empleados INNER JOIN departamentos ...;