Tworzenie zapytań ze słowami kluczowymi IN, EXISTS, ANY/SOME i ALL

1. Nowe tabele i dane testowe

CREATE TABLE klasy (
    id_klasy INT AUTO_INCREMENT PRIMARY KEY,
    nazwa_klasy VARCHAR(50)
);

INSERT INTO klasy (nazwa_klasy) VALUES
('Klasa A'),
('Klasa B'),
('Klasa C');

CREATE TABLE uczniowie (
    id_ucznia INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50),
    id_klasy INT,
    FOREIGN KEY (id_klasy) REFERENCES klasy(id_klasy)
);

INSERT INTO uczniowie (imie, id_klasy) VALUES
('Adam', 1),
('Kasia', 1),
('Piotr', 2),
('Magda', 3),
('Tomek', 3);

CREATE TABLE oceny (
    id_oceny INT AUTO_INCREMENT PRIMARY KEY,
    id_ucznia INT,
    przedmiot VARCHAR(50),
    ocena INT,
    FOREIGN KEY (id_ucznia) REFERENCES uczniowie(id_ucznia)
);

INSERT INTO oceny (id_ucznia, przedmiot, ocena) VALUES
(1, 'Matematyka', 5),
(1, 'Fizyka', 4),
(2, 'Matematyka', 3),
(3, 'Matematyka', 2),
(4, 'Fizyka', 5),
(5, 'Matematyka', 4);

CREATE TABLE nauczyciele (
    id_nauczyciela INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50),
    przedmiot VARCHAR(50)
);

INSERT INTO nauczyciele (imie, przedmiot) VALUES
('Anna', 'Matematyka'),
('Jan', 'Fizyka'),
('Maria', 'Chemia');

2. Dodatkowe ćwiczenia dla słów kluczowych


IN

Wyjaśnienie: Sprawdza, czy wartość znajduje się na liście.

  1. Ćwiczenie 3: Wybierz uczniów, którzy są przypisani do klasy 'Klasa A' lub 'Klasa B'.

  2. Ćwiczenie 4: Wybierz nauczycieli, którzy uczą Matematyki lub Fizyki.


EXISTS

Wyjaśnienie: Sprawdza, czy podzapytanie zwróci jakikolwiek wynik.

  1. Ćwiczenie 3: Wybierz klasy, w których istnieją uczniowie z oceną 5.

  2. Ćwiczenie 4: Wybierz nauczycieli, którzy uczą uczniów mających ocenę 4 lub więcej.


ANY/SOME

Wyjaśnienie: Sprawdza, czy warunek jest spełniony dla przynajmniej jednego wyniku.

  1. Ćwiczenie 3: Wybierz uczniów, którzy mają ocenę wyższą niż jakikolwiek uczeń z klasy 'Klasa B'.

  2. Ćwiczenie 4: Wybierz nauczycieli, którzy uczą przedmiotu z przynajmniej jedną oceną poniżej 3.


ALL

Wyjaśnienie: Sprawdza, czy warunek jest spełniony dla wszystkich wyników.

  1. Ćwiczenie 3: Wybierz klasy, w których wszyscy uczniowie mają ocenę co najmniej 3.

  2. Ćwiczenie 4: Wybierz nauczycieli, którzy uczą przedmiotu, gdzie wszystkie oceny są 5.