Powtórzenie wiadomości z widoków, podzapytań i sposobów ich tworzenia
Nowe dane do zaimportowania
-- Tworzenie tabel
CREATE TABLE klienci (
id_klienta INT AUTO_INCREMENT PRIMARY KEY,
imie VARCHAR(50),
nazwisko VARCHAR(50)
);
CREATE TABLE zamowienia (
id_zamowienia INT AUTO_INCREMENT PRIMARY KEY,
id_klienta INT,
kwota DECIMAL(10, 2),
data_zamowienia DATE,
FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta)
);
CREATE TABLE produkty (
id_produktu INT AUTO_INCREMENT PRIMARY KEY,
nazwa_produktu VARCHAR(50),
cena DECIMAL(10, 2)
);
CREATE TABLE zamowienia_produkty (
id_zamowienia INT,
id_produktu INT,
ilosc INT,
FOREIGN KEY (id_zamowienia) REFERENCES zamowienia(id_zamowienia),
FOREIGN KEY (id_produktu) REFERENCES produkty(id_produktu),
PRIMARY KEY (id_zamowienia, id_produktu)
);
-- Wstawianie danych
-- Klienci
INSERT INTO klienci (imie, nazwisko) VALUES
('Anna', 'Kowalska'),
('Jan', 'Nowak'),
('Maria', 'Wiśniewska'),
('Tomasz', 'Zieliński');
-- Zamówienia
INSERT INTO zamowienia (id_klienta, kwota, data_zamowienia) VALUES
(1, 200.00, '2025-01-01'),
(2, 150.00, '2025-01-05'),
(3, 300.00, '2025-01-10'),
(4, 100.00, '2025-01-15');
-- Produkty
INSERT INTO produkty (nazwa_produktu, cena) VALUES
('Laptop', 1500.00),
('Telefon', 800.00),
('Tablet', 500.00),
('Monitor', 300.00);
-- Zamówienia-Produkty
INSERT INTO zamowienia_produkty (id_zamowienia, id_produktu, ilosc) VALUES
(1, 1, 1),
(1, 4, 2),
(2, 3, 1),
(3, 2, 2),
(4, 4, 1);
Ćwiczenia
1. IN
- Wyświetl nazwiska klientów, którzy złożyli zamówienia o kwotach 150 lub 200 zł.
- Znajdź nazwy produktów, które znajdują się w zamówieniach numer 1 lub 4.
2. EXISTS
- Wyświetl imiona i nazwiska klientów, którzy złożyli jakiekolwiek zamówienia.
- Znajdź nazwy produktów, które zostały zamówione przynajmniej raz.
3. ANY/SOME
- Wyświetl klientów, którzy złożyli zamówienia droższe niż jakiekolwiek zamówienie klienta "Jan Nowak".
- Znajdź produkty, których cena jest wyższa niż cena któregokolwiek produktu zamówionego w zamówieniu nr 2.
4. ALL
- Wyświetl klientów, którzy złożyli zamówienia o kwocie większej niż każde zamówienie klienta "Tomasz Zieliński".
- Znajdź produkty, które są tańsze niż wszystkie produkty w zamówieniu nr 1.