Browary (id, nazwa) Piwa (id, nazwa, id_browaru, cena_hurtowa

Transkrypt

Browary (id, nazwa) Piwa (id, nazwa, id_browaru, cena_hurtowa
Bazy danych (1)
Browary (id, nazwa)
Piwa (id, nazwa, id_browaru, cena_hurtowa)
Osoby (id, nazwisko, imie, data_urodz, id_ulubionego)
Puby (id, nazwa, rok_otwarcia)
Preferencje (id_osoby, id_piwa, status)
Asortyment (id_pubu, id_piwa, rodzaj, cena_w_pubie)
Bywalcy (id_osoby, id_pubu)
słowa kluczowe:
SELECT, ||, ORDER BY ASC/DESC, DISTINCT, działania (+, -, *, /), nazywanie kolumn, wydobywanie części daty,
round(), lower(), upper(), ltrim(), rtrim(), trim()
1.1.
Wypisz zawartość tabeli Browary
1.2.
Wypisz nazwę piwa i jego cenę hurtową (tab. Piwa)
1.3.
Wypisz imiona i nazwiska (w tej kolejności) piwoszy z tabeli Osoby. Uporządkuj rekordy w kolejności
alfabetycznej wg nazwiska.
1.4.
Jw. tylko nazwiska wyświetl wielkimi literami.
1.5.
Wypisz identyfikatory ulubionych piw piwoszy bez powtórzeń (tab. Osoby)
1.6.
Wypisz identyfikator, nazwę piwa i cenę hurtową zaokrąglając do jednego miejsca po przecinku (tab. Piwa)
1.7.
Wypisz imiona, nazwiska i datę urodzenia piwoszy. Imiona i nazwiska (oddzielone spacją) wypisz w jednej
kolumnie o nazwie "Piwosz". Rekordy uporządkuj od osoby urodzonej najpóźniej (tzn. najmłodszej) do
osoby urodzonej najwcześniej.
1.8.
Jw. tylko zamiast pełnej daty urodzenia wyświetl jedynie rok (kolumnę nazwij ‘rok’). Rekordy uporządkuj wg
roku rosnąco i wg kolumny "Piwosz" malejąco.
-- sqlite: http://www.sqlite.org/lang_datefunc.html - funkcja strftime("%Y", ...)
-- MySQL i MS SQL Server: funkcja year(...) (np. year('2008-01-10') daje 2008)
1.9.
Wypisz nazwy pubów oraz długość ich istnienia (zakładamy, że aktualny rok to 2008)
1.10. Jw. tylko długość istnienia pubów podaj w miesiącach (zakładamy, że każdy rok istnienia to 12 m-cy).
1.11. Wypisz nazwy piw, cenę hurtową w złotówkach oraz cenę hurtową w dolarach (przyjmij kurs dolara 3 zł,
wynik zaokrąglij do dwóch miejsc po przecinku). Przy wartościach w złotówkach powinien znajdować się
napis "zl", natomiast przy dolarach "USD".
1.12. *Zmodyfikuj zapytanie z punktu 9 tak, aby jego wynik był poprawny niezależnie od roku, w którym zostanie
wywołane.
W
tym
celu
zapoznaj
się
z
działaniem
funkcji
date()
(sqlite:
http://www.sqlite.org/lang_datefunc.html) i sprawdź wynik następującego zapytania:
SELECT date();
-- UWAGA! W MySQL tę samą role spełnia funkcja curdate(), natomiast w MS SQL Server funkcja getdate().
1.13. Wypisz wszystkie RÓŻNE imiona z tabeli Osoba. Wszystkie wielkie litery zamień na małe. Wynik uporządkuj
w odwrotnej kolejności alfabetycznej
1.14. Sprawdź działanie funkcji ltrim(), rtrim(), trim(), wykonując kolejno zapytania (przed oraz po wyrazie
'politechnika' jest pięć spacji):
SELECT '
Politechnika
' as 'bez trim';
Bazy danych (1)
SELECT ltrim('
Politechnika
') as 'z ltrim';
SELECT rtrim('
Politechnika
') as 'z rtrim';
SELECT trim('
Politechnika
') as 'z trim'; -- nie występuje w MS SQL Server2005
Przygotuj się z pierwszych dwóch tutoriali (1) i 2a) ) ze strony http://sqlzoo.net, a następnie wykonaj
poniższe zapytania.
Słowa kluczowe:
WHERE, <, =, >, <=, >=, BETWEEN, IS (NOT) LIKE, IS (NOT) NULL, (NOT) IN
2.1.
Wypisz wszystkie informacje o osobie o identyfikatorze 10 (tab. Osoby)
2.2.
Wypisz wszystkich piwoszy o imieniu Jan (trzy sposoby: ='Jan', LIKE 'JAN', LIKE 'jan')
2.3.
Wypisz wszystkich piwoszy o imieniu Jan lub Adam (dwa sposoby: OR, IN)
2.4.
Wypisz nazwy piw, których cena hurtowa jest większa od 2 zł
2.5.
Wypisz piwa, których cena zawiera się między 2 a 2,3 zł (dwa sposoby: OR, BETWEEN)
2.6.
Wypisz piwa, których nazwy zawierają słowo ‘Mocne’
2.7.
Wypisz piwa, których nazwy zaczynają się na literę ‘T’ i których cena jest niższa od 2 zł
2.8.
Wypisz piwa, które nie mają ustalonej ceny
2.9.
Wypisz nazwy pubów, które istnieją przynajmniej 10 lat
2.10. Wypisz imiona, nazwiska oraz datę urodzenia wszystkich kobiet urodzonych w latach 80-tych
2.11. Wypisz imiona wszystkich mężczyzn, którzy nie mają ulubionego piwa