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á';
nazevcena
Cube Logic129
Word Quest249

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 error

Uvnitř 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.

Pokyny

Ukažte název a cenu strategických her (žánr Strategie), od nejlevnější:

nazevcena
Tiny Kingdoms649
Castle Siege799
Galaxy Trader899

Pod tím ukažte všechny sloupce hry Knight's Oath. Najděte ji podle názvu:

idnazevzanrcenavydanovek_od
15Knight's OathRPG15992025-11-1416

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

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

Nebo se registrujte pomocí:

3/12