Spojování podmínek: AND
Jedna podmínka často nestačí. Rodič hledá hru pro své sedmileté dítě a měla by stát méně než 400 Kč. Obě podmínky spojte pomocí AND (a):
SELECT nazev, vek_od, cena
FROM hry
WHERE vek_od <= 7
AND cena < 400
ORDER BY cena, nazev;| nazev | vek_od | cena |
|---|---|---|
| Cube Logic | 3 | 129 |
| Word Quest | 7 | 249 |
| Bakery Story | 3 | 399 |
| Ocean Deep | 7 | 399 |
| Pixel Racer | 3 | 399 |
Řádek se dostane do výsledku, jen když pro něj platí obě podmínky. Cube Logic je vhodná od tří let a stojí 129 Kč: obě podmínky platí, takže ve výsledku je. Goal Rush je také od tří let, ale stojí 1 299 Kč: druhá podmínka neplatí, a tak se vynechá.
Podmínek můžete spojit, kolik potřebujete, a řádek musí splnit všechny. Když dáte každou podmínku na samostatný řádek a AND na jeho začátek, i dlouhá podmínka se dobře čte. Adventury pro dvanáctileté za nejvýš 500 Kč:
SELECT nazev, vek_od, cena
FROM hry
WHERE zanr = 'Adventura'
AND vek_od <= 12
AND cena <= 500
ORDER BY nazev;| nazev | vek_od | cena |
|---|---|---|
| Lost Temple | 12 | 499 |
| Ocean Deep | 7 | 399 |
I rozsah hodnot, třeba ceny od 250 do 500 Kč, zapíšete jako dvě podmínky spojené pomocí AND: cena >= 250 AND cena <= 500. (Kratší zápis přijde později v této lekci.)
Typická chyba: WHERE cena >= 250 AND <= 500. Řeknete „cena aspoň 250 a nejvýš 500“, ale v SQL musí být každá podmínka celá sama o sobě. Druhá tady nemá sloupec a SQLite ohlásí:
Error on line 1: near "<=": syntax errorNapište sloupec do každé podmínky: cena >= 250 AND cena <= 500.
Jak psát:
Pokyny
Ukažte ID zákazníka, hvězdičky a komentář recenzí hry s ID 1 (hra_id), které mají aspoň 4 hvězdičky. Seřaďte je podle počtu hvězdiček od nejvyššího a pak podle ID zákazníka:
| zakaznik_id | hvezdicky | komentar |
|---|---|---|
| 2 | 5 | Nejlepší RPG, jaké jsem za poslední roky hrál! |
| 8 | 5 | NULL |
| 1 | 4 | Skvělý příběh, jen trochu dlouhý. |
Pod tím ukažte název, věkovou hranici a cenu her vhodných pro dvanáctileté (věková hranice nejvýš 12), které stojí aspoň 899 Kč. Seřaďte je od nejdražší a hry se stejnou cenou podle názvu:
| nazev | vek_od | cena |
|---|---|---|
| Goal Rush | 3 | 1299 |
| Ice Hockey Pro | 3 | 1199 |
| Galaxy Trader | 12 | 899 |
| Star Pilots | 12 | 899 |
Začněte programovat zdarma
4/12