Guia de Bases de Dades: INSERT en un esquema més gran (Chinook)


Això és una guia per ajudar-te a començar amb aquest problema — no és la solució.

Com abordar aquest problema

Practiques INSERT en una base de dades amb moltes taules. La dificultat no és la sintaxi, sinó trobar la taula i les columnes correctes a l'esquema i respectar les claus primàries i foranes. Cada pregunta és una sola sentència INSERT.

La sintaxi que necessites

INSERT INTO taula (id_columna, columna_text, id_altra_taula)
VALUES (numero, 'text', numero_existent)
  • La llista de columnes ha de fer servir els noms exactes de l'esquema (per exemple, ArtistId, no Id).
  • Els valors van en el mateix ordre que les columnes.
  • Les claus primàries (...Id) són números i no es poden repetir.
  • Una clau forana ha d'apuntar a una fila que ja existeixi a l'altra taula.

Pregunta per pregunta

Pregunta 1. Una taula petita, de només dues columnes. Mira l'esquema per veure com es diuen exactament. L'identificador és un número; el nom, un text.

Pregunta 2. El mateix patró en una altra taula. Assegura't que escrius a la taula de gèneres i no a una altra amb un nom semblant.

Pregunta 3. Aquesta taula té una clau forana cap als artistes. L'enunciat et diu a quin artista pertany l'àlbum, i aquest artista ja existeix a la base de dades original. Recorda que cada pregunta es corregeix per separat sobre la base de dades original: no comptis amb el que has inserit en una pregunta anterior.

Un exemple semblant

Un tipus de fitxer nou a la taula MediaType:

INSERT INTO MediaType (MediaTypeId, Name)
VALUES (50, 'Vinil digitalitzat')

Un àlbum inventat d'un altre artista existent:

INSERT INTO Album (AlbumId, Title, ArtistId)
VALUES (999, 'Recull de proves', 2)

Paranys habituals:

  • Equivocar-se de nom de columna o de taula (hi ha moltes taules semblants): revisa l'esquema.
  • Escriure els identificadors entre cometes: '30' és un text, no el número 30.
  • Fer servir un identificador que ja existeix: la clau primària no ho permet.
  • Posar una clau forana que no correspon a cap fila de l'altra taula.

Tornar al problema