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;