Ejercicios DML
| Tema | Título | Versión |
|---|---|---|
| 04 | SQL I (EJERCICIOS DML) | v 1.0 |
TEMA 4 (I): Ejercicios DML
Ejercicios: Base de datos Colegios
INSERT
1. Insertar colegios
1. Insertar colegios
Añade los colegios listados a continuación a la tabla Colegios. Haz un INSERT por cada colegio.
| Nombre | Dirección | Tipo |
|---|---|---|
| Colegio Central | Calle Mayor, 45 | Público |
| Colegio Norte | Avenida Norte, 12 | Privado |
| Colegio Sur | Calle Sur, 78 | Público |
2. Insertar estudiantes
2. Insertar estudiantes
Añade los siguientes estudiantes a la tabla Estudiantes. Usa el nombre del colegio, no su identificador. Inserta todos los registros en un único INSERT.
| Nombre | Edad | Colegio |
|---|---|---|
| Juan García | 12 | Colegio Central |
| Ana Martínez | 11 | Colegio Central |
| Carlos López | 13 | Colegio Norte |
| Marta Jiménez | 14 | Colegio Norte |
| Pedro Gil | 10 | Colegio Sur |
3. Insertar profesores
3. Insertar profesores
Añade los siguientes profesores a la tabla Profesores. Usa el nombre del colegio, no su identificador. Realiza un único INSERT para cada colegio.
- Colegio Central
| Nombre | Asignatura |
|---|---|
| Luis Fernández | Matemáticas |
| Marta Sánchez | Historia |
- Colegio Norte
| Nombre | Asignatura |
|---|---|
| Laura Pérez | Inglés |
| Javier Torres | Ciencias |
- Colegio Sur
| Nombre | Asignatura |
|---|---|
| Elena Morales | Música |
4. Insertar clases
4. Insertar clases
Añade las siguientes clases a la tabla Clases. Usa el nombre del colegio y el del profesor, no sus identificadores.
- Colegio Central
| Nombre | Profesor |
|---|---|
| Álgebra | Luis Fernández |
| Geografía | Marta Sánchez |
- Colegio Norte
| Nombre | Profesor |
|---|---|
| Conversación | Laura Pérez |
| Biología | Javier Torres |
- Colegio Sur
| Nombre | Profesor |
|---|---|
| Coro | Elena Morales |
UPDATE
5. Cambiar la dirección de un colegio
5. Cambiar la dirección de un colegio
El colegio "Colegio Norte" ha cambiado de ubicación. Actualiza la dirección en la tabla Colegios.
| Nombre | Dirección | Tipo |
|---|---|---|
| Colegio Norte | Avenida Principal, 200 | Privado |
6. Incrementar la edad de todos los estudiantes
6. Incrementar la edad de todos los estudiantes Se ha registrado un nuevo curso académico. Incrementa la edad de todos los estudiantes en 1 año.
7. Cambiar la asignatura de un profesor
7. Cambiar la asignatura de un profesor
El profesor "Laura Pérez" del "Colegio Norte" ya no imparte "Inglés". Ahora se encarga de "Literatura". Actualiza esta información en la tabla Profesores.
| Nombre | Colegio | Asignatura |
|---|---|---|
| Laura Pérez | Colegio Norte | Literatura |
8. Actualizar las edades de estudiantes según condición
8. Actualizar las edades de estudiantes según condición Incrementa la edad de los estudiantes del "Colegio Central" que tienen actualmente menos de 12 años en 2 años.
| Nombre | Edad | Colegio |
|---|---|---|
| Juan García | 14 | Colegio Central |
| Ana Martínez | 13 | Colegio Central |
9. Cambiar los profesores de varias clases
9. Cambiar los profesores de varias clases Por reorganización, actualiza los profesores de las clases indicadas a continuación:
| Clase | Colegio | Profesor |
|---|---|---|
| Álgebra | Colegio Central | Marta Sánchez |
| Biología | Colegio Norte | Elena Morales |
DELETE
10. Eliminar un estudiante
10. Eliminar un estudiante
El estudiante "Pedro Gil" ha solicitado su baja. Elimina su registro en la tabla Estudiantes.
| Nombre | Edad | Colegio |
|---|---|---|
| Pedro Gil | 10 | Colegio Sur |
11. Eliminar un profesor
11. Eliminar un profesor
El profesor "Luis Fernández" ya no trabaja en el "Colegio Central". Elimina su registro en la tabla Profesores.
Asegúrate de eliminar primero las clases en las que imparte.
| Nombre | Asignatura | Colegio |
|---|---|---|
| Luis Fernández | Matemáticas | Colegio Central |
Clases asociadas:
| Nombre | Profesor | Colegio |
|---|---|---|
| Álgebra | Luis Fernández | Colegio Central |
12. Eliminar todas las clases de un colegio
12. Eliminar todas las clases de un colegio
El "Colegio Norte" ha decidido reorganizar todas sus clases. Borra todos los registros asociados en la tabla Clases.
| Colegio | Clase |
|---|---|
| Colegio Norte | Conversación |
| Colegio Norte | Biología |
13. Eliminar un colegio
13. Eliminar un colegio
El "Colegio Sur" ha cerrado sus puertas. Elimina su registro en la tabla Colegios.
Asegúrate de eliminar primero a los estudiantes, profesores y clases asociados.
| Nombre | Dirección | Tipo |
|---|---|---|
| Colegio Sur | Calle Sur, 78 | Público |
Datos asociados
Estudiantes
| Nombre | Edad | Colegio |
|---|---|---|
| Pedro Gil | 10 | Colegio Sur |
Profesores
| Nombre | Asignatura | Colegio |
|---|---|---|
| Elena Morales | Música | Colegio Sur |
Clases
| Nombre | Profesor | Colegio |
|---|---|---|
| Coro | Elena Morales | Colegio Sur |
Ejercicios: Base de datos Facturas
INSERT
1. Insertar clientes
1. Insertar clientes
Añade los clientes listados a continuación a la tabla Clientes. Inserta todos los registros en un único INSERT.
| Nombre | Teléfono | Correo electrónico |
|---|---|---|
| Juan Pérez | 600123456 | juan.perez@example.com |
| María López | 700987654 | maria.lopez@example.com |
| Pedro Martínez | 800567890 | pedro.martinez@example.com |
| Ana Gómez | 900345678 | ana.gomez@example.com |
| Luis Fernández | 678987654 | luis.fernandez@example.com |
2. Insertar productos
2. Insertar productos
Añade los productos listados a continuación a la tabla Productos. Haz un único INSERT para incluir todos los registros.
| Nombre | Precio |
|---|---|
| Laptop | 899.99 |
| Teclado | 49.99 |
| Mouse | 19.99 |
| Monitor | 199.99 |
| Impresora | 129.99 |
3. Insertar facturas
3. Insertar facturas
Registra las siguientes facturas en la tabla Facturas. Usa el nombre del cliente, no su identificador. Haz un INSERT para cada registro.
| Fecha | Cliente | Total |
|---|---|---|
| 2025-01-15 | Juan Pérez | 350.75 |
| 2025-01-16 | María López | 1200.50 |
| 2025-01-17 | Pedro Martínez | 89.99 |
| 2025-01-18 | Ana Gómez | 499.99 |
4. Insertar detalles de factura
4. Insertar detalles de factura
Añade los detalles correspondientes a las facturas listadas a continuación. Usa los nombres de los productos y de los clientes, no los identificadores. Haz un INSERT por cada factura.
Factura de Juan Pérez (Fecha: 2025-01-15)
| Producto | Cantidad |
|---|---|
| Laptop | 1 |
| Teclado | 2 |
Factura de María López (Fecha: 2025-01-16)
| Producto | Cantidad |
|---|---|
| Monitor | 2 |
| Mouse | 3 |
| Teclado | 1 |
Factura de Pedro Martínez (Fecha: 2025-01-17)
| Producto | Cantidad |
|---|---|
| Mouse | 1 |
Factura de Ana Gómez (Fecha: 2025-01-18)
| Producto | Cantidad |
|---|---|
| Impresora | 1 |
UPDATE
5. Actualizar el correo electrónico de un cliente
5. Actualizar el correo electrónico de un cliente
El cliente "Juan Pérez" ha cambiado su correo electrónico. Actualiza su información en la tabla Clientes.
| Nombre | Teléfono | Correo electrónico |
|---|---|---|
| Juan Pérez | 600123456 | juan.perez.nuevo@example.com |
6. Incrementar el precio de todos los productos
6. Incrementar el precio de todos los productos
Se ha decidido incrementar el precio de todos los productos en un 10%. Realiza un UPDATE que aplique este cambio globalmente.
7. Actualizar el total de una factura
7. Actualizar el total de una factura El cliente "María López" devolvió un monitor, por lo que el total de su factura debe actualizarse. Modifica el total de la factura correspondiente.
| Fecha | Cliente | Total |
|---|---|---|
| 2025-01-16 | María López | 800.50 |
8. Cambiar las cantidades de productos en una factura
8. Cambiar las cantidades de productos en una factura El cliente "Ana Gómez" añadió un mouse a su factura. Actualiza los detalles de la factura correspondiente para reflejar este cambio.
| Producto | Cantidad |
|---|---|
| Impresora | 1 |
| Mouse | 1 |
9. Cambiar los detalles de una factura
9. Modificar los datos de varios clientes
Actualiza la información de los clientes listados a continuación:
| Nombre | Teléfono | Correo electrónico |
|---|---|---|
| Pedro Martínez | 850123456 | pedro.martinez@example.com |
| Ana Gómez | 900345678 | ana.gomez.nueva@example.com |
DELETE
10. Eliminar un cliente
10. Eliminar un cliente
El cliente "Luis Fernández" ha solicitado que se elimine su información de la base de datos. Borra su registro en la tabla Clientes.
| Nombre | Teléfono | Correo electrónico |
|---|---|---|
| Luis Fernández | 678987654 |
11. Eliminar un producto
11. Eliminar un producto
Se ha descontinuado el producto "Mouse". Elimina su registro de la tabla Productos.
Antes de eliminarlo, asegúrate de eliminar cualquier detalle de factura que lo referencie.
| Nombre | Precio |
|---|---|
| Mouse | 19.99 |
12. Eliminar los detalles de una factura
12. Eliminar los detalles de una factura
El cliente "Juan Pérez" devolvió todos los productos de su factura del 15 de enero de 2025. Elimina todos los registros asociados en la tabla DetallesFactura.
| Fecha | Cliente | Total |
|---|---|---|
| 2025-01-15 | Juan Pérez | 350.75 |
Detalles de la factura
| Producto | Cantidad |
|---|---|
| Laptop | 1 |
| Teclado | 2 |
13. Eliminar una factura
13. Eliminar una factura
El cliente "Pedro Martínez" solicitó que se elimine su factura del 17 de enero de 2025. Borra primero los detalles de esta factura y luego elimina el registro de la tabla Facturas.
| Fecha | Cliente | Total |
|---|---|---|
| 2025-01-17 | Pedro Martínez | 89.99 |
14. Eliminar todas las facturas de un cliente
14. Eliminar todas las facturas de un cliente
El cliente "Ana Gómez" decidió cerrar su cuenta y solicita que se eliminen todas sus facturas. Elimina primero los detalles de las facturas y luego los registros en la tabla Facturas.
| Nombre | Teléfono | Correo electrónico |
|---|---|---|
| Ana Gómez | 900345678 | ana.gomez@example.com |
Facturas asociadas
| Fecha | Total |
|---|---|
| 2025-01-18 | 499.99 |
Soluciones: Base de datos Colegios
INSERT
Soluciones INSERT: Base de datos Colegios
1. Insertar colegios
INSERT INTO Colegios (id_colegio, nombre, direccion, tipo)
VALUES
(1, 'Colegio Central', 'Calle Mayor, 45', 'Público'),
(2, 'Colegio Norte', 'Avenida Norte, 12', 'Privado'),
(3, 'Colegio Sur', 'Calle Sur, 78', 'Público');
2. Insertar estudiantes
INSERT INTO Estudiantes (id_estudiante, nombre, edad, id_colegio)
VALUES
(1, 'Juan García', 12, 1),
(2, 'Ana Martínez', 11, 1),
(3, 'Carlos López', 13, 2),
(4, 'Marta Jiménez', 14, 2),
(5, 'Pedro Gil', 10, 3);
3. Insertar profesores
INSERT INTO Profesores (id_profesor, nombre, asignatura, id_colegio)
VALUES
(1, 'Luis Fernández', 'Matemáticas', 1),
(2, 'Marta Sánchez', 'Historia', 1),
(3, 'Laura Pérez', 'Inglés', 2),
(4, 'Javier Torres', 'Ciencias', 2),
(5, 'Elena Morales', 'Música', 3);
4. Insertar clases
INSERT INTO Clases (id_clase, nombre, id_profesor, id_colegio)
VALUES
(1, 'Álgebra', 1, 1),
(2, 'Geografía', 2, 1),
(3, 'Conversación', 3, 2),
(4, 'Biología', 4, 2),
(5, 'Coro', 5, 3);
Soluciones UPDATE: Base de datos Colegios
5. Cambiar la dirección de un colegio
UPDATE Colegios
SET direccion = 'Avenida Principal, 200'
WHERE id_colegio = 2;
6. Incrementar la edad de todos los estudiantes
UPDATE Estudiantes
SET edad = edad + 1;
7. Cambiar la asignatura de un profesor
UPDATE Profesores
SET asignatura = 'Literatura'
WHERE id_profesor = 3;
8. Actualizar las edades de estudiantes según condición
UPDATE Estudiantes
SET edad = edad + 2
WHERE edad < 12 AND id_colegio = 1;
9. Cambiar los profesores de varias clases
UPDATE Clases
SET id_profesor = 2
WHERE id_clase = 1;
UPDATE Clases
SET id_profesor = 5
WHERE id_clase = 4;
Soluciones DELETE: Base de datos Colegios
10. Eliminar un estudiante
DELETE FROM Estudiantes
WHERE id_estudiante = 5;
11. Eliminar un profesor
DELETE FROM Clases
WHERE id_profesor = 1;
DELETE FROM Profesores
WHERE id_profesor = 1;
12. Eliminar todas las clases de un colegio
DELETE FROM Clases
WHERE id_colegio = 2;
13. Eliminar un colegio
DELETE FROM Estudiantes
WHERE id_colegio = 3;
DELETE FROM Profesores
WHERE id_colegio = 3;
DELETE FROM Clases
WHERE id_colegio = 3;
DELETE FROM Colegios
WHERE id_colegio = 3;
Soluciones: Base de datos Facturas
Soluciones INSERT: Base de datos Facturas
1. Insertar clientes
INSERT INTO Clientes (id_cliente, nombre, telefono, correo_electronico)
VALUES
(1, 'Juan Pérez', '600123456', 'juan.perez@example.com'),
(2, 'María López', '700987654', 'maria.lopez@example.com'),
(3, 'Pedro Martínez', '800567890', 'pedro.martinez@example.com'),
(4, 'Ana Gómez', '900345678', 'ana.gomez@example.com'),
(5, 'Luis Fernández', '678987654', 'luis.fernandez@example.com');
2. Insertar productos
INSERT INTO Productos (id_producto, nombre, precio)
VALUES
(1, 'Laptop', 899.99),
(2, 'Teclado', 49.99),
(3, 'Mouse', 19.99),
(4, 'Monitor', 199.99),
(5, 'Impresora', 129.99);
3. Insertar facturas
INSERT INTO Facturas (id_factura, fecha, id_cliente, total)
VALUES
(1, '2025-01-15', 1, 350.75),
(2, '2025-01-16', 2, 1200.50),
(3, '2025-01-17', 3, 89.99),
(4, '2025-01-18', 4, 499.99);
4. Insertar detalles de factura
INSERT INTO DetallesFactura (id_detalle, id_factura, id_producto, cantidad)
VALUES
(1, 1, 1, 1),
(2, 1, 2, 2),
(3, 2, 4, 2),
(4, 2, 3, 3),
(5, 2, 2, 1),
(6, 3, 3, 1),
(7, 4, 5, 1);
Soluciones UPDATE: Base de datos Facturas
5. Actualizar el correo electrónico de un cliente
UPDATE Clientes
SET correo_electronico = 'juan.perez.nuevo@example.com'
WHERE id_cliente = 1;
6. Incrementar el precio de todos los productos
UPDATE Productos
SET precio = precio * 1.10;
7. Actualizar el total de una factura
UPDATE Facturas
SET total = 800.50
WHERE id_factura = 2;
8. Cambiar las cantidades de productos en una factura
UPDATE DetallesFactura
SET cantidad = 1
WHERE id_detalle = 7;
INSERT INTO DetallesFactura (id_detalle, id_factura, id_producto, cantidad)
VALUES (8, 4, 3, 1);
Soluciones DELETE: Base de datos Facturas
9. Eliminar un cliente
DELETE FROM Clientes
WHERE id_cliente = 5;
10. Eliminar un producto
DELETE FROM DetallesFactura
WHERE id_producto = 3;
DELETE FROM Productos
WHERE id_producto = 3;
11. Eliminar una factura
DELETE FROM DetallesFactura
WHERE id_factura = 3;
DELETE FROM Facturas
WHERE id_factura = 3;
12. Eliminar todas las facturas de un cliente
DELETE FROM DetallesFactura
WHERE id_factura IN (4);
DELETE FROM Facturas
WHERE id_cliente = 4;