background image

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

background image

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