
erettsegi_2024_okt_középszint_mysql
erettsegi_2024_okt_középszint_mysql
Az adatbázis létrehozásához és a táblák elkészítéséhez MySQL-ben a következő lépéseket kell végrehajtani:
1. Adatbázis létrehozása
Először hozzuk létre az adatbázist erettsegi néven:
sql
CREATE DATABASE erettsegi;
Ezután válasszuk ki az adatbázist, hogy további műveleteket végezhessünk rajta:
sql
USE erettsegi;
2. Táblák létrehozása
A táblák felépítéséhez használjuk a következő utasításokat:
vizsgazo tábla
sql
CREATE TABLE vizsgazo (
id INT PRIMARY KEY,
diaknev VARCHAR(255) NOT NULL,
evfolyam INT NOT NULL,
osztaly CHAR(1) NOT NULL CHECK (osztaly IN ('A', 'B', 'C', 'D'))
);
tanar tábla
sql
CREATE TABLE tanar (
id VARCHAR(10) PRIMARY KEY,
nev VARCHAR(255) NOT NULL
);
vizsgak tábla
sql
CREATE TABLE vizsgak (
id INT PRIMARY KEY,
bizottsag VARCHAR(255) NOT NULL,
vizsgatargy VARCHAR(255) NOT NULL,
vizsgazoid INT NOT NULL,
tanarid VARCHAR(10) NOT NULL,
FOREIGN KEY (vizsgazoid) REFERENCES vizsgazo(id),
FOREIGN KEY (tanarid) REFERENCES tanar(id)
);
3. Adatok importálása
A szöveges fájlokat (vizsgazo.txt, tanar.txt, vizsgak.txt) a megfelelő táblákba kell betölteni. Az adatok importálása történhet MySQL parancsokkal, például az alábbi módon:
sql
LOAD DATA INFILE '/path/to/vizsgazo.txt'
INTO TABLE vizsgazo
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id, diaknev, evfolyam, osztaly);
A LOAD DATA INFILE parancs használatakor ügyelj arra, hogy a fájlok elérési útja helyesen legyen megadva, és az adatbázis számára engedélyezett legyen az adatok importálása.
Ugyanezt a módszert használd a tanar.txt és vizsgak.txt fájlok esetén is, a megfelelő mezőnevekkel!
A lekérdezések:
2. 12. évfolyam D osztály névsorának listázása (2nevsor)
sql
SELECT diaknev
FROM vizsgazo
WHERE evfolyam = 12 AND osztaly = 'D'
ORDER BY diaknev;
3. 12. évfolyamos érettségizők osztályonkénti létszáma (3letszamok)
sql
SELECT evfolyam, osztaly, COUNT(*) AS letszam
FROM vizsgazo
WHERE evfolyam = 12
GROUP BY evfolyam, osztaly;
4. Angol nyelv tárgyból vizsgáztató tanárok névsora (4angol)
sql
SELECT DISTINCT tanar.nev
FROM tanar
JOIN vizsgak ON tanar.id = vizsgak.tanarid
WHERE vizsgak.vizsgatargy = 'angol nyelv';
5. Diákok, akik háromnál több tantárgyból felelnek (5tobb3)
sql
SELECT vizsgazo.diaknev, vizsgazo.evfolyam, vizsgazo.osztaly
FROM vizsgazo
JOIN vizsgak ON vizsgazo.id = vizsgak.vizsgazoid
GROUP BY vizsgazo.id, vizsgazo.diaknev, vizsgazo.evfolyam, vizsgazo.osztaly
HAVING COUNT(vizsgak.id) > 3;
Készítette: A COPILOT
