Forrásfájlok

albums.csv

songs.csv

Importálás

Hozzatok létre egy adatbázist video_game_music néven, majd a forrásfájlok elemzését követően az adatok tárolására megfelelő adatszerkezetbe importáljátok be a forrásadatokat. A táblák nevei albums és songs legyenek.

CREATE TABLE songs(
    spotify_id varchar(255) NOT NULL,
    artist_id varchar(255),
    track_name varchar(255),
    album_name varchar(255),
    artist_name varchar(255),
    release_date date,
    duration_ms int,
    popularity int,
    added_by varchar(255),
    added_at varchar(255),
    genres varchar(255),
    danceability double,
    energy double,
    keyvalue int,
    loudness double,
    modevalue int,
    speechless double,
    acusticness double,
    instrumentalness double,
    liveness double,
    valence double,
    tempo double,
    time_signature int,
    PRIMARY KEY(spotify_id)
)
CHARACTER SET utf8
COLLATE utf8_general_ci;
cd mysql
mysql.exe -u root --password

LOAD DATA LOCAL INFILE 'C:/songs.csv' INTO TABLE video_game_music.songs FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\\n';

Bevezető feladatok

Oldjátok meg a következő feladatokat.

  1. Listázzátok ki azokat a játékokat, amelyek zeneszámairól rendelkezünk adatokkal. Minden játék neve csak egyszer forduljon elő és a játékok neve szerint ABC sorrendben jelenjenek meg.

    SELECT DISTINCT albums.video_game FROM albums
    INNER JOIN songs ON albums.album = songs.album_name
    ORDER BY albums.video_game;
    
  2. Kik szereztek zenét az Assassin's Creed játékokhoz? Írassátok ki a játékok nevét és a szerzőket (mindegyiket egyszer), a játékok neve szerint növekvő sorrendben.

    SELECT DISTINCT albums.video_game, songs.artist_name FROM albums
    INNER JOIN songs ON albums.album = songs.album_name
    WHERE albums.video_game LIKE 'Assassin\\'s Creed%'
    ORDER BY albums.video_game;
    

Az 5 legtöbb zeneszám

Melyik 5 játék rendelkezik a legtöbb zeneszámmal? Írassátok ki a játékok nevét és a hozzájuk kapcsolódó zeneszámok számát az utóbbi adat szerint csökkenő sorrendbe rendezve.

SELECT albums.video_game, COUNT(songs.spotify_id) AS song_count FROM albums
INNER JOIN songs ON albums.album = songs.album_name
GROUP BY albums.video_game
ORDER BY song_count DESC
LIMIT 5;

Jeremy Soule albumok és számok

Írjunk lekérdezést, amely kilistázza azoknak az albumoknak a nevét és a bennük található zeneszámokat, amelyek szerzője Jeremy Soule.

SELECT album_name, COUNT(spotify_id) AS song_count FROM songs
WHERE artist_name = 'Jeremy Soule'
GROUP BY album_name;

Táncolhatóság

Jelenítsük meg azt az 5 játékot, amelyek számainak a táncolhatósági mutatója a legmagasabb. Az eredményeket táncolhatóság szerint csökkenő sorrendben jelenítsük meg.