Csöpi-filmek 2023_okt_középszint

Csöpi-filmek_2023_okt_középszint

Alább található az SQL feladatok megoldása a megadott követelmények alapján:

1. Adatbázis és táblák létrehozása

-- Lépjünk be az adatbázisba (ha már létezik, különben hibát dob)

CREATE DATABASE IF NOT EXISTS csopi;

USE csopi;

-- Film tábla létrehozása

CREATE TABLE film (

id INT PRIMARY KEY,

cim VARCHAR(255),

ev INT,

hossz INT

);

-- Szereplő tábla létrehozása

CREATE TABLE szereplo (

id INT PRIMARY KEY,

szinesz VARCHAR(255),

szerep VARCHAR(255)

);

-- Stáb tábla létrehozása

CREATE TABLE stab (

id INT PRIMARY KEY,

filmid INT,

szereploid INT,

FOREIGN KEY (filmid) REFERENCES film(id),

FOREIGN KEY (szereploid) REFERENCES szereplo(id)

);

-- Importálás a fájlokból (a fájlok útvonalát és a pontos paranccsorokat helyettesíteni kell)

LOAD DATA INFILE '/path/to/film.txt'

INTO TABLE film

FIELDS TERMINATED BY '\t'

LINES TERMINATED BY '\n'

IGNORE 1 ROWS;

LOAD DATA INFILE '/path/to/szereplo.txt'

INTO TABLE szereplo

FIELDS TERMINATED BY '\t'

LINES TERMINATED BY '\n'

IGNORE 1 ROWS;

LOAD DATA INFILE '/path/to/stab.txt'

INTO TABLE stab

FIELDS TERMINATED BY '\t'

LINES TERMINATED BY '\n'

IGNORE 1 ROWS;

2. Színészek, akik önmagukat játszották (2onmaga)

SELECT szinesz

FROM szereplo

WHERE szinesz = szerep; 

3. Összes Csöpi-film hossza órákra váltva (3ora)

SELECT SUM(hossz) / 60 AS orak

FROM film; 

4. Színészek és szereplők a "Hamis a baba" filmben (4hamis)

SELECT s.szinesz, s.szerep

FROM szereplo s

JOIN stab st ON s.id = st.szereploid

JOIN film f ON st.filmid = f.id

WHERE f.cim = 'Hamis a baba'; 

5. Színészek, akik több szerepet játszottak a Csöpi-filmekben (5tobbszor)

SELECT szinesz, COUNT(DISTINCT szerep) AS szerepek_szama

FROM szereplo s

JOIN stab st ON s.id = st.szereploid

GROUP BY szinesz

HAVING COUNT(DISTINCT szerep) > 1

ORDER BY szerepek_szama DESC;  

6. Színészek, akik mind a hét Csöpi-filmben szerepeltek ugyanazzal a szereppel (6mindig)

SELECT szinesz, szerep

FROM szereplo s

JOIN stab st ON s.id = st.szereploid

JOIN film f ON st.filmid = f.id

GROUP BY szinesz, szerep

HAVING COUNT(DISTINCT f.id) = 7; 

Készítsd el weboldaladat ingyen! Ez a weboldal a Webnode segítségével készült. Készítsd el a sajátodat ingyenesen még ma! Kezdd el