Vytvoření tabulky

Dosud jste pracovali s tabulkami, které už existovaly. V této lekci budete vytvářet vlastní tabulky a mimochodem uvidíte, jak vznikly tabulky obchodu Pixel Shop. Novou tabulku vytvoří příkaz CREATE TABLE (vytvoř tabulku), za kterým následuje název tabulky a v závorkách její sloupce:

CREATE TABLE platformy (
    nazev TEXT,
    vyrobce TEXT,
    rok INTEGER
) STRICT;

Každý sloupec má název a typ, který říká, jaké hodnoty v něm budou: TEXT pro text, INTEGER pro celá čísla. S dalšími typy se seznámíte v příštím cvičení. Sloupce se oddělují čárkami a za uzavírací závorkou následuje slovo STRICT a středník. Psát každý sloupec na samostatný řádek není povinné, ale tabulka se pak dobře čte.

Názvy tabulek a sloupců se obvykle píšou malými písmeny, bez háčků a čárek a s podtržítkem mezi slovy, jako vek_od nebo objednavka_id. Tabulka většinou dostane název v množném čísle, protože obsahuje mnoho řádků: hry, zakaznici.

CREATE TABLE žádné řádky nehledá, a tak neukáže žádný výsledek. Nová tabulka je prázdná; naplníte ji příkazem INSERT, který znáte z minulé lekce, a podíváte se do ní pomocí SELECT:

INSERT INTO platformy (nazev, vyrobce, rok)
VALUES ('PlayStation 5', 'Sony', 2020),
       ('Switch', 'Nintendo', 2017),
       ('Xbox Series X', 'Microsoft', 2020);

SELECT * FROM platformy;
nazevvyrobcerok
PlayStation 5Sony2020
SwitchNintendo2017
Xbox Series XMicrosoft2020

Toto cvičení začíná s prázdnou databází, takže karta Tabulky nemá co ukázat. Vaši tabulku by ale neukázala ani tak: ukazuje jen tabulky, se kterými cvičení začíná. Když chcete vidět, co ve vaší tabulce je, napište na ni dotaz. A protože každé spuštění začíná s novou databází, váš soubor tabulku pokaždé vytvoří znovu. Ve skutečné databázi se tabulka vytvoří jednou a pak už zůstane; kdybyste stejný CREATE TABLE spustili podruhé, skončil by chybou table platformy already exists (tabulka už existuje).

K čemu je STRICT (přísný)? Bez něj SQLite pustí do kteréhokoli sloupce jakoukoli hodnotu, třeba i text do sloupce celých čísel. V tom je SQLite výjimkou: jiné databáze, jako PostgreSQL nebo MySQL, typy kontrolují vždycky. STRICT zapne kontrolu i v SQLite, takže hodnotu špatného typu databáze odmítne:

INSERT INTO platformy (nazev, vyrobce, rok)
VALUES ('Steam Deck', 'Valve', 'v roce 2022');
Error on line 1: cannot store TEXT value in INTEGER column platformy.rok

Všechny tabulky obchodu Pixel Shop jsou STRICT a stejně tak bude každá tabulka, kterou v kurzu vytvoříte. Chybu v datech snadno opravíte, když ji databáze zastaví hned, ale mnohem hůř, když ji někdo objeví po několika měsících.

Typická chyba: čárka za posledním sloupcem. Čárky patří jen mezi sloupce, takže tohle skončí chybou:

CREATE TABLE platformy (
    nazev TEXT,
    vyrobce TEXT,
    rok INTEGER,
) STRICT;
Error on line 1: near ")": syntax error

Pokyny

Obchod si chce vést seznam svých zaměstnanců. Vytvořte tabulku zamestnanci se třemi sloupci: jmeno a pozice, oba textové, a plat, celé číslo. Nezapomeňte na STRICT. Po spuštění zatím ve Výsledcích nic neuvidíte: soubor nemá žádný dotaz.

Pod ni vložte tyto tři zaměstnance (jméno, pozice, plat):

  • 'Lucie Malá', 'vedoucí', 55000
  • 'Petr Černý', 'podpora', 38000
  • 'Jana Bílá', 'marketing', 42000

Pak ukažte celou tabulku seřazenou podle platu od nejvyššího:

jmenopoziceplat
Lucie Malávedoucí55000
Jana Bílámarketing42000
Petr Černýpodpora38000

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

1/10