Egy gondolkodtató gyakorló feladatokból álló gyűjtemény. Főbb témák a nyelvspecifikus programozás és a matematika.
Egy iskolai programozóversenyen a csapatokat, feladatokat és pontszámokat kell nyilvántartani. A feladatok már összetettebb JOIN, GROUP BY és szűrési műveleteket kérnek.
CREATE TABLE csapatok (
csapat_id INT PRIMARY KEY,
nev VARCHAR(100) NOT NULL,
osztaly VARCHAR(10) NOT NULL
);
CREATE TABLE feladatok (
feladat_id INT PRIMARY KEY,
nev VARCHAR(100) NOT NULL,
tema VARCHAR(50) NOT NULL,
max_pont INT NOT NULL
);
CREATE TABLE eredmenyek (
eredmeny_id INT PRIMARY KEY,
csapat_id INT NOT NULL,
feladat_id INT NOT NULL,
pont INT NOT NULL,
FOREIGN KEY (csapat_id) REFERENCES csapatok(csapat_id),
FOREIGN KEY (feladat_id) REFERENCES feladatok(feladat_id)
);
INSERT INTO csapatok (csapat_id, nev, osztaly) VALUES
(1, 'BitBetyárok', '11.A'),
(2, 'NullPointer', '12.B'),
(3, 'Stack Overflower', '11.C'),
(4, 'Kódkovácsok', '10.A');
INSERT INTO feladatok (feladat_id, nev, tema, max_pont) VALUES
(1, 'FizzBuzz+', 'algoritmus', 100),
(2, 'Rendezés', 'algoritmus', 100),
(3, 'Adatbázis', 'SQL', 100),
(4, 'Memória', 'rendszer', 100);
INSERT INTO eredmenyek (eredmeny_id, csapat_id, feladat_id, pont) VALUES
(1, 1, 1, 100),
(2, 1, 2, 80),
(3, 2, 1, 60),
(4, 2, 3, 90),
(5, 3, 2, 100),
(6, 3, 4, 70),
(7, 4, 1, 50),
(8, 4, 3, 95);
-- Feladatok:
-- 1. Listázza ki az összes csapat nevét és osztályát.
-- 2. Kérdezze le azokat a feladatokat, amelyek témája algoritmus.
-- 3. Számolja ki minden csapat összpontszámát.
-- 4. Listázza ki azokat a csapatokat, amelyek legalább 150 pontot szereztek.
-- 5. Kérdezze le, mely csapatok kaptak pontot az SQL témájú feladatra.