Guide for Cavallers i Dracs 1: Primeres consultes


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

Com abordar aquest problema

Primeres consultes sobre una sola taula: mostrar-ho tot, triar columnes, filtrar files amb WHERE i ordenar amb ORDER BY. La BD té dues taules, Knights (cavallers) i Dragons (dracs): mira a l'esquema quina té cada columna. Cada pregunta té el seu propi quadre de text: escriu-hi una sola consulta SELECT (sense res més) per a cada pregunta.

La sintaxi que necessites

SELECT columnes        -- o bé * per a totes
FROM taula
WHERE condició
ORDER BY columna [ASC | DESC];
  • * vol dir "totes les columnes de la taula", en l'ordre en què estan definides.
  • WHERE filtra files; els textos es comparen entre cometes simples ('text').
  • ORDER BY ordena; ASC és el valor per defecte (de més petit a més gran, i en dates de més antiga a més recent) i DESC és l'invers.

Pregunta per pregunta

Pregunta 1. Vol totes les columnes i totes les files d'una taula, sense filtre. Hi ha un símbol que ho fa en una sola paraula.

Pregunta 2. Dues columnes, en l'ordre de l'enunciat, i un filtre de text sobre el color. Fixa't en quina de les dues taules hi ha els dracs, i escriu el color en anglès i amb la majúscula inicial, tal com està a les dades.

Pregunta 3. Dues columnes de la taula de cavallers, sense filtre, ordenades per una tercera columna que no cal mostrar. Sí: pots ordenar per una columna que no surt al SELECT. Pensa quin sentit d'ordenació posa primer el més antic.

Un exemple semblant

El nom i el cognom de les cavalleres (gènere 'F'), ordenades per cognom:

SELECT Firstname, Lastname
FROM Knights
WHERE Gender = 'F'
ORDER BY Lastname;

Els dracs que han fet més de 500 víctimes, del que més en té al que menys:

SELECT Name, KnownVictims
FROM Dragons
WHERE KnownVictims > 500
ORDER BY KnownVictims DESC;

Paranys habituals:

  • SELECT * només és correcte quan et demanen totes les columnes; en la resta de casos el nombre de columnes no coincidiria.
  • Els valors de text distingeixen el que està escrit a la BD: 'green' no és 'Green'.
  • Cometes simples per als textos. Si un nom de columna et dona problemes, revisa l'esquema: aquí es diuen Firstname, Nickname, BirthDate...
  • El jutge no compara l'ordre de les files ni els noms de les columnes, però sí quantes columnes hi ha i en quin ordre.

Tornar al problema