IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

V minulom dieli seriálu tutoriálov o SQLite databáze sme si povedali niečo o relačných databázach a pripravili sme si prostredie. Dnes 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ázy.

Klikneme v DB Browser for SQLite na New Database. Vyberieme zložku, kde chceme databázu uložiť a vyplníme názov databázy s príponou .db (napr. Databaze_pro_web­.db). V databázach je zvykom pomenovávať položky bez diakritiky, malými písmenami as podtržítkovou notáciou. Snáď vám je jasné, prečo nie je diakritika dobrý nápad, za veľkými a malými písmenami je Linux, ktorý je rozlišuje a väčšina serverov práve na Linuxe beží.

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

Teraz pridáme ďalšie stĺpce, klikneme znovu na Add Field a tentoraz zadáme meno. V druhom stĺpci nastavíme hodnotu TEXT. Toto vykonáme obdobne aj pre stĺpce priezvisko a datum_narozeni. Poslednému stĺpci s menom pocet_clanku ponecháme dátový typ INTEGER. Všimneme si, že nižšie sa nám vygeneroval kód v jazyku SQL. Celé to má vyzerať takto:

vytvorenie tabuľky - SQLite databázy krok za krokom

Po kliknutí na OK uvidíme na oboch paneloch štruktúru našej databázy, kde by sa mala nachádzať iba naša tabuľka uzivatele a vedľa nej kód SQL pre jej vytvorenie, vygenerovaný DB Browser. Ak chceme v DB Browseru uložiť akékoľvek úpravy, aby sa prejavili v databáze, musíme hore kliknúť na Write Changes, čo urobíme práve teraz.

Ak by sme chceli vytvoriť databázu bez použitia DB Browseru for SQLite, tak stačí spustiť v konzole / termináli nasledujúci príkaz, ktorý vás prenesie aj do interaktívneho SQLite shellu.

sqlite3 databaze_pro_web.db

Keďže sa databázy ukladajú ako normálne súbory, kdekoľvek, kde si zvolíte, ich odstránenie sa prevádzate ako jednoducho 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 u imperatívnych jazykov počítači vlastne hovoríme krok po kroku čo má urobiť, u jazykov deklaratívnych len 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 užívateľov s najvyšším hodnotením". Databáza taký dotaz 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 nadsázka, 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.

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

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

Príkaz začína fráz CREATE TABLE, čo ako asi viete, označuje, že chceme vytvoriť tabuľku. Potom nasleduje meno tabuľky, ktoré je v SQLite obvyklé 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ý ani tu nechýba.

V SQL sa väčšinou píšu príkazy veľkými písmenami, to preto, že je 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 podtržítkovou notáciou. Je dobrým zvykom je vkladať 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 dotazu

Najprv odstránime tabuľku uzivatele kliknutím na Delete Table. Potom prejdeme na panel Execute SQL aa do textového poľa hore napíšeme SQL dotaz pre vytvorenie tabuľky, ktorý sme si pred chvíľkou vysvetlili. Po kliknutí na šípku by sa nám nižšie mala zobraziť hláška, že dotaz prebehol úspešne, to si môžeme skontrolovať aj v paneli Database Structure, kde uvidíme úplne to isté, ako po vytvorení tabuľky naklikáním.

Spustenie SQL dotazov - SQLite databázy krok za krokom

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

DROP TABLE "uzivatele";

Tento príkaz by sa dal preložiť ako vyhoď tabuľku uzivatele, viac asi netreba dodávať.

Zadávanie SQL dotazov v DB Browseru má tú výhodu, že jednak vám kľúčové slová napovedá, ale tiež, že môžete písať viac SQL dotazov pod sebou a spúšťať ich jednotlivo pomocou symbolu dvojitej šípky, alebo klávesovou skratkou Ctrl + E.

Nabudúce si databázu naplníme nejakými dátami :)


 

Predchádzajúci článok
Úvod do SQLite a príprava prostredia
Všetky články v sekcii
SQLite databázy 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:
1 hlasov
Aktivity