Výběr řádků: WHERE

Vaše dotazy zatím ukazovaly všechny řádky tabulky. Většinou ale chcete jen některé: hry pro malé děti, objednávky jednoho zákazníka, recenze s pěti hvězdičkami. Řádky vyberete tak, že za FROM přidáte WHERE (kde) a podmínku:

SELECT nazev, vek_od
FROM hry
WHERE vek_od = 3;
nazevvek_od
Pixel Racer3
Moon Farm3
Cube Logic3
Goal Rush3
Turbo Karts3
Bakery Story3
Ice Hockey Pro3

Databáze prochází tabulku řádek po řádku a u každého podmínku ověří: je vek_od tohoto řádku 3? Pokud ano, řádek se dostane do výsledku, pokud ne, vynechá se. Výsledek proto obsahuje jen 7 her, které jsou vhodné od tří let.

= porovnává dvě hodnoty, tady hodnotu ve sloupci vek_od s číslem 3. V SQL znamená „rovná se“ jedno =, ne == jako v jiných programovacích jazycích. (SQLite rozumí i ==, jiné databáze ale ne, a tak se držte =.)

Sloupec v podmínce nemusí být mezi sloupci, které ukazujete. Tento dotaz ukáže jen název a řádek vybere podle primárního klíče, což je nejjistější způsob, jak najít jeden konkrétní řádek:

SELECT nazev
FROM hry
WHERE id = 7;
nazev
Star Pilots

WHERE má v dotazu pevné místo: za FROM a před ORDER BY a LIMIT. Části dotazu jdou vždycky v tomto pořadí:

SELECT sloupce
FROM tabulka
WHERE podminka
ORDER BY sloupce
LIMIT pocet;

Nutné jsou jen SELECT a FROM. Ostatní části přidáte, když je potřebujete, ale vždycky v tomto pořadí. Poslední tři části také v tomto pořadí pracují: WHERE nejdřív vybere řádky, ORDER BY seřadí ty, které zbyly, a LIMIT z nich vezme prvních pár. Dvě nejdražší hry pro malé děti:

SELECT nazev, cena
FROM hry
WHERE vek_od = 3
ORDER BY cena DESC
LIMIT 2;
nazevcena
Goal Rush1299
Ice Hockey Pro1199

Typická chyba: WHERE za ORDER BY. Dotaz SELECT nazev FROM hry ORDER BY nazev WHERE vek_od = 3; skončí chybou:

Error on line 1: near "WHERE": syntax error

SQLite za řazením WHERE nečekalo. Přesuňte podmínku před ORDER BY.

Pokyny

Ukažte název a cenu her, které stojí přesně 799 Kč, seřazené podle názvu:

nazevcena
Castle Siege799
Turbo Karts799
Zombie Town799

Pod něj přidejte dotaz, který ukáže ID a datum každé objednávky zákazníka s ID 3 (sloupec zakaznik_id tabulky objednavky), od nejnovější:

iddatum
292025-12-12
172025-03-03
82024-06-18
32024-02-29

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

1/12