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.
-
Ćwiczenie 3: Wybierz uczniów, którzy są przypisani do klasy 'Klasa A' lub 'Klasa B'.
-
Ćwiczenie 4: Wybierz nauczycieli, którzy uczą Matematyki lub Fizyki.
EXISTS
Wyjaśnienie: Sprawdza, czy podzapytanie zwróci jakikolwiek wynik.
-
Ćwiczenie 3: Wybierz klasy, w których istnieją uczniowie z oceną 5.
-
Ć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.
-
Ćwiczenie 3: Wybierz uczniów, którzy mają ocenę wyższą niż jakikolwiek uczeń z klasy 'Klasa B'.
-
Ć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.
-
Ćwiczenie 3: Wybierz klasy, w których wszyscy uczniowie mają ocenę co najmniej 3.
-
Ćwiczenie 4: Wybierz nauczycieli, którzy uczą przedmiotu, gdzie wszystkie oceny są 5.