IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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

V minulej lekcii, Úvod do SQLite a príprava prostredia , 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, obvykle nám pre jeden projekt (web) postačí jedna databáza.

Kliknite 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 podčiarkovovou 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ý ich rozlišuje a väčšina serverov práve na Linuxe beží.

Potvrdíme a vyskočí na nás okno na 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 používateľa. Tabuľka mala stĺpce meno, priezvisko, dátum narodenia a počet článkov. Ako sme už nahryzli, 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 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átna. AI je skratka AUTOINCREMENT, teda, že sa bude hodnota uzivateľa_id automaticky navyšovať a použí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 znova na Add Field a tentoraz zadáme meno. V druhom stĺpci nastavíme hodnotu TEXT. Toto vykonáme obdobne aj pre stĺpce priezviska a dátum_narodenia. Poslednému stĺpcu 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 - 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 používateľa a vedľa nej kód SQL pre jej vytvorenie, vygenerovaný DB Browserom. Ak chceme v DB Browseri 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 Browsera for SQLite, tak stačí spustiť v konzole/termináli nasledujúci príkaz, ktorý vás taktiež prenesie 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 vykoná ako jednoduché zmazanie tohto súboru.

Jazyk SQL

SQL označuje Structured Query Language, teda štruktúrovaný dotazovací 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é otázky zjednodušené na príkaz typu "Vráť mi 10 užívateľov s najvyšším hodnotením". Databáza takúto otázku pochopí, rozloží si ju na nejaké svoje inštrukcie a tak ju spracuje. Nám potom naozaj vráti výsledok bez toho, aby sme tušili, ako k nemu došla. Pokiaľ 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 "uzivatele" (
    "uzivatele_id" INTEGER PRIMARY KEY AUTOINCREMENT,
    "jmeno" TEXT,
    "prijmeni" TEXT,
    "datum_narozeni" TEXT,
    "pocet_clanku" INTEGER
);

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é 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 ich to lepšie odlíši od zvyšku dotazu 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čiarkovovou notáciou. Je dobrým zvykom ich 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 používateľa kliknutím na Delete Table. Potom prejdeme na panel Execute SQL a 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 naklikaním.

Spustenie SQL dotazov - SQLite databázy krok za krokom - 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 používateľa, viac asi nie je potrebné dodávať.

Zadávanie SQL dotazov v DB Browseri 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.

V budú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á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