Aplikacje bazodanowe Laboratorium 4 Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 1 / 13
Plan na dzisiaj Zapytania do wielu tabel Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 2 / 13
Zapytanie do wielu tabel w bazie Aliasy W przypadku dªugich zapyta«mo»na u»ywa aliasów w nast puj cy sposób column_name AS smt Takie dziaªanie pozwala na skrócenie i zwi kszenie przejrzysto±ci zapytania. Zapytania do wielu tabel polega na zdeniowaniu warunku po którym s one ª czone. Przykªad prostego zapytania do dwóch tabel Wydrukuj tytuªy lmów z tabeli lm oraz kraje gdzie odbyªa si premiera lmu (tabela country) SELECT title, countryname FROM film, country WHERE film.id_country=country.id Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 3 / 13
Zapytanie do wielu tabel w bazie Przykªad Wy±wietl tytuªy lmów oraz ich gatunki. Zastosowanie klauzuli JOIN... ON SELECT film.title, genre.genre FROM film JOIN film_genre ON film.id=film_genre.film_id JOIN genre ON genre.id=film_genre.genre_id Zadanie Wy±wietl tytuªy lmów wraz z imieniem i nazwiskiem aktorów posortowane alfabetycznie wzgl dem tytuªu lmu (w przypadku kilka aktorów w jednym lmie posortuj wzgl dem nazwiska). Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 4 / 13
Zapytanie do wielu tabel w bazie Zadanie Wy±wietl tytuªy lmów wraz nazwiskiem aktorów posortowane alfabetycznie wzgl dem tytuªu lmu (w przypadku kilka aktorów w jednym lmie posortuj wzgl dem nazwiska). Przykªadowe rozwi zanie SELECT film.title, actors.lastname from film JOIN film_actors ON film.id=film_actors.film_id JOIN actors ON actors.id=film_actors.actors_id ORDER BY film.title, actors.lastname; Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 5 / 13
Wy±wietl list producentów (bez powtórze«), którzy zorganizowali premier lmu w USA. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 6 / 13
Wy±wietl list producentów (bez powtórze«), którzy zorganizowali premier lmu w USA. SELECT DISTINCT film.producer FROM film JOIN country ON country.id=film.id_country WHERE country.countryname='usa'; Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 6 / 13
Wy±wietl rok produkcji, tytuª lmu, gatunek i nazwisko aktora. Wyniki posortuj wzgl dem roku produkcji od najnowszego do najstarszego. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 7 / 13
Wy±wietl rok produkcji, tytuª lmu, gatunek i nazwisko aktora. Wyniki posortuj wzgl dem roku produkcji od najnowszego do najstarszego. SELECT film.year, film.title, genre.genre, actors.lastname FROM film JOIN film_genre ON film.id=film_genre.film_id JOIN genre ON genre.id=film_genre.genre_id JOIN film_actors ON film_actors.film_id=film.id JOIN actors ON actors.id=film_actors.actors_id ORDER BY year desc; Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 7 / 13
Wy±wietl aktorów, którzy zagrali w lmie, którego produkcja kosztowaªa co najmniej 40M. Wyniki posortuj wzgl dem roku produkcji lmu. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 8 / 13
Wy±wietl aktorów, którzy zagrali w lmie, którego produkcja kosztowaªa co najmniej 40M. Wyniki posortuj wzgl dem roku produkcji lmu. SELECT actors.firstname, actors.lastname FROM actors JOIN film_actors ON actors.id=film_actors.actors_id JOIN film ON film_actors.film_id=film.id WHERE film.budget>40 ORDER BY film.year; Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 8 / 13
Wy±wietl nazwiska aktorów, którzy grali w musicalu lub horrorze. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 9 / 13
Wy±wietl nazwiska aktorów, którzy grali w musicalu lub horrorze. SELECT actors.lastname FROM actors JOIN film_actors ON actors.id=film_actors.actors_id JOIN film ON film.id=film_actors.film_id JOIN film_genre ON film_genre.film_id=film.id JOIN genre ON genre.id=film_genre.genre_id WHERE genre.genre='musical' or genre.genre='horror'; Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 9 / 13
Wy±wietl list gatunków z ilo±ci ich lmów w bazie. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 10 / 13
Wy±wietl list gatunków z ilo±ci ich lmów w bazie. SELECT genre.genre, COUNT(genre.genre) FROM genre JOIN film_genre ON film_genre.genre_id=genre.id JOIN film ON film.id=film_genre.film_id GROUP BY genre.genre Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 10 / 13
Sprawd¹ ile aktorek zagraªo u ka»dego z producentów. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 11 / 13
Sprawd¹ ile aktorek zagraªo u ka»dego z producentów. SELECT film.producer, COUNT(actors.id) FROM film JOIN film_actors ON film_actors.film_id=film.id JOIN actors ON actors.id=film_actors.actors_id WHERE actors.gender='f' GROUP BY film.producer; Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 11 / 13
Niech ka»da z osób napisze trzy zadania sprawdzaj ce 1 Zastosowanie polecenia JOIN, ORDER BY 2 Zastosowanie polecenia JOIN, GROUP BY 3 Zastosowanie wzorca (LIKE oraz znak %), funkcji MIN lub MAX Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 12 / 13
Niech ka»da z osób napisze trzy zadania sprawdzaj ce 1 Zastosowanie polecenia JOIN, ORDER BY 2 Zastosowanie polecenia JOIN, GROUP BY 3 Zastosowanie wzorca (LIKE oraz znak %), funkcji MIN lub MAX Wymie«cie si zadaniami i spróbujcie napisa zapytania. Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 12 / 13
Dzi kuj za uwag ;) Dawid Poªap Aplikacje bazodanowe - laboratorium 4 Marzec, 15, 2017 13 / 13