←← →→

C99.hu

Egy gondolkodtató gyakorló feladatokból álló gyűjtemény. Főbb témák a nyelvspecifikus programozás és a matematika.

Főoldal

Az iskola tanárai

SQL
Nehézség: Könnyű

Egy iskola egyszerű tanári nyilvántartását kell elkészíteni. A táblák és a mintaadatok adottak, a feladatok pedig a matura gyakorlásához illeszkedő alap SQL lekérdezések.

CREATE TABLE tanarok (
tanar_id INT PRIMARY KEY,
nev VARCHAR(100) NOT NULL,
szak VARCHAR(50) NOT NULL,
fizetes INT NOT NULL
);

CREATE TABLE tantargyak (
tantargy_id INT PRIMARY KEY,
nev VARCHAR(100) NOT NULL,
heti_oraszam INT NOT NULL
);

CREATE TABLE oktatasok (
oktatas_id INT PRIMARY KEY,
tanar_id INT NOT NULL,
tantargy_id INT NOT NULL,
FOREIGN KEY (tanar_id) REFERENCES tanarok(tanar_id),
FOREIGN KEY (tantargy_id) REFERENCES tantargyak(tantargy_id)
);

INSERT INTO tanarok (tanar_id, nev, szak, fizetes) VALUES
(1, 'Horváth Eszter', 'matematika', 520000),
(2, 'Kiss Dániel', 'informatika', 560000),
(3, 'Németh Júlia', 'magyar', 510000),
(4, 'Tóth Zoltán', 'fizika', 580000);

INSERT INTO tantargyak (tantargy_id, nev, heti_oraszam) VALUES
(1, 'Matematika', 5),
(2, 'Informatika', 3),
(3, 'Magyar nyelv és irodalom', 4),
(4, 'Fizika', 3);

INSERT INTO oktatasok (oktatas_id, tanar_id, tantargy_id) VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 3),
(4, 4, 4),
(5, 2, 1);

-- Feladatok:
-- 1. Listázza ki az összes tanár nevét és szakját.
-- 2. Keresd meg azokat a tantárgyakat, amelyeknek a heti óraszáma legalább 4.
-- 3. Add meg, mely tanárok tanítanak informatikát.
-- 4. Írj lekérdezést, amely megmutatja, hány tantárgyat tanít minden tanár.


MegoldásMegoldási ötletek:
1. SELECT nev, szak FROM tanarok;
2. SELECT nev FROM tantargyak WHERE heti_oraszam >= 4;
3. SELECT t.nev FROM tanarok t JOIN oktatasok o ON t.tanar_id = o.tanar_id JOIN tantargyak ta ON o.tantargy_id = ta.tantargy_id WHERE ta.nev = 'Informatika';
4. SELECT t.nev, COUNT(*) AS tantargyak_szama FROM tanarok t JOIN oktatasok o ON t.tanar_id = o.tanar_id GROUP BY t.nev;