Porovnávací operátory
Kromě = má SQL ještě dalších pět porovnávacích operátorů:
| Operátor | Význam | Příklad |
|---|---|---|
| = | rovná se | cena = 799 |
| <> nebo != | nerovná se | cena <> 799 |
| < | je menší než | cena < 799 |
| > | je větší než | cena > 799 |
| <= | je menší nebo rovno | cena <= 799 |
| >= | je větší nebo rovno | cena >= 799 |
<> a != znamenají totéž. <> pochází ze standardu SQL a zná ho každá databáze; != možná znáte z jiných programovacích jazyků. Tento kurz používá <>.
Pozor na hranici. „Levnější než 399 Kč“ je cena < 399 a hry, které stojí přesně 399 Kč, do výsledku nepatří:
SELECT nazev, cena
FROM hry
WHERE cena < 399
ORDER BY cena;| nazev | cena |
|---|---|
| Cube Logic | 129 |
| Word Quest | 249 |
„Nejvýš 399 Kč“ je cena <= 399 a tři hry za 399 Kč ve výsledku jsou také:
SELECT nazev, cena
FROM hry
WHERE cena <= 399
ORDER BY cena, nazev;| nazev | cena |
|---|---|
| Cube Logic | 129 |
| Word Quest | 249 |
| Bakery Story | 399 |
| Ocean Deep | 399 |
| Pixel Racer | 399 |
Na kterékoli straně porovnání může být také výpočet. Zákazník má 1 000 Kč a chce dva kusy stejné hry, jeden pro kamaráda. Hry, jejichž dva kusy stojí nejvýš 1 000 Kč, od nejdražší:
SELECT nazev, cena * 2 AS dva_kusy
FROM hry
WHERE cena * 2 <= 1000
ORDER BY cena DESC, nazev;| nazev | dva_kusy |
|---|---|
| Lost Temple | 998 |
| Moon Farm | 998 |
| Bakery Story | 798 |
| … | … |
Typická chyba: znaménka obráceně, => místo >=. WHERE cena => 999 skončí chybou:
Error on line 1: near ">": syntax errorRovnítko je vždycky druhé, ve stejném pořadí, v jakém to vyslovíte: „větší nebo rovno“.
Jak psát:
Pokyny
Ukažte název a cenu her, které stojí 999 Kč nebo víc, od nejdražší. Hry se stejnou cenou seřaďte podle názvu:
| nazev | cena |
|---|---|
| Knight's Oath | 1599 |
| Goal Rush | 1299 |
| Ice Hockey Pro | 1199 |
| Dragon Forge | 999 |
| Robot Rebellion | 999 |
Pod tím ukažte název a věkovou hranici her, které nejsou vhodné od tří let (jejich vek_od není 3). Seřaďte je podle věkové hranice od nejnižší a pak podle názvu:
| nazev | vek_od |
|---|---|
| Ocean Deep | 7 |
| Tiny Kingdoms | 7 |
| Word Quest | 7 |
| Castle Siege | 12 |
| … | … |
A pro účetnictví: ukažte položky objednávek, za které zákazník zaplatil celkem víc než 1 500 Kč, tedy ty, jejichž pocet * cena je víc než 1500. Ukažte sloupce objednavka_id a hra_id a celkovou částku pojmenovanou celkem, seřazené podle objednavka_id:
| objednavka_id | hra_id | celkem |
|---|---|---|
| 22 | 14 | 1598 |
| 26 | 15 | 1599 |
| 27 | 15 | 1599 |
| 29 | 15 | 1599 |
Začněte programovat zdarma
2/12