Ejemplos Prácticos de Consultas SQL para Gestión de Datos
Enviado por Chuletator online y clasificado en Francés
Escrito el en español con un tamaño de 7,09 KB
Consultas SQL sobre Libros y Editoriales
A continuación, se presentan una serie de consultas SQL diseñadas para la gestión y recuperación de información en una base de datos relacionada con libros, escritores y editoriales. Estas consultas abarcan desde la selección básica de datos hasta operaciones más complejas con subconsultas y actualizaciones.
1. Obtener los nombres de los escritores que han publicado en la editorial "Paraninfo"
SELECT Nom_E FROM Escritor E, Escribe Es, Libro L, Editorial Ed WHERE E.Cod_E = Es.Cod_E AND Es.Cod_L = L.Cod_L AND L.Cod_Ed = Ed.Cod_Ed AND Nom_Ed = "Paraninfo";
2. Obtener los códigos de las editoriales y el número de libros distintos publicados por cada editorial, únicamente de aquellas que han publicado más de tres libros distintos
SELECT Cod_Ed, COUNT(*) FROM Libro GROUP BY Cod_Ed HAVING COUNT(*) > 3;
3. Obtener los códigos y los nombres de los libros cuyo precio es superior al precio medio de los libros de la editorial "RAMA"
SELECT Cod_L, Nom_L FROM Libro WHERE Pre_Uni > (SELECT AVG(Pre_Uni) FROM Libro LI, Editorial Ed WHERE LI.Cod_Ed = Ed.Cod_Ed AND Nom_Ed = "RAMA");
4. Obtener los nombres de los libros cuyo precio es inferior al precio medio de los libros publicados por la misma editorial
SELECT Nom_L FROM Libro L1 WHERE Pre_Uni < (SELECT AVG(Pre_Uni) FROM Libro L2 WHERE L1.Cod_Ed = L2.Cod_Ed);
5. Obtener los nombres de los libros que son publicados por la misma editorial que publica el libro con nombre "Red de área local"
SELECT Nom_L FROM Libro L WHERE Cod_Ed IN (SELECT Cod_Ed FROM Libro LI WHERE Nom_L = "Red de área local");
6. Subir un 5% el precio unitario de los productos publicados por la editorial "RAMA"
UPDATE Libro SET Pre_Uni = Pre_Uni * 1.05 WHERE Cod_Ed = (SELECT Cod_Ed FROM Editorial WHERE Nom_Ed = "RAMA");
7. Obtener los nombres de los libros cuyos escritores tengan 'España' en su dirección y cuyo precio unitario sea inferior a 40€
SELECT Nom_L FROM Escritor E, Escribe Es, Libro L WHERE L.Cod_L = Es.Cod_L AND Es.Cod_E = E.Cod_E AND Dir_E LIKE "%España%" AND Pre_Uni < 40;
Consultas SQL sobre Viajes y Clientes
Esta sección detalla consultas SQL para gestionar información de viajes, mayoristas y clientes, incluyendo operaciones de selección, agregación y actualización de datos relacionados con la oferta y realización de viajes.
1. Obtener los nombres de los viajes que son ofertados por el mismo mayorista que ofreció el viaje "Francia monumental 8 días"
SELECT Nom_V FROM Viajes WHERE Cod_M = (SELECT Cod_M FROM Viajes WHERE Nom_V = "Francia monumental 8 días");
2. Obtener el precio total gastado en viajes por el cliente con nombre "Juan López Rodríguez"
SELECT SUM(Precio) FROM Viajes V, Cliente C, Realizados R WHERE V.Cod_V = R.Cod_V AND R.Cod_C = C.Cod_C AND Nom_C = "Juan Lopez Rodriguez";
3. Obtener los nombres de los clientes y los nombres de los viajes realizados, de los clientes que han realizado algún viaje con el mayorista de nombre "Mondragón"
SELECT Nom_C, Nom_V FROM Viajes V, Realizados R, Cliente C, Mayorista M WHERE M.Cod_M = V.Cod_M AND V.Cod_V = R.Cod_V AND R.Cod_C = C.Cod_C AND Nom_M = "Mondragon";
4. Obtener los nombres de los viajes cuyo precio es mayor al precio medio de los viajes ofertados por el mayorista con nombre "ROYAL"
SELECT Nom_V FROM Viajes V, Mayorista M WHERE Precio > (SELECT AVG(Precio) FROM Viajes V2, Mayorista M2 WHERE M2.Cod_M = V2.Cod_M AND Nom_M = "ROYAL");
5. Obtener los códigos de los mayoristas que han ofrecido más de 3 viajes distintos
SELECT Cod_M FROM Viajes GROUP BY Cod_M HAVING COUNT(*) > 3;
6. Obtener los nombres de los viajes cuyo precio es inferior al precio medio de los viajes ofertados por su mismo mayorista
SELECT Nom_V FROM Viajes V1 WHERE Precio < (SELECT AVG(Precio) FROM Viajes V2 WHERE V1.Cod_M = V2.Cod_M);
7. Cambiar el precio del viaje con nombre "París 8 días", asignándole el mismo precio que tiene el viaje con nombre "Londres 8 días"
UPDATE Viajes SET Precio = (SELECT Precio FROM Viajes WHERE Nom_V = "Londres 8 dias") WHERE Nom_V = "Paris 8 días";
Consultas SQL sobre Películas y Alquileres
Esta sección contiene consultas SQL enfocadas en la gestión de películas, directores y alquileres, permitiendo la recuperación y modificación de datos relacionados con la industria cinematográfica.
1. Obtener los nombres de los clientes que han alquilado alguna película de "Pedro Almodóvar"
SELECT Nom_C FROM Director D, Pelicula P, Alquiler A, Cliente C WHERE D.Cod_D = P.Cod_D AND P.Cod_P = A.Cod_P AND A.Cod_C = C.Cod_C AND Nom_D = "Pedro Almodovar";
2. Obtener los nombres de las películas que han sido rodadas por el mismo director que rodó "Los Otros"
SELECT Nom_P FROM Director D, Pelicula P WHERE D.Cod_D = P.Cod_D AND Cod_D = (SELECT Cod_D FROM Pelicula WHERE Nom_P = "Los Otros");
3. Actualizar el precio de venta de las películas de "Pedro Almodóvar", asignándole el mismo precio que la película "Los Otros"
UPDATE Pelicula SET Pre_Ven = (SELECT Pre_Ven FROM Pelicula WHERE Nom_P = "Los Otros") WHERE Cod_D = (SELECT Cod_D FROM Director WHERE Nom_D = "Pedro Almodovar");
4. Obtener los códigos de los directores y el número de películas que han rodado, solo para directores con más de 5 películas
SELECT Cod_D, COUNT(*) FROM Pelicula GROUP BY Cod_D HAVING COUNT(*) > 5;
5. Obtener los nombres de las películas cuyo precio de venta sea inferior al precio medio de las películas rodadas por el mismo director
SELECT Nom_P FROM Pelicula P1 WHERE Pre_Ven < (SELECT AVG(Pre_Ven) FROM Pelicula P2 WHERE P1.Cod_D = P2.Cod_D);
6. Obtener el total gastado en alquiler de películas por el cliente con nombre "Pedro García López"
SELECT SUM(Pre_Alq) FROM Alquiler A, Cliente C, Pelicula P WHERE P.Cod_P = A.Cod_P AND A.Cod_C = C.Cod_C AND C.Nom_C = "Pedro Garcia Lopez";