lukifrancuz

Lab_07

Apr 5th, 2022 (edited)
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.92 KB | None | 0 0
  1. USE biblioteka;
  2.  
  3. #Zadanie 1
  4. SELECT DISTINCT concat(cz.Nr_czytelnika,'. ',cz.Imie, ' ', cz.Nazwisko,
  5.     ' - ', p.Id_Pracownika,'. ', p.Imie, ' ', p.Nazwisko) AS "Wypożyczenia"
  6.     FROM wypozyczenia JOIN czytelnicy cz USING(Nr_czytelnika) JOIN pracownicy p
  7.     USING (Id_pracownika) ORDER BY cz.Nazwisko;
  8.    
  9. #Zadanie 2
  10. SELECT concat(cz.Imie, ' ', cz.Nazwisko, ' - ', COUNT(Nr_czytelnika)) AS "Liczba wypożyczonych książek"
  11.     FROM wypozyczenia JOIN czytelnicy cz USING(Nr_czytelnika) GROUP BY Nr_czytelnika;
  12.    
  13. #Zadanie 3
  14. SELECT DISTINCT k.Tytul FROM wypozyczenia JOIN ksiazki k USING(Sygnatura)
  15.     WHERE Nr_czytelnika = 3 AND Id_pracownika IN (1,2,3,11,13);
  16.  
  17. #Zadanie 4
  18. SELECT DISTINCT concat(cz.Imie, ' ', cz.Nazwisko) AS "Lista osób, które wypożyczały książki PWN" FROM wypozyczenia JOIN czytelnicy cz USING (Nr_czytelnika)
  19.     JOIN ksiazki k USING (Sygnatura) ORDER BY cz.Nazwisko;
  20.  
  21. #Zadanie 5
  22. SELECT Tytul FROM ksiazki WHERE Sygnatura
  23.     IN (SELECT Sygnatura FROM wypozyczenia
  24.     GROUP BY Sygnatura HAVING COUNT(Sygnatura) >= 5);
  25.    
  26. #Zadanie 6
  27. SELECT Tytul FROM ksiazki WHERE Sygnatura
  28.     NOT IN (SELECT Sygnatura FROM wypozyczenia
  29.     GROUP BY Sygnatura);
  30.    
  31. #Zadanie 7
  32. SELECT cz.Nazwisko, cz.Imie, k.Tytul FROM wypozyczenia
  33.     JOIN czytelnicy cz USING(Nr_czytelnika) JOIN ksiazki k USING (Sygnatura)
  34.     WHERE Data_zwrotu IS NULL AND datediff(CURDATE(), Data_wypozyczenia) > 14;
  35.    
  36. #Zadanie 8
  37. SELECT DISTINCT cz.Nr_czytelnika, cz.Nazwisko, cz.Imie FROM wypozyczenia JOIN czytelnicy cz USING(Nr_czytelnika)
  38.     WHERE (Data_zwrotu IS NOT NULL AND datediff(Data_zwrotu, Data_wypozyczenia) > 14)
  39.     OR (Data_zwrotu IS NULL AND datediff(CURDATE(), Data_wypozyczenia) > 14);
  40.    
  41. #Zadanie 9
  42. SELECT Wydawnictwo, COUNT(Wydawnictwo) AS "ILE", Rok_wyd AS "Rok wydania ksiazki"
  43.     FROM ksiazki WHERE Rok_wyd > 2000 GROUP BY Wydawnictwo;
  44.  
  45. #Zadanie 10
  46. SELECT DISTINCT k.Tytul AS "Książki wypożyczone przez Daniluk Aleksandrę" FROM wypozyczenia
  47.     JOIN czytelnicy cz USING (Nr_czytelnika)
  48.     JOIN ksiazki k USING (Sygnatura) WHERE cz.Nazwisko = "Daniluk" AND cz.Imie = "Aleksandra";
  49.    
  50. #Zadanie 11
  51. SELECT concat(cz.Imie, '  ', cz.Nazwisko, '  wyopżyczył książkę  "', k.Tytul,
  52.     '"  ', k.Nazwisko, '  ', k.Imie, '  dnia  ', Data_wypozyczenia) AS Raport
  53.     FROM wypozyczenia JOIN czytelnicy cz USING(Nr_czytelnika) JOIN ksiazki k USING (Sygnatura)
  54.     ORDER BY Data_wypozyczenia, cz.Nazwisko;
  55.    
  56. #Zadanie 12
  57. SELECT concat(Imie, '  ', Nazwisko, ' ma wynagrodzenie w kwocie  ', wynagrodzenie) AS "Najdroższczy pracownik"
  58.     FROM pracownicy ORDER BY wynagrodzenie DESC LIMIT 1;
  59.    
  60. #Zadanie 13
  61. SELECT concat('Średnie wynagrodzenie pracowników wynosi  ',
  62.     CEIL(avg(wynagrodzenie))) AS "WYNIK" FROM pracownicy;
  63.    
  64. #Zadanie 14
  65. SELECT concat(UPPER(substr(Nazwisko, 1,2)), LOWER(substr(Nazwisko, 3)), '  ',
  66.     reverse(Imie), '  ', UPPER(Miasto)) AS "MIX" FROM czytelnicy;
  67.    
  68. #Zadanie 15
  69. SELECT concat("q=", round((SQRT(32.67*6.78)/abs(7.8-pow(14.23,3))),2)) AS "WYNIK";
  70.  
  71. #Zadanie 16
  72. SELECT concat("W  roku  ", Rok_wyd, "  zakupiono  ", COUNT(Cena), "  ksiązki  -  łączna kwota  ",
  73.     SUM(Cena)) AS ZAKUPY FROM ksiazki GROUP BY Rok_wyd ORDER BY Rok_wyd;
  74.    
  75. #Zadanie 17
  76. SELECT dz.Nazwa FROM ksiazki JOIN dzialy dz USING (Id_dzial)
  77.     JOIN wypozyczenia w USING (Sygnatura) GROUP BY Id_dzial
  78.     ORDER BY COUNT(Sygnatura) DESC LIMIT 1;
  79.    
  80. #Zadanie 18
  81. CREATE VIEW sr_wynagrodzenia_stanowisk AS
  82.     SELECT Id_stanowisko, avg(wynagrodzenie) AS 'srednia' FROM pracownicy GROUP BY Id_stanowisko;
  83. SELECT * FROM sr_wynagrodzenia_stanowisk;
  84. SELECT Id_stanowisko, Nazwisko,  wynagrodzenie, wynagrodzenie-s.srednia
  85.     FROM pracownicy JOIN sr_wynagrodzenia_stanowisk s USING (Id_stanowisko);
  86.  
  87. #Zadanie 19
  88. SELECT * FROM pracownicy ORDER BY Data_zatrudnienia LIMIT 1;
  89.  
  90. #Zadanie 20
  91. SELECT cz.Plec, COUNT(Nr_czytelnika)
  92.     FROM wypozyczenia JOIN czytelnicy cz USING (Nr_czytelnika)
  93.     WHERE Data_zwrotu IS NOT NULL GROUP BY cz.Plec;
Add Comment
Please, Sign In to add comment