2015L - Ćwiczenie 5
Transkrypt
2015L - Ćwiczenie 5
[email protected] Grupa 9 (Wtorek 12:15 14:00) 14.04.2015 Ćwiczenie 5 : Język SQL + Perspektywy Bazodanowe 1. Przegląd konstrukcji zapytań SQL Na bazie danych utworzonej na poprzednich zajęciach dla swojego projektu wykonujemy zbiór kilkunastu zapytań SQL spełniających wymogi określone poniżej. Aby zapytania miały sens, uprzednio wprowadzamy dane przykładowe (w minimalnej ilości). Zapytania zapisujemy w pliku wraz z krótkim komentarzem pojęciowym opisem co to zapytanie robi (może to być plik .sql z odpowiednimi komentarzami przed zapytaniem). Plik taki nazywamy: imię.nazwisko.sql i wysyłamy na adres: [email protected] . Wymogi do zapytań: Warunki wyboru wierszy do wykorzystania w zapytaniach 1. Użycie: DISTINCT, LIKE, IN, BETWEEN, IS NULL 2. Operacje na datach: porównanie, różnica, użycie sysdate, funkcje: to_date, trunc 3. … oraz wiele innych dostępne na platformie RDBMS Oracle Zapytania jednopoziomowe 1. Złączenie z dodatkową selekcją wierszy tabel uczestniczących w złączeniu zaprezentowanie różnych rodzai złączeń: inner join, outer join, full outer join 2. Obliczenie zbiorcze w grupach wierszy (agregacja) z zastosowaniem SUM lub AVG z zastosowaniem COUNT 3. Obliczenie zbiorcze zastosowane do wyniku złączenia (zapytanie zawierające złączenie i agregację) ( przykłady 3.8 3.13) 4. Obliczenie zbiorcze z selekcją wyników (zapytanie z klauzulą HAVING) Zapytania z podzapytaniami 1. Zapytanie z podzapytaniem nieskorelowanym w klauzuli WHERE, konstrukcja z operatorem IN ( przykłady 4.14.5 w zbiorze przykładów) równoważne zapytanie jednopoziomowe 2. Zapytanie z podzapytaniem nieskorelowanym w klauzuli WHERE, konstrukcja z operatorem porównania ( przykłady 4.64.9 w zbiorze przykładów) równoważne zapytanie jednopoziomowe 3. Zapytanie z podzapytaniem skorelowanym w klauzuli WHERE, konstrukcja z operatorem EXISTS ( przykłady 4.214.25 w zbiorze przykładów) dwa przykłady dla EXISTS, NOT EXISTS dla NOT EXISTS równoważne zapytanie jednopoziomowe 4.Dwa zapytania z podzapytaniem skorelowanym w klauzuli WHEREpodzapytanie wykonuje obliczenie zbiorcze (agregacja) , konstrukcja z operatorem porównania ( przykłady 4.104.19s w zbiorze przykładów) równoważne zapytanie jednopoziomowe (z zastosowaniem złączenia, agregacji i klauzuli HAVING) 5. Zapytanie z podzapytaniem (nieskorelowanym oczywiście) w klauzuli FROM ( przykłady 4.264.29 ) Zapytaniom nadajemy odpowiedni porządek (ORDER BY). * Zapytania wykorzystujące funkcje analityczne RDBMS Oracle pozwala na wykorzystywanie funkcji analitycznych w zapytaniach SQL. Zademonstrować użycie tych funkcji dla problemu: TopN lub budowania rankingu. Przykład: dla każdego klienta wyświetlić zamówienie o największej kwocie. Należy wykonać zapytanie z użyciem odpowiedniej funkcji analitycznej ( np. rank(), dense_rank(), row_number()) oraz odpowiadające zapytanie bez użycia funkcji analitycznej. 2. Perspektywy bazodanowe Dla jednego z złożonych zapytań z punktu 1 zaproponować utworzenie odpowiedniego widoku(perspektywy) bazodanowej (np. agregującej dane) i zaprezentować jej wykorzystanie w zapytaniu SQL. Materiały i przykłady: https://studia.elka.pw.edu.pl/priv/11Z/BD.A/SQLzbior_przykladow/SQLzbior_przykladow.zip