Chapter 4 - Annex
Chapter 4 - Annex
Slide 9
Slide 13
Slide 15
Example: List the album names, artist names and albums length
CREATE OR REPLACE VIEW albums_length (artist, album, length) AS
SELECT art.name, alb.name, SEC_TO_TIME(SUM(TIME_TO_SEC(s.length)))
FROM albums AS alb
LEFT JOIN artists AS art ON art.id = alb.artist_id
LEFT JOIN songs AS s ON alb.id = s.album_id
GROUP BY alb.id;
Slide 25
Slide 36
Slide 41
Slide 45
DELIMITER //
CREATE TRIGGER log_artist_delete AFTER DELETE
ON artists FOR EACH ROW
BEGIN
INSERT INTO logs (operation) VALUES
(CONCAT('Artist ', old.name, ' deleted'));
END//
DELIMITER ;
Slide 46
DELIMITER //
CREATE TRIGGER log_artist_genre_delete AFTER DELETE
ON artist_genres FOR EACH ROW
BEGIN
DECLARE artist_name VARCHAR(255);
SELECT name INTO artist_name FROM artists WHERE id = old.artist_id;
IF (artist_name IS NOT NULL) THEN
INSERT INTO logs (operation) VALUES
(CONCAT('Artist genres for ', artist_name, ' deleted'));
END IF;
END//
DELIMITER ;
Slide 55