Bazy danych. Lista 1
Transkrypt
Bazy danych. Lista 1
Bazy danych. Lista 1 Dana jest następująca baza danych samochodów i części samochodowych: Producent(nazwa, adres, telefon, www), Produkt(producent, model, typ, cena, cena_hurtowa), Osobowy(model, moc, naped), Przyczepa(model, iloscOsi, ladownosc), Ciezarowy(model, moc, naped, ladownosc, nacisk ), Komponent(model, rodzaj, nazwa, opis) JestSkładnikiem(model, modelCzesci) Kupił(klient, adres, NIP, model, cena, data) Atrybut typ w tabeli Produkt przyjmuje wartości: ('OSOBOWY', 'PRZYCZEPA', 'CIEZAROWY', 'KOMPONENT') co pozwala określić, czy produkt jest samochodem osobowym, ciężarowym, przyczepą czy częścią wchodzącą w skład samochodu. Każdy z produktów jest bardziej szczegółowo przedstawiony w odpowiedniej dla niego tabeli: Osobowy, Ciezarowy, Przyczepa lub Komponent. W każdej z tych tabel atrybut model konkretnego produktu ma taką samą wartość jak w tabeli Produkt. Tabela Komponent opisuje części samochodowe, zaś JestSkładnikiem opisuje z jakich podzespołów złożony jest samochód. Wyraź poniższe zdania za pomocą pojedynczych komend SQL: 1. Klienci, którzy kupili co najmniej 2 samochody osobowe i co najwyżej jedną przyczepę. Rozwiąż używając wyłącznie złączeń, nie możesz użyć grupowania! 2. Samochód o najmniejszej mocy spośród ciężarowych i osobowych łącznie. Rozwiąż używając union. 3. Producenci, którzy mają w ofercie co najmniej dwa samochody osobowe, ale co najwyżej jeden ciężarowy. 4. Komponenty nie występujące w żadnym samochodzie osobowym ani w żadnym ciężarowym. 5. Klienci, którzy zrobili najmniejsze (w sensie sumy cen) zakupy w danym roku. Schemat wynikowy to (Klient, NIP, suma_cen), wynik uporządkuj wg. sumy cen. 6. Dla poszczególnych producentów podaj wyprodukowany przez nich samochód o największej mocy. 7. Producenci, którzy nie sprzedali żadnego samochodu osobowego w ciągu ostatnich 3 lat. Zamiast stałej określającej bieżący rok użyj CURRENT_DATE, between i extract(year from zm_datowa) . 8. Znajdź klientów, którzy kupili w jednym dniu samochód osobowy i radio samochodowe. 9. Znajdź takie samochody osobowe, które zawierają jakikolwiek komponent, którego nazwa zaczynają się na literę ‘t’. 10. Znajdź producentów, którzy mają w ofercie dokładnie 3 produkty. Rozwiąż bez używania grupowania! 11. Znajdź najszerszy (domknięty) przedział czasu (z dokładnością do miesiąca) w którym sprzedaż procesorów samochodu marki Opel systematycznie rosła. Użyj grupowania. Schemat wyniku (data_pocz, data_koncowa).