
Thorma_2022_okt_középszint
Thorma_2022_okt_középszint
1. Az adatbázis létrehozása és adatok importálása
Először hozzunk létre egy thorma nevű adatbázist, majd importáljuk a fájlokat.
Adatbázis létrehozása (pl. MySQL-ben)
CREATE DATABASE thorma;
USE thorma;
Táblák létrehozása
CREATE TABLE festok (
azon INT PRIMARY KEY,
nev VARCHAR(100),
szuletett INT,
meghalt INT
);
CREATE TABLE kepek (
leltar VARCHAR(20) PRIMARY KEY,
fazon INT,
cim VARCHAR(255),
keszult INT,
anyag VARCHAR(50),
technika VARCHAR(50),
szeles DECIMAL(5,1),
magas DECIMAL(5,1),
FOREIGN KEY (fazon) REFERENCES festok(azon)
);
A fájlokat MySQL-ben a következő módon importálhatjuk:
LOAD DATA INFILE 'kepek.txt'
INTO TABLE kepek
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
LOAD DATA INFILE 'festok.txt'
INTO TABLE festok
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
Ha SQLite-ot használunk, akkor a .import parancsot kell alkalmazni.
2. A festők nevei, akik 1914-ben még éltek (2haboru)
SELECT nev
FROM festok
WHERE szuletett <= 1914 AND meghalt >= 1914
ORDER BY nev;
3. Az anyagok, amelyeket "olaj" technikával használtak (3anyag)
SELECT DISTINCT anyag
FROM kepek
WHERE technika = 'olaj';
4. Képek, amelyek címében szerepel a "domb" szó (4domb)
SELECT kepek.cim, kepek.szeles, kepek.magas, festok.nev
FROM kepek
JOIN festok ON kepek.fazon = festok.azon
WHERE kepek.cim LIKE '%domb%';
5. A legmagasabb kép és alkotója (5magas)
SELECT kepek.cim, festok.nev
FROM kepek
JOIN festok ON kepek.fazon = festok.azon
WHERE kepek.magas = (SELECT MAX(magas) FROM kepek);
6. Hány kép készült egy adott évben (csökkenő sorrendben) (6evek)
SELECT keszult, COUNT(*) AS db
FROM kepek
GROUP BY keszult
ORDER BY db DESC;