Bazując na bazie testowej Sakila, wykonaj następujące ćwiczenia.
Lista 1: zapytania na jednej tabeli
- Podaj tytuły, opisy, czas wypożyczenia, koszt wypożyczenia za dzień i całkowity koszt wypożyczenia (jako iloczyn czasu wypożyczenia i jego kosztu) dla każdego filmu. Przyjmij, że pole
rental_rate
zawiera koszt wypożyczenia za dzień (według dokumentacji bazy jest to koszt wypożyczenia na tyle dni, ile zapisano w polurental_duration
).- Wersja zgodna z dokumentacją. Podaj tytuły, opisy, czas wypożyczenia oraz koszt wypożyczenia za dzień (jako iloraz kosztu wypożyczenia na przewidzianą liczbę dni) dla każdego filmu.
- Ile jest unikalnych nazwisk aktorów? Wypisz je w kolejności alfabetycznej.
- Wypisz wszystkie rodzaje ratingów filmów (każdy rating jednokrotnie).
- Wypisz tytuły, opisy, ratingi i długość filmów, które trwają 3 godziny lub dłużej.
- Wypisz wszystkie informacje z tabeli
customers
o tych klientach, którzy są nieaktywni albo ich nazwisko kończy się naM
. - Wypisz wszystkie kategorie, których identyfikator jest większy niż 4, a których nazwa zaczyna się na
C
,S
lubT
. Użyj klauzuliWHERE
. - Wykonaj powyższe ćwiczenie, używając operatora
IN
.
Uwaga. Takie zapytanie da się wykonać tylko w systemie baz danych Oracle. Używa się wówczas funkcjiCONTAINS
. Zobacz: Is there a combination of "LIKE" and "IN" in SQL?
Można także skorzystać z funkcji REGEXP. - Wypisz wszystkie filmy z ratingiem
G
,PG-13
lubNC-17
. Użyj operatoraIN
.
Lista 2: funkcje agregujące
Poniższe zadania używają funkcji agregujących.
- Ile jest aktorów, których pierwsze imię to 'Scarlett'?
- Które nazwiska aktorów występują więcej niż raz? Podaj je, sortując od najczęstszych do najrzadszych.
- Podaj ID 5 pierwszych aktorów, którzy wystąpili w największej liczbie filmów.
- Policz, ile jest klientów przypisanych do swoich "ulubionych sklepów". Podaj ID sklepu oraz liczbę takich klientów.
- Rozbuduj powyższe zapytanie, by pokazać, ilu jest klientów aktywnych, a ilu nie w każdym ze sklepów.
- Podaj 10 klientów, którzy wypożyczyli najwięcej filmów. Podaj ich identyfikator oraz liczbę wypożyczonych filmów.
- Podaj średni czas trwania wszystkich filmów w bazie.
Lista 3: zapytania ze złączeniami
Poniższe zadania wymagają złączeń tabel.
- Podaj średni czas trwania wszystkich filmów w bazie w rozbiciu na kategorie.
- Podaj identyfikatory i tytuły filmów, identyfikatory sklepów oraz datę wypożyczenia 10 ostatnio wypożyczonych filmów.
- Podaj nazwiska i imiona (jako jedno pole) 5 pierwszych aktorów, którzy wystąpili w największej liczbie filmów.
- Podaj nazwy miast i państw, w których te miasta są.
Dzie n dobry, Czy posida Pan przykładową bazę danych z kwerendami? Potrzebuje zrobić taki projket na studia, niestety nie wiem jak się za to zabrać. Z góry dziękuję za odpowiedź
Dzień dobry, niestety nie. Można jednak znaleźć przykładowe w dokumentacji MySQL: bazy Sakila czy Employees.