Úvod do jazyka SQL Hodina č. 1 § JÁ Jan Pospíšil jsem@posp.cz Organizační… • Docházka? • Domácí úkoly • Test & zkouška! Proč? Proč? Proč? Proč? Proč? vaše očekávání… Proč? http://dbanketa.jdem.cz/ Disclaimer Co je to “databáze"? Ve skutečnosti soubor(y)… Ve skutečnosti soubor(y)… … stejně jako třeba tabulka v Excelu K vyzkoušení knizky.jdem.cz Co je to tabulka? Tabulka Tabulka Tabulka Jak s databází pracovat? Rozdělení “počítačových” jazyků • Značkovací • Programovací • Dotazovací • …. Značkovací jazyk Toto slovo je tučné (markup language) Značkovací jazyk Toto slovo je tučné (markup language) Toto slovo je tučné Značkovací jazyk Toto slovo je tučné (markup language) Toto slovo je tučné Toto slovo je tučné Programovací jazyk results = books.getResults(query); if(results.length) { foreach(row as results) { print row; } } else { print “Pro váš dotaz jsme nic nenalezli.”; } Dotazovací jazyk SELECT authors, title FROM books WHERE year = 1984 Pomocí dotazovacího jazyka SQL se dotazujeme databáze na data v tabulkách. Pomocí dotazovacího jazyka SQL se dotazujeme databáze na data v tabulkách. Pleonasmus ALERT Proč? Vyhledejte knížky, které byly vydané v roce 2000 na Slovensku. excel SELECT * FROM books WHERE Year = 2000 AND Country = "Slovakia" Vyhledejte knížky, které byly vydané v roce 2000 na Slovensku nebo v roce 1999 v ČR. excel SELECT * FROM books WHERE (Year = 2000 AND Country = "Slovakia") OR (Year = 1999 AND Country = "Czech Republic") Kontext Central European Association for Canadian Studies (Vytvořeno značkovacím jazykem HTML) Web Web Server Web Server Databáze SELECT author, title FROM books WHERE Year = 1984 SQL Web Server Databáze SQL Data Web Server Databáze SQL Data Web Server Databáze SQL Data Osnova • SQL: Základní dotazování • Jak si založit vlastní databázi a naplnit ji daty • SQL: Práce s více tabulkami • SQL: Složitější dotazování • SQL: Další práce s databázemi • Teoretické okénko • Moderní databázové technologie, NoSQL databáze, ukázky využití V hlavních rolích V hlavních rolích Marketér v (e-)knihkupectví knihy, autoři, objednávky, zákazníci, sklad, … V hlavních rolích Knihovník knihy, autoři, číselníky, členové, výpůjčky, … V hlavních rolích Fundraiser dárci, dary, kampaně, e-maily, dopisy,... SELECT strftime("%H",datetime ) as hodina, COUNT(*) as pocet_vypujcek FROM vypujcky GROUP BY strftime("%H",datetime ) SELECT author, COUNT(DISTINCT title) as pocet_knih, COUNT(*) as pocet_vypujcek FROM vypujcky GROUP BY author ORDER BY pocet_vypujcek DESC A znovu: Otázky?