Porovnávání textu
Když chcete sloupec porovnat s textem, napište text do apostrofů, stejně jako u || v minulé lekci:
SELECT nazev, cena
FROM hry
WHERE zanr = 'Logická';| nazev | cena |
|---|---|
| Cube Logic | 129 |
| Word Quest | 249 |
Typická chyba: text bez apostrofů. SQLite pak považuje Logická za název sloupce a WHERE zanr = Logická skončí chybou no such column: Logická.
= porovnává text přesně, znak po znaku, a velké písmeno je jiný znak než malé. WHERE zanr = 'logická' nenajde nic, stejně jako 'Logicka' bez čárky nebo 'Logická ' s mezerou na konci. Výsledek takového dotazu je jen řádek s názvy sloupců, bez dalších řádků. Když dotaz, který by měl něco najít, nenajde nic, porovnejte jeho text s kartou Tabulky.
Název Knight's Oath obsahuje apostrof, a to je stejný znak, který text ukončuje. Tady text skončí za slovem Knight a se zbytkem si SQLite neví rady:
SELECT *
FROM hry
WHERE nazev = 'Knight's Oath';Error on line 1: near "s": syntax errorUvnitř textu napište apostrof dvakrát: 'Knight''s Oath'. Dva apostrofy za sebou znamenají v textu jeden apostrof a text pokračuje dál.
A dvojité uvozovky? Ty jsou v SQL pro názvy tabulek a sloupců, ne pro text. SQLite sice někdy vezme jako text i "Logická", ale jen když se tak nejmenuje žádný sloupec, a jiné databáze to nepřijmou vůbec. Text patří vždycky do apostrofů.
Text můžete porovnávat i pomocí <, >, <= a >=. Pak se řídí abecedou: text je „menší“, když je v abecedě dřív. Hry, jejichž název je v abecedě před písmenem D:
SELECT nazev
FROM hry
WHERE nazev < 'D'
ORDER BY nazev;| nazev |
|---|
| Bakery Story |
| Castle Siege |
| Cube Logic |
Castle Siege a Cube Logic tu jsou, přestože jsou delší než 'D': text se porovnává od prvního znaku a C je v abecedě před D. Když je jeden text začátkem druhého, kratší je dřív, takže 'Castle' je menší než 'Castle Siege'.
SQLite přesněji porovnává text podle kódů jeho znaků. V nich jsou všechna velká písmena před všemi malými, takže 'Zebra' < 'apple' platí. A písmena s diakritikou mají větší kódy než všechna písmena bez ní: 'Čáp' > 'Zebra' platí také. Stejně řadí text i ORDER BY, a proto se slova na Č, Š nebo Ž dostanou až za slova na Z.
Jak psát:
Pokyny
Ukažte název a cenu strategických her (žánr Strategie), od nejlevnější:
| nazev | cena |
|---|---|
| Tiny Kingdoms | 649 |
| Castle Siege | 799 |
| Galaxy Trader | 899 |
Pod tím ukažte všechny sloupce hry Knight's Oath. Najděte ji podle názvu:
| id | nazev | zanr | cena | vydano | vek_od |
|---|---|---|---|---|---|
| 15 | Knight's Oath | RPG | 1599 | 2025-11-14 | 16 |
Obchod přerovnává regály a vy máte na starosti hry od S do Z. Ukažte názvy her, které začínají na S nebo na pozdější písmeno abecedy, seřazené podle názvu:
| nazev |
|---|
| Shadow Ninja |
| Star Pilots |
| Tiny Kingdoms |
| Turbo Karts |
| Word Quest |
| Zombie Town |
Začněte programovat zdarma
3/12