BD, III mat, grupy LA i LC
10.01.2007
Zad 1. Rozważmy tabele:
Kierowcy(nr, nazwisko, nr_samochodu),
Samochody(nr_samochodu, marka)
Kursy(nr_kursu, cena_kursu, miasto)
Przydzialy(nr_kursu, nr_kierowcy, data_kursu),
Tabela Kierowcy zawiera dane kierowców ciężarówek. Tabela Przydziały zawiera
dane o przydziałach wszystkich kursów do kierowców – zarówno tych kursów jakie
się już odbyły jak i tych, które już są zaplanowane na przyszłość. Wpisy w tabeli
Przydziały odbywają się na bieżąco w miarę potrzeb. Tabele Samochody i Kursy
zawierają dane odpowiednio o wszystkich ciężarówkach w firmie i o wszelkich
możliwych kursach (tzn.o kierunkach i cenach). Dla uproszczenia zakładamy, że kurs
do dowolnego miasta realizowany dowolną ciężarówką ma zawsze taką samą cenę.
Podaj instrukcje SQL realizujące następujące zadania:
a) Utworzenie tabeli Przydziały (utwórz również klucz główny oraz klucze obce)
b) Wylistowanie dla każdego kierowcy jego nazwiska, marki samochodu oraz liczby
kursów, które maja zaplanowane (nie licząc odbytych kursów)
c) Utworzenie perspektywy o nazwie l_kursow zawierającej dwie kolumny: nr
kierowcy oraz łączną liczbę kursów, jakie kierowca odbył oraz ma zaplanowane
d) Wyliczenie ile łącznie kursów zostało już wykonanych (łącznie z tymi, które
wystartowały w dniu bieżącym)
e) Wyliczenie, jaką łączną kwotę należy zapłacić kierowcom za odbyte i zaplanowane
kursy.
f) Wylistowanie danych kierowców, który nie odbyli i nie mają zaplanowanych żadnych
kursów
g) Wylistowanie danych kierowców, którzy odbyli lub mają zaplanowany przynajmniej 1
kurs
h) Wylistowanie marek samochodów, które odbyły kursy do Warszawy
i) Usunięcie z tabeli Samochody wszystkich kierowców, których nazwiska zaczynają się
na literę S.
j) Wylistowanie danych kierowcy, który ma przydzielone najwięcej kursów (łącznie z
odbytymi i zaplanowanymi) - tzn. żaden kierowca nie ma przydzielonej większej ani
takiej samej liczby kursów.
1
Zad 2. Rozważmy tabele:
Książki(nr_kat, autor, tytuł, cena, rok_wydania),
Klienci(id_kl, nazwisko, adres)
Sprzedaż(id_kl, nr_kat, ilość_egz, data_sprzedaży),
Podaj instrukcje SQL realizujące następujące zadania:
a) Wydrukuje zestawienie sprzedaży w poszczególnych latach postaci:
Rok_kalendarzowy, ilość_sprzedanych_książek, łączna_kwota_sprzedaży
posortowane rosnąco wg roku.
b) Zrealizuje promocję: obniżenie o 20% cen wszystkich książek wydanych ponad 4 lata
temu
c) Wylistowanie nazwisk klientów oraz iości zakupionych przez nich książek
posortowanych malejąco względem tej ilości ale tylko klientów, którzy zakupili
więcej niż 1 książkę
d) Wyliczenie: 1) ile jest tytułów książek, których nikt nie kupił, 2) jaki % tytułów
książek stanowią książki, których nikt nie kupił
e) Wycofanie ze sprzedaży książek autora ‘Jan Kowalski’
f) Wylistowanie nazwiska każdego klienta, który kupił co najmniej jedną książkę o
nr_kat=11 oraz książkę o nr_kat=22
2