1 | Stáhněte si přes FTP z fileserveru pomocí účtu anonym soubor db06.zip a extrahujte jej tak, aby rozbalené soubory byly ve složce c:\temp\db06 | FileZilla |
2 | Otevřte v textovém editoru soubor skolni_knihovna.sql a ověřte správnost příkazů a kódování češtiny (musí být UTF-8) | PSPad |
3 | Přidejte příkazy pro začátek transakce (BEGIN TRANSACTION;) a konec transakce (COMMIT;) a soubor uložte | |
4 | Spusťte příkazový řádek, přejděte v něm do složky \temp\db06, přepněte se do kódové stránky 65001 | cmd, cd, chcp |
5 | Vytvořte ve složce db06 novou databázi db06.sqlite spuštěním: c:\programy\sqlite\sqlite3 db06.sqlite |
cmd |
6 | Ověřte příkazem .databases správnost cesty c:\temp\db06\db06.sqlite | sqlite3 |
7 | Vytvořte novou tabulku načtením souboru skolni_knihovna.sql | .read |
8 | Vytvořte index pro sloupec autor příkazem: CREATE INDEX index_autor ON knihovna (autor); |
|
9 | Vypište knihy spisovatelů Steinbecka a Dreisera seřazené podle autora (nastavte si režim .mode column, .headers on) | select |
10 | Přidejte do tabulky knihovna sloupce
pro čtenáře a datum výpůjčky podle schématu
uml opakováním
příkazu: ALTER TABLE knihovna ADD COLUMN xxx text; |
sqlite3 |
11 | Nasimulujte evidenci vypůjčení knih autora "Defoe"
vložením hodnot čtenáře a datumu (jako čtenáře použijte vlastní jméno
bez diakritiky, datum uveďte ve tvaru RRRR-MM-DD): UPDATE knihovna SET ctenar = 'xxx' WHERE autor='yyy'; UPDATE knihovna SET datum_vypujcky = 'RRRR-MM-DD' WHERE autor='yyy'; |
|
12 | Vypište si vlastní výpůjčky | select |
Základní typ relace mezi tabulkami:
UML schéma nových tabulek pro evidenci výpůjček včetně relace 1:N:
|
13 | Otevřte v textovém editoru soubor skolni_knihovna.sql - nahraďte v příkazech název tabulky z knihovna na knihy, přidejte sloupec id_ctenar a soubor uložte jako knihy.sql | PSPad - knihy.sql |
14 | Upravte ve stejném souboru příkazy pro vytvoření tabulky ctenari (viz schéma výše), která bude obsahovat tři vymyšlené čtenáře - soubor uložte jako ctenari.sql | PSPad -ctenari.sql |
15 | Vytvořte v databázi db06.sqlite nové tabulky načtením souborů knihy.sql a ctenari.sql, ověřte existenci těchto tabulek a jejich hodnot | .read, select |
16 | Evidujte prvnímu čtenáři (id_ctenar=1) výpůjčku všech knih od autora
Dickens: UPDATE knihy SET id_ctenar = 1 WHERE autor='yyy'; |
|
17 | Vypište si výpůjčky tohoto prvního čtenáře | select |
18 | Podobně zaevidujte výpůjčky ostatním dvěma čtenářům (autory vyberte sami) | update |
Referenční integrita
CREATE TABLE knihy ( id_knihy integer primary key, nazev text, autor text, signatura text, id_ctenar integer REFERENCES ctenari ON DELETE RESTRICT); |
19 | Vypište všechny vypůjčené knihy včetně jmen čtenářů: SELECT * FROM knihy JOIN ctenari USING (id_ctenar); |
|
20 | Vypište název knih vypůjčených zvoleným čtenářem (v dotazu použijte
jeho jméno): SELECT nazev FROM knihy JOIN ctenari USING (id_ctenar) WHERE jmeno='xxx'; |
21 | Vytvořte tabulku pujcene_knihy, která bude vytvořena příkazem select z úkolu č. 19. Ověřte si poté příkazem .schema strukturu vytvořené tabulky a vypište si všechny řádky tabulky. | |
22 | Vypište z tabulky pujcene_knihy název knih vypůjčených zvoleným čtenářem (v dotazu použijte jeho jméno - viz úkol. č. 20) |
Další varianty JOIN - diagramy
23 | Vytvořte novou databázi knihovna2.sqlite, vytvořte v ní 3 výše uvedené tabulky (využijte knihy.sql, ctenari.sql) a zaevidujte alespoň 1 výpůjčku příkazem INSERT INTO vypujcky (názvy sloupců...) VALUES (hodnoty...); | |
24 | Celou složku db06 uložte na fileserver | Filezilla |