Temat: Zadanie na lekcji (3) - łączenie tabel
Zadanie na lekcji (3)
Utwórz bazę szkola2;
Utwórz tabelę szkola2.uczen (id_uczen, imie, nazwisko, PRIMARY KEY (id_uczen))
Utwórz tabelę szkola2.przedmiot (id_przedmiot, nazwa, PRIMARY KEY (id_przedmiot));
Utwórz tabelę szkola2.oceny (id, id_ucznia, id_przedmiot, ocena, PRIMARY KEY (id));
CREATE DATABASE szkola2;
CREATE TABLE szkola2.uczen
(
id_uczen INT NOT NULL AUTO_INCREMENT,
imie VARCHAR (30) NOT NULL,
nazwisko VARCHAR (30) NOT NULL,
PRIMARY KEY (id_uczen)
);
CREATE TABLE szkola2.przedmiot
(
id_przedmiot INT NOT NULL AUTO_INCREMENT,
nazwa VARCHAR (30) NOT NULL,
PRIMARY KEY (id_przedmiot)
);
CREATE TABLE szkola2.oceny
(
id INT NOT NULL AUTO_INCREMENT,
id_ucznia INT NOT NULL,
id_przedmiot INT NOT NULL,
ocena INT NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO szkola2.uczen VALUES (1, 'Jan', 'Kowalski');
INSERT INTO szkola2.uczen VALUES (2, 'Bartek', 'Nowak');
INSERT INTO szkola2.uczen VALUES (3, 'Alicja', 'Polak');
INSERT INTO szkola2.uczen VALUES (4, 'Jan', 'Wrona');
INSERT INTO szkola2.przedmiot VALUES (1, 'Matematyka');
INSERT INTO szkola2.przedmiot VALUES (2, 'Informatyka');
INSERT INTO szkola2.przedmiot VALUES (3, 'Fizyka');
INSERT INTO szkola2.oceny VALUES (NULL, 1, 1, 1);
INSERT INTO szkola2.oceny VALUES (NULL, 2, 2, 3);
INSERT INTO szkola2.oceny VALUES (NULL, 3, 2, 4);
INSERT INTO szkola2.oceny VALUES (NULL, 1, 1, 2);
INSERT INTO szkola2.oceny VALUES (NULL, 2, 2, 2);
INSERT INTO szkola2.oceny VALUES (NULL, 3, 3, 5);
INSERT INTO szkola2.oceny VALUES (NULL, 1, 2, 6);
INSERT INTO szkola2.oceny VALUES (NULL, 2, 2, 1);
INSERT INTO szkola2.oceny VALUES (NULL, 3, 1, 3);
INSERT INTO szkola2.oceny VALUES (NULL, 1, 2, 2);
INSERT INTO szkola2.oceny VALUES (NULL, 2, 3, 4);
INSERT INTO szkola2.oceny VALUES (NULL, 3, 3, 4);
INSERT INTO szkola2.oceny VALUES (NULL, 4, 2, 6);
SELECT * FROM szkola2.uczen u, szkola2.przedmiot p, szkola2.oceny o
WHERE u.id_uczen=o.id_ucznia AND o.id_przedmiot=p.id_przedmiot
ORDER BY u.nazwisko;
/*
Wersja uproszczona
SELECT u.nazwisko, u.imie, p.nazwa, o.ocena
FROM szkola2.uczen u, szkola2.przedmiot p, szkola2.oceny o
WHERE u.id_uczen=o.id_ucznia AND o.id_przedmiot=p.id_przedmiot
ORDER BY u.nazwisko;
*/