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";

Entradas relacionadas: