NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Lekce 2 - SQLite - Vytvoření databáze a tabulky

V minulé lekci, Úvod do SQLite a příprava prostředí, jsme si řekli něco o relačních databázích a připravili jsme si prostředí.

V dnešním SQLite tutoriálu si vytvoříme databázi a do ní nějakou tabulku.

Vytvořme si databázi, obvykle nám pro jeden projekt (web) postačí jedna databáze.

Klikněme v DB Browser for SQLite na New Database. Vybereme složku, kam chceme databázi uložit a vyplníme název databáze s příponou .db (např. databaze_pro_web.db). V databázích je zvykem pojmenovávat položky bez diakritiky, malými písmeny a s podtržítkovou notací. Je zřejmé, proč není diakritika dobrý nápad, za velkými a malými písmeny je Linux, který je rozlišuje a většina serverů právě na Linuxu běží.

Potvrdíme a zobrazí se okno pro vytvoření první tabulky, vzpomeneme si na příklad tabulky uživatelů, co jsme si ukázali v minulém dílu. První buňka s nadpisem Table po nás chce jméno tabulky, zadáme dle pravidel uzivatele. Tabulka měla sloupce jméno, příjmení, datum narození a počet článků. Jak jsme již zmiňovali, každá tabulka by měla mít sloupec, jehož hodnota je pro každou položku unikátní. Tímto sloupcem začneme a klikneme na tlačítko Add, v tabulce níže se nám objeví řádek, jehož první údaj — jméno — přepíšeme na uzivatele_id, datový typ necháme předvyplněný INTEGER, tj. celé číslo a dále zaškrtneme PK a AI. PK značí PRIMARY KEY, což znamená, že tento sloupec slouží k identifikaci řádku v tabulce a jeho hodnota musí být unikátní. AI je zkratka AUTOINCREMENT, hodnota uzivatele_id se tedy bude automaticky navyšovat a uživatelé se budou postupně číslovat. Id je dobré pojmenovávat s prefixem tabulky, ale není to nutné.

Teď přidáme další sloupce, klikneme znovu na Add a tentokrát zadáme jmeno. Ve druhém sloupci nastavíme hodnotu TEXT. Toto provedeme obdobně i pro sloupce prijmeni a datum_narozeni. Poslednímu sloupci se jménem pocet_clanku ponecháme datový typ INTEGER.

Všimneme si, že níže se nám vygeneroval kód v jazyce SQL. Výsledek v DB Browseru vypadá takto:

Vytvoření tabulky - SQLite databáze krok za krokem

Na obou panelech vidíme strukturu naší tabulky uzivatele a pod ní kód SQL pro její vytvoření, vygenerovaný DB Browserem. Vše potvrdíme kliknutím na tlačítko OK, čímž okno zavřeme.

Pokud chceme v DB Browseru uložit jakékoliv úpravy, aby se projevily v databázi, musíme v horní liště kliknout na tlačítko Write Changes, což uděláme právě teď.

Jelikož se databáze ukládají jako normální soubory, kdekoliv, kde si zvolíte, jejich odstranění se provede jako prosté smazání tohoto souboru.

Jazyk SQL

SQL označuje Structured Query Language, tedy strukturovaný dotazovací jazyk. SQL je tzv. jazyk deklarativní. Zatímco u imperativních jazyků počítači vlastně říkáme krok po kroku co má udělat, u jazyků deklarativních pouze říkáme co má být výsledkem a již nás nezajímá, jak tohoto výsledku počítač dosáhne. Díky tomu jsou databázové dotazy zjednodušeny na příkaz typu "Vrať mi 10 uživatelů s nejvyšším hodnocením". Databáze takový dotaz pochopí, rozloží si ho na nějaké své instrukce a tak jej zpracuje. Nám poté opravdu vrátí výsledek, aniž bychom tušili, jak k němu došla. Pokud vám příkaz přišel jako nadsázka, tak tomu tak není a příkazy opravdu takto vypadají. Jen jsou anglicky.

SQL se původně jmenovalo SEQUEL (Structured English Query Language) a vzniklo v laboratořích společnosti IBM s cílem vytvořit jazyk, kterým by se dalo komunikovat s databází jednoduchou angličtinou. SQL (relační) databáze se poté rozšiřovaly a ujaly. Dnes se prakticky nic jiného nepoužívá a i když má SQL v objektovém programování značné nevýhody, firmám se nechce přecházet na nic jiného (i když existují alternativní řešení). Ale to jsme odbočili.

Naklikáním tabulky nám DB Browser vytvořil tento kód, který si rozebereme:

CREATE TABLE "uzivatele" (
    "uzivatele_id" INTEGER,
    "jmeno" TEXT,
    "prijmeni" TEXT,
    "datum_narozeni" TEXT,
    "pocet_clanku" INTEGER,
    PRIMARY KEY("uzivatele_id" AUTOINCREMENT)
);

Příkaz začíná frází CREATE TABLE, což jak asi víte, označuje, že chceme vytvořit tabulku. Poté následuje jméno tabulky, které je v SQLite obvyklé dávat do dvojitých uvozovek. Do závorky se píšou názvy jednotlivých sloupců s jejich datovými typy a případně i dalšími atributy, jako např. zde PRIMARY KEY a AUTOINCREMENT, a oddělují se čárkou. Každý příkaz v SQL zakončujeme středníkem, který ani tady nechybí.

V SQL se většinou píšou příkazy velkými písmeny, to proto, že je to lépe odliší od zbytku dotazu nebo od kódu naší aplikace (např. v PHP). Názvy tabulek, sloupců a další identifikátory jsou naopak malými písmeny a podtržítkovou notací. Je dobrým zvykem je vkládat mezi dvojité uvozovky (případně další podporované znaky, jako zpětné uvozovky a podobně), ale nejsou povinné a příkazy proběhnou bez problémů i bez nich.

Spuštění SQL dotazu

Nejprve odstraníme tabulku uzivatele kliknutím na Delete Table. Poté přejdeme na panel Execute SQL a do textového pole nahoře napíšeme SQL dotaz pro vytvoření tabulky, který jsme si před chvilkou vysvětlili. Po kliknutí na šipku by se nám níže zobrazí hláška, že dotaz proběhl úspěšně. Výsledek si můžeme zkontrolovat i v panelu Database Structure, kde uvidíme úplně to samé, jako po vytvoření tabulky naklikáním:

Spuštění SQL dotazů - SQLite databáze krok za krokem

Kdybychom chtěli odstranit tabulku uživatelů pomocí SQL dotazu, tak spustíme následující příkaz:

DROP TABLE "uzivatele";

Tento příkaz by se dal přeložit jako vyhoď tabulku uzivatele, více asi není třeba dodávat.

V příští lekci, SQLite - Vkládání a mazání dat v tabulce, si naplníme databázi nějakými daty :)


 

Předchozí článek
Úvod do SQLite a příprava prostředí
Všechny články v sekci
SQLite databáze krok za krokem
Přeskočit článek
(nedoporučujeme)
SQLite - Vkládání a mazání dat v tabulce
Článek pro vás napsal Michal Martinek
Avatar
Uživatelské hodnocení:
620 hlasů
Aktivity