· 7 years ago · Jan 13, 2019, 12:26 PM
1Zadanie praktyczne „Administracja bazami danychâ€
2
3Utwórz bazę danych opartą na poniższych tabelach. Zaimportuj dane.
4
5CREATE TABLE IF NOT EXISTS `klienci` (
6 `idklienta` int(11) NOT NULL AUTO_INCREMENT,
7 `imie` text COLLATE utf8_polish_ci NOT NULL,
8 `nazwisko` text COLLATE utf8_polish_ci NOT NULL,
9 `miejscowosc` text COLLATE utf8_polish_ci NOT NULL,
10 PRIMARY KEY (`idklienta`),
11 KEY `id` (`idklienta`)
12) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=11 ;
13
14INSERT INTO `klienci` (`idklienta`, `imie`, `nazwisko`, `miejscowosc`) VALUES
15(1, 'Lucjan', 'Błaszczyk', 'Gliwice'),
16(2, 'Marian', 'Nowak', 'Katowice'),
17(3, 'Maciej', 'Grzywocz', 'Ruda ÅšlÄ…ska'),
18(4, 'Dorota', 'Jankowska', 'Knurów'),
19(5, 'Tomasz', 'Mazur', 'Jelenia Góra'),
20(6, 'Michał', 'Fedeliński', 'Kraków'),
21(7, 'Artur', 'Rutkowski', 'Kielce'),
22(8, 'Mateusz', 'Skorupa', 'Gdańsk'),
23(9, 'Andrzej', 'Rutkowski', 'Rybnik'),
24(10, 'Anna', 'Karenina', 'Pułtusk');
25
26
27CREATE TABLE IF NOT EXISTS `ksiazki` (
28 `idksiazki` int(11) NOT NULL AUTO_INCREMENT,
29 `imieautora` text COLLATE utf8_polish_ci NOT NULL,
30 `nazwiskoautora` text COLLATE utf8_polish_ci NOT NULL,
31 `tytul` text COLLATE utf8_polish_ci NOT NULL,
32 `cena` float NOT NULL,
33 PRIMARY KEY (`idksiazki`)
34) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=6 ;
35
36INSERT INTO `ksiazki` (`idksiazki`, `imieautora`, `nazwiskoautora`, `tytul`, `cena`) VALUES
37(1, 'Peter', 'MacIntyre', 'PHP. Zaawansowane programowanie', 47.29),
38(2, 'Andrzej', 'SzelÄ…g', 'Windows 8 PL. Zaawansowana administracja systemem', 49.99),
39(3, 'Jacob', 'Seidelin', 'HTML5. Tworzenie gier', 53.65),
40(4, 'Tomasz', 'Kowalski', 'Urządzenia techniki komputerowej. Podręcznik dla technikum', 34.15),
41(5, 'Åukasz', 'Pasternak', 'PHP. Tworzenie nowoczesnych stron WWW', 29.99);
42
43CREATE TABLE IF NOT EXISTS `zamowienia` (
44 `idzamowienia` int(11) NOT NULL AUTO_fINCREMENT,
45 `idklienta` int(11) NOT NULL,
46 `idksiazki` int(11) NOT NULL,
47 `data` date NOT NULL,
48 `status` text COLLATE utf8_polish_ci NOT NULL,
49 PRIMARY KEY (`idzamowienia`)
50) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=7 ;
51
52INSERT INTO `zamowienia` (`idzamowienia`, `idklienta`, `idksiazki`, `data`, `status`) VALUES
53(1, 4, 2, '2012-10-08', 'oczekiwanie'),
54(2, 3, 1, '2012-09-08', 'wyslano'),
55(3, 8, 1, '2012-10-11', 'wyslano'),
56(4, 4, 5, '2012-10-15', 'oczekiwanie'),
57(5, 4, 4, '2012-08-12', 'oczekiwanie'),
58(6, 3, 2, '2012-10-20', 'wyslano');
59
60Znajdź w bazie:
61Zestaw 1:
621. Książki ułożone alfabetycznie wg tytułu.
632. Książki zawierające wyrażenie “PHP†w tytule.
643. Książki, które zamówiła osoba o nazwisku Grzywocz.
65Zestaw 2:
661. Najdroższą książkę w bazie.
672. Najwcześniej dokonane zamówienie.
683. Wyjmij dla wszystkich zamówień: imię i nazwisko klienta zamawiającego, id zamówienia, datę zamówienia.
69Zestaw 3:
701. Wszystkie wysłane zamówienia.
712. Osoby, które zamówiły książkę nr 2.
723. Z użyciem klauzuli LEFT JOIN: Znajdź imiona i nazwiska klientów, którzy niczego nie zamówili (będą mieli wartość NULL czyli niezdefiniowaną dla idzamowienia).
73Zestaw 4:
741. Wszystkich klientów o nazwisku Rutkowski.
752. Z użyciem podzapytania: najdroższa książka w bazie.
763. Książki ze statutem „wysłano†w miesiącu październik.
77Zestaw 5:
781. Najtańszą książkę w bazie.
792. Klientów z Jeleniej Góry.
803. Tytuły książek, które zostały zamówione, a jeszcze nie zostały wysłane.
81Zestaw 6:
821. Wszystkich klientów o nazwisku Skorupa.
832. Książki ułożone alfabetycznie wg tytułu.
843. Imię i nazwisko klienta, który zamówił najdroższą książkę.
85Zestaw 7:
861. Książki zawierające wyrażenie “Windows†w tytule.
872. Osoby, które zamówiły książkę nr 1.
883. Imię i nazwisko klienta, który zamówił najtańszą książkę.
89Zestaw 8:
901. Książki ułożone alfabetycznie wg tytułu.
912. Książki zawierające wyrażenie “PHP†w tytule.
923. Książki, które zamówiła osoba o nazwisku Grzywocz.
93Zestaw 9:
941. Najdroższą książkę w bazie.
952. Najwcześniej dokonane zamówienie.
963. Wyjmij dla wszystkich zamówień: imię i nazwisko klienta zamawiającego, id zamówienia, datę zamówienia.
97Zestaw 10:
981. Wszystkie wysłane zamówienia.
992. Osoby, które zamówiły książkę nr 2.
1003. Z użyciem klauzuli LEFT JOIN: Znajdź imiona i nazwiska klientów, którzy niczego nie zamówili (będą mieli wartość NULL czyli niezdefiniowaną dla idzamowienia).
101Zestaw 11:
1021. Wszystkich klientów o nazwisku Rutkowski.
1032. Z użyciem podzapytania: najdroższa książka w bazie.
1043. Książki ze statutem „wysłano†w miesiącu październik.
105Zestaw 12:
1061. Najtańszą książkę w bazie.
1072. Klientów z Jeleniej Góry.
1083. Tytuły książek, które zostały zamówione, a jeszcze nie zostały wysłane.
109Zestaw 13:
1101. Wszystkich klientów o nazwisku Skorupa.
1112. Książki ułożone alfabetycznie wg tytułu.
1123. Imię i nazwisko klienta, który zamówił najdroższą książkę.
113Zestaw 14:
1141. Książki zawierające wyrażenie “Windows†w tytule.
1152. Osoby, które zamówiły książkę nr 1.
1163. Imię i nazwisko klienta, który zamówił najtańszą książkę.
117Zestaw 15:
1181. Wszystkich klientów o nazwisku Kowalski.
1192. Książki zawierające wyrażenie “HTML†w tytule.
1203. Imię i nazwisko klienta, który zamówił najwięcej książek.