erettsegi_2024_okt_középszint_mysql

erettsegi_2024_okt_középszint_mysql

Vissza 

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

Vissza