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

  1. Wyświetl nazwiska klientów, którzy złożyli zamówienia o kwotach 150 lub 200 zł.
  2. Znajdź nazwy produktów, które znajdują się w zamówieniach numer 1 lub 4.

2. EXISTS

  1. Wyświetl imiona i nazwiska klientów, którzy złożyli jakiekolwiek zamówienia.
  2. Znajdź nazwy produktów, które zostały zamówione przynajmniej raz.

3. ANY/SOME

  1. Wyświetl klientów, którzy złożyli zamówienia droższe niż jakiekolwiek zamówienie klienta "Jan Nowak".
  2. Znajdź produkty, których cena jest wyższa niż cena któregokolwiek produktu zamówionego w zamówieniu nr 2.

4. ALL

  1. Wyświetl klientów, którzy złożyli zamówienia o kwocie większej niż każde zamówienie klienta "Tomasz Zieliński".
  2. Znajdź produkty, które są tańsze niż wszystkie produkty w zamówieniu nr 1.