Textové funkce

Funkce umějí pracovat i s textem. UPPER(x) napíše text velkými písmeny, LOWER(x) malými a LENGTH(x) (délka) řekne, kolik má znaků:

SELECT jmeno, UPPER(jmeno) AS velkymi, LENGTH(jmeno) AS znaku
FROM zakaznici
LIMIT 3;
jmenovelkymiznaku
Eva NovotnáEVA NOVOTNá11
Jakub DvořákJAKUB DVOřáK12
Tereza SvobodováTEREZA SVOBODOVá16

Ve druhém sloupci něco nesedí: EVA NOVOTNá. UPPER a LOWER v SQLite převádějí jen písmena anglické abecedy, takže písmena s háčkem nebo čárkou nechávají, jak jsou. SQLite je malá databáze a tabulky všech písmen světa v sobě nemá; jiné databáze to umějí správně. Tady je proto používejte na texty bez diakritiky, třeba na názvy her: LOWER('Moon Farm') dá moon farm.

LENGTH naopak česká písmena počítá správně. Počítá všechny znaky: písmena, číslice, mezery i interpunkci. Eva Novotná jich má 11, i s mezerou.

K čemu to je? Banner na úvodní stránce obchodu ukazuje názvy her velkými písmeny, formulář kontroluje, že se jméno vejde na štítek balíku, a LOWER pomůže, když porovnáváte texty a nevíte, jak jsou napsané: LOWER(zanr) je rpg, ať je v tabulce RPG, Rpg, nebo rpg. To využijete později v této lekci ve WHERE.

Funkce nemění data v tabulce, jen to, co dotaz ukáže. Po dotazu nahoře je v tabulce pořád Eva Novotná, stejně jako předtím. To platí o každém dotazu: data jen čte.

A NULL zůstává NULL: délka chybějícího komentáře není 0, ale NULL. Funkce, která nedostane žádnou hodnotu, nemá s čím pracovat, a tak žádnou hodnotu nevrátí. Jak NULL nahradit něčím jiným, se naučíte brzy.

Typická chyba: název sloupce v apostrofech. UPPER('nazev') nepracuje se sloupcem nazev, ale napíše velkými písmeny text 'nazev', takže v každém řádku bude NAZEV. Text v apostrofech je vždycky jen text; názvy sloupců pište bez apostrofů.

Pokyny

Banner na úvodní stránce obchodu ukazuje názvy her velkými písmeny a vejde se na něj jen 12 znaků. Abyste viděli, které názvy se vejdou, ukažte název každé hry velkými písmeny jako napis a délku názvu jako znaku. Hry seřaďte podle názvu:

napisznaku
BAKERY STORY12
CASTLE SIEGE12
CUBE LOGIC10
……

Pod tím ukažte recenze hry Dragon Forge (hra_id 1): zakaznik_id, hvězdičky a délku komentáře jako znaku, seřazené podle zakaznik_id. Jedna z recenzí komentář nemá:

zakaznik_idhvezdickyznaku
1433
2546
5321
85NULL

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/10