Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

2. diel - SQLite - Vytvorenie databázy a tabuľky

V predchádzajúcej lekcii, Úvod do SQLite a príprava prostredia, sme si povedali niečo o relačných databázach a pripravili sme si prostredie.

V dnešnom SQLite tutoriáli si vytvoríme databázu a do nej nejakú tabuľku.

Vytvorme si databázu, zvyčajne nám pre jeden projekt (web) postačí jedna databáza.

Kliknime v DB Browser for SQLite na New Database. Vyberieme priečinok, kam chceme databázu uložiť, a vyplníme názov databázy s príponou .db (napr. web_database.db). V databázach je zvykom pomenovávať položky bez diakritiky, malými písmenami a s podtržníkovou notáciou. Je zrejmé, prečo nie je diakritika dobrý nápad, za veľkými a malými písmenami je Linux, ktorý ich rozlišuje, a väčšina serverov práve na Linuxe beží.

Potvrdíme a zobrazí sa okno na vytvorenie prvej tabuľky, spomenieme si na príklad tabuľky používateľov, ktorý sme si ukázali v minulom diele. Prvá bunka s nadpisom Table od nás chce názov tabuľky, zadáme podľa pravidiel users. Tabuľka mala stĺpce meno, priezvisko, dátum narodenia a počet článkov. Ako sme už spomínali, každá tabuľka by mala mať stĺpec, ktorého hodnota je pre každú položku unikátna. Týmto stĺpcom začneme a klikneme na tlačidlo Add, v tabuľke nižšie sa nám objaví riadok, ktorého prvý údaj - názov - prepíšeme na user_id, dátový typ necháme predvyplnený INTEGER, teda celé číslo a ďalej zaškrtneme PK a AI. PK znamená PRIMARY KEY, čo znamená, že tento stĺpec slúži na identifikáciu riadku v tabuľke a jeho hodnota musí byť unikátna. AI je skratka AUTOINCREMENT, hodnota user_id sa teda bude automaticky navyšovať a používatelia sa budú postupne číslovať. Id je dobré pomenovávať s prefixom tabuľky, ale nie je to nutné.

Teraz pridáme ďalšie stĺpce, klikneme znova na Add a tentokrát zadáme first_name. V druhom stĺpci nastavíme hodnotu TEXT. Toto vykonáme obdobne aj pre stĺpce last_name a birth_date. Poslednému stĺpcu s názvom article_count ponecháme dátový typ INTEGER.

Všimneme si, že nižšie sa nám vygeneroval kód v jazyku SQL. Výsledok v DB Browseri vyzerá takto:

Vytvorenie tabuľky - SQLite databáza krok za krokom

Na oboch paneloch vidíme štruktúru našej tabuľky users a pod ňou kód SQL pre jej vytvorenie, vygenerovaný DB Browserom. Všetko potvrdíme kliknutím na tlačidlo OK, čím okno zavrieme.

Ak chceme v DB Browseri uložiť akékoľvek úpravy, aby sa prejavili v databáze, musíme v hornej lište kliknúť na tlačidlo Write Changes, čo urobíme práve teraz.

Keďže sa databázy ukladajú ako normálne súbory, kdekoľvek, kde si zvolíte, ich odstránenie sa vykoná ako prosté zmazanie tohto súboru.

Jazyk SQL

SQL označuje Structured Query Language, teda štruktúrovaný dopytovací jazyk. SQL je tzv. jazyk deklaratívny. Zatiaľ čo v imperatívnych jazykoch počítača vlastne hovoríme krok po kroku, čo má urobiť, v jazykoch deklaratívnych iba hovoríme, čo má byť výsledkom a už nás nezaujíma, ako tento výsledok počítač dosiahne. Vďaka tomu sú databázové dotazy zjednodušené na príkaz typu "Vráť mi 10 používateľov s najvyšším hodnotením". Databáza takýto dopyt pochopí, rozloží si ho na nejaké svoje inštrukcie a tak ho spracuje. Nám potom naozaj vráti výsledok bez toho, aby sme tušili, ako k nemu došla. Ak vám príkaz prišiel ako nadsadenie, tak to tak nie je a príkazy naozaj takto vyzerajú. Len sú anglicky.

SQL sa pôvodne volalo SEQUEL (Structured English Query Language) a vzniklo v laboratóriách spoločnosti IBM s cieľom vytvoriť jazyk, ktorým by sa dalo komunikovať s databázou jednoduchou angličtinou. SQL (relačné) databázy sa potom rozširovali a ujali. Dnes sa prakticky nič iné nepoužíva a aj keď má SQL v objektovom programovaní značné nevýhody, firmám sa nechce prechádzať na nič iné (aj keď existujú alternatívne riešenia). Ale to sme odbočili.

Naklikaním tabuľky nám DB Browser vytvoril takýto kód, ktorý si rozoberieme.

CREATE TABLE "users" (
    "user_id"   INTEGER,
    "first_name"    TEXT,
    "last_name" TEXT,
    "birth_date"    TEXT,
    "article_count" INTEGER,
    PRIMARY KEY("user_id" AUTOINCREMENT)
);

Príkaz začína frázou CREATE TABLE, čo ako asi viete, označuje, že chceme vytvoriť tabuľku. Potom nasleduje meno tabuľky, ktoré sa v SQLite zvykne dávať do dvojitých úvodzoviek. Do zátvorky sa píšu názvy jednotlivých stĺpcov s ich dátovými typmi a prípadne aj ďalšími atribútmi, ako napr. tu PRIMARY KEY a AUTOINCREMENT, a oddeľujú sa čiarkou. Každý príkaz v SQL zakončujeme bodkočiarkou, ktorá nechýba ani tu.

V SQL sa väčšinou píšu príkazy veľkými písmenami, to preto, že ich to lepšie odlíši od zvyšku dopytu alebo od kódu našej aplikácie (napr. v PHP). Názvy tabuliek, stĺpcov a ďalšie identifikátory sú naopak malými písmenami a podčiarkovníkovou notáciou. Je dobrým zvykom vkladať ich medzi dvojité úvodzovky (prípadne ďalšie podporované znaky, ako spätné úvodzovky a podobne), ale nie sú povinné a príkazy prebehnú bez problémov aj bez nich.

Spustenie SQL dopytu

Najprv odstránime tabuľku users. Klikneme na ňu a zvolíme možnosť Delete Table. Potom prejdeme na panel Execute SQL a do textového poľa hore napíšeme SQL dopyt pre vytvorenie tabuľky, ktorý sme si pred chvíľkou vysvetlili. Po kliknutí na šípku sa nám nižšie zobrazí hláška, že dopyt prebehol úspešne, to si môžeme skontrolovať aj v paneli Database Structure, kde uvidíme úplne to isté, ako po vytvorení tabuľky naklikaním:

Spustenie SQL dotazov - SQLite databáza krok za krokom

Keby sme chceli odstrániť tabuľku užívateľov pomocou SQL dopytu, tak spustíme nasledujúci príkaz:

DROP TABLE "users";

Tento príkaz by sa dal preložiť ako "Vyhoď tabuľku users", viac asi nie je potrebné dodávať.

V nasledujúcej lekcii, SQLite - Vkladanie a mazanie dát v tabuľke, si naplníme databázu nejakými dátami :)


 

Predchádzajúci článok
Úvod do SQLite a príprava prostredia
Všetky články v sekcii
SQLite databáza krok za krokom
Preskočiť článok
(neodporúčame)
SQLite - Vkladanie a mazanie dát v tabuľke
Článok pre vás napísal Michal Martinek
Avatar
Užívateľské hodnotenie:
112 hlasov
Aktivity