Chinook — INSERT avançat
Veure com a PDFLa botiga renova el catàleg: nous gèneres, àlbums i pistes, llistes de reproducció generades a partir de les vendes i factures noves. Les claus foranes es busquen pel nom amb subconsultes (mai escrivint l'identificador a mà, si no es diu el contrari). Una pregunta d'inserció es pot respondre amb INSERT, INSERT ... SELECT, INSERT IGNORE, INSERT ... ON DUPLICATE KEY UPDATE o REPLACE; compte que totes les claus foranes de Chinook són NO ACTION, de manera que un REPLACE sobre una fila que té fills (per exemple, un gènere amb pistes) falla. Cada pregunta és una sola sentència i parteix de la base de dades original; les claus AUTO_INCREMENT es poden ometre.
Aquest problema fa servir la base de dades Chinook (botiga de música digital: artistes, àlbums, pistes, clients, factures i llistes), amb les taules següents: Album, Artist, Customer, Employee, Genre, Invoice, InvoiceLine, MediaType, Playlist, PlaylistTrack, Track. Pots consultar l'esquema complet amb el botó "View the database schema" d'aquesta mateixa pàgina.
Les consultes s'executen sobre MySQL (MariaDB), així que pots fer servir la sintaxi i les funcions de MySQL que fas servir a classe.
Cada pregunta es contesta amb una sola sentència INSERT o REPLACE, en el seu propi quadre de text. Cada pregunta s'executa per separat sobre una còpia de la base de dades original: els canvis d'una pregunta no afecten les altres. Per donar-la per bona es compara el contingut final de totes les taules amb el que deixaria la solució del professor, així que cal escriure exactament els valors demanats (els números sense cometes i els textos entre cometes simples).
Comentaris