Přednáška 5 Úvod do SQL.

Slides:



Advertisements
Podobné prezentace
Základy jazyka SQL Jan Tichava
Advertisements

Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Informatika pro ekonomy II přednáška 11
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Téma: Využití Accessu pro tvorbu evidence našeho podnikání Vypracovala: Jana Wasserbauerová.
Autor, Název akce Databázové systémy a SQL Lekce 7 Daniel Klimeš.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Kateřina Raichová. Materiál je publikován pod licencí Creative Commons. ze sady:3tematický.
Projekt Informační a vzdělávací portál Libereckého kraje I CZ.1.07/1.1.00/ I Školení pro uživatele portálu.
Inf Používání a tvorba databází. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Inf Tabulkový procesor - funkce. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Pravidla pro zadávání zakázek v OP LZZ a IOP Metodický pokyn pro zadávání veřejných zakázek ( Příloha OM OP LZZ D9) Závazná postupy pro.
ZAL – 5. cvičení Martin Tomášek Pole - opakování Základní datový typ. V poli držíme více elementů (jednoho typu) S elementy v poli můžeme manipulovat.
Management počítačových sítí Počítačové sítě VUT v Brně Fakulta podnikatelská Lekce 4 – Management síťové vrstvyIng. Viktor Ondrák, Ph.D.strana 1 Lekce.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
Principy Základních registrů Ing. Ondřej Felix, CSc.
Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_036.ICT.34 Tvorba webových stránek – databáze úvod.
Autor, Název akce Databázové systémy a SQL Daniel Klimeš 1.
Informatika – Úvod do MS Excel Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím.
Databáze © Mgr. Petr Loskot
Úvod do databází MS Access (1).
Microsoft Excel verze 2010 Mgr. Přemysl Kejzlar.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
Databázové systémy I Přednáška 7 Databázové systémy 1 – KIT/IDAS1
Základy automatického řízení 1
Systémové databáze v SQL Serveru
Dotazovací jazyk SQL I.
Vytvořil: Robert Döring
STATISTIKA Starší bratr snědl svůj oběd i oběd mladšího bratra. Oba snědli v průměru jeden oběd.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
Tvorba jednoduché tabulky - rozvrh
Databázové systémy a SQL
Databázové systémy a SQL
Lineární rovnice a nerovnice I.
Excel – tabulkový procesor
Inf Tabulkový procesor - formátování
Databáze MS ACCESS 2010.
Programovací jazyky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Střední odborná škola a Střední odborné učiliště, Hradec Králové, Vocelova 1338, příspěvková organizace Registrační číslo projektu: CZ.1.07/1.5.00/
Vytvoření databázového dotazu z více tabulek
Inf Vývojový diagram.
Makro v Excelu.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
Pseudosekce: P-T fázový diagram v jednoduchém systému Al2SiO5 s demonstrací postupu při tvorbě pseudosekce.
Informatika pro ekonomy přednáška 8
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Počítačová cvičení z předmětu Datové sklady
Microsoft Office Access
Dotazovací jazyk SQL I.
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Materiál byl vytvořen v rámci projektu
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
název projektu: Šablony Špičák číslo projektu: CZ.1.07/1.4.00/
A5M33IZS – Informační a znalostní systémy
MS Access Tabulka letní semestr 2013.
Přednáška 6 SQL – spojení tabulek.
Přednáška 10 Uložené procedury.
Přednáška 8 INDEXY, POHLEDY.
Jazyk SQL (databáze SQLite)
Analýza informačního systému
Informatika pro ekonomy přednáška 8
TSQL2 The Temporal Structured Query Language Jaroslav Ciml
Lineární funkce a její vlastnosti
Informatika – Základní operace s buňkami
Relační databáze na příkladu aplikace Microsoft Access
Grafy kvadratických funkcí
SQL Server 2017: Automatic tuning
Transkript prezentace:

Přednáška 5 Úvod do SQL

SQL Standardizovaný jazyk relačních databází, vytvořený po představení relačního modelu. SQL je zkratka anglických slov Structured Query Language (strukturovaný dotazovací jazyk). Jde o neprocedurální jazyk – je třeba zadat, jaké informace požadujeme, nikoli jak je získat. Ve skutečnosti nejde o jeden jazyk, ale o různé dialekty různých databázových systémů (ORACLE, MS SQL, MySQL, …). Různé vývojové verze. MySQL implementuje ANSI/ISO standard SQL-92 s rozšířeními až po verze jazyka SQL 2008. Budeme se zabývat primárně dialektem RDBMS MySQL.

SQL příkazy SQL příkazy můžeme rozdělit do čtyř skupin. DML (Data Manipulation Language). Množina příkazů pro manipulaci s daty. DDL (Data Definition Language). Množina příkazů pro definici dat. DCL (Data Control Language). Množina příkazů pro definici řízení přístupových práv. TCL (Transaction Control). Množina příkazů pro řízení transakcí. Speciální příkazy.

DML Tato skupina příkazů se používá pro manipulaci s daty. Hlavní příkazy, které spadají do této skupiny jsou: SELECT – vybírá data z databáze. INSERT – vkládá data do databáze. UPDATE – edituje data v databázi. DELETE – odstraňuje data z celých tabulek nebo řádky tabulek odpovídající podmínce. CALL – volá Uložené procedury. LOCK TABLE – zamyká celé tabulky: Zámky čtení (READ) Zámky zápisu (WRITE)

DDL Skupina příkazů používající se pro definici databázových struktur. Hlavní příkazy jsou: CREATE – vytváří objekty databáze (i databázi samotnou). ALTER – mění strukturu databázových objektů. DROP – odstraňuje objekty databáze (tabulky, indexy, databáze). TRUNCATE - odstraní všechny záznamy z tabulky, přičemž zachová strukturu tabulky (objekt tabulky). COMMENT – umožní přidávat komentáře k objektům databáze. RENAME – v MySQL umožňuje měnit název tabulky (pozor ne databáze, to bylo možné do verze 5.1.23).

DCL Skupina příkazů DCL se používá pro řízení uživatelských práv. GRANT – nastavuje uživatelská práva k tabulkám databáze. REVOKE – odebírá přístupová práva přidělená příkazem GRANT.

TCL Množina příkazů pro řízení transakcí. Transakce podporují v MySQL pouze tabulky typu InnoDB: COMMIT – potvrzení provedení transakce. SAVEPOINT – definuje záchytný bod transakce, ke kterému se lze během provádění transakce vrátit. ROLLBACK – ruší transakci a vrací se zpět ke stavu původnímu. START TRANSACTION – zahajuje blok transakce. SET TRANSACTION – umožňuje změnit level izolace transakce globálně nebo pro aktuální session.

Základní pravidla zápisu Dobrým a obecně platným pravidlem zápisu SQL je, že příkazy SQL zapisujeme velkými písmeny a názvy db, tabulek a sloupců zapisujeme malými písmeny: Příklad: INSERT INTO prvnidb.studenti (id, jmeno, prijmeni, narozeni) VALUES (1, 'Marek', 'Stejskal', 1987-05-21); Tento příkaz vloží jednu datovou n-tici (řádek dat) do tabulky studenti. Pokud jsme připojeni přímo ke konkrétní databázi prvnidb, můžeme zapisovat zkráceně bez udání názvu databáze: INSERT INTO studenti (id, jmeno, prijmeni, narozeni)

CASE Senstive Je potřeba si pamatovat, že SQL NENÍ striktně CASE Sensitive. Budeme se ale tvářit, že JE . Stejně existuje libovůle v názvech objektů. Dobře by vám tak zafungoval i následující příkaz: INSERT INTO Studenti (id, JMENO, prijmeni, rok_Narozeni) VALUES (2, 'Diana', 'Zouharová', 1990-03-14); Rozhodně se tomu vyvarujeme! Zapisujeme názvy objektů vždy přesně tak, jak jsou pojmenovány v databázi.

Databáze Vytvoření CREATE Změna ALTER Odstranění DROP Všechny operace s databází lze vykonávat bez znalosti příslušného příkazu SQL a to pomocí průvodců PHPMyAdmina. Měli byste mít základní představu o syntaxi těchto příkazů. Ukážeme si vytvoření databáze a odstranění. Další si můžete najít v manuálu.

Vytvoření databáze Syntaxe: CREATE {DATABASE} [IF NOT EXISTS] db_name [specifikace vytvoření] Specifikace vytvoření: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name {} – povinně volitelné součásti syntaxe [] – volitelné součásti syntaxe

CREATE DATABASE `prvnidb` DEFAULT CHARACTER SET utf8 Příklad Vytvoření databáze prvnidb: CREATE DATABASE `prvnidb` DEFAULT CHARACTER SET utf8 COLLATE utf8_czech_ci;

Odstranění databáze Odstraněním databáze odstraníme všechny data v ní! Syntaxe: DROP {DATABASE} [IF EXISTS] db_name Pozor: Nesmíte vymazat defaultní databázi „mysql“. Obsahuje nastavení uživatelských práv, seznam Uložených procedur, nastavení časového pásma a další důležité ukazatele. Přístup k této db by měl mít pouze hlavní administrátor.

Tabulka v databázi Vytvoření CREATE Změna ALTER Změna jména RENAME Odstranění DROP Odstranění všech dat se zachováním struktury TRUNCATE Operace s daty v tabulce: Vložení INSERT Výběr SELECT Odstranění DELETE Editace UPDATE

Operace s tabulkami SQL syntax pro vytvoření tabulky či její změnu je v této chvíli pro nás velmi náročný. Obsahuje prvky, kterým bychom v této fázi vašeho studia ještě natolik nerozuměli. Např.: Přesná definice datových typů a jejich součástí Definice indexů, omezení, cizích klíčů Definice nastavení tabulky Definice fyzického rozdělení tabulky v souborovém systému Pro tuto chvíli si vystačíme s průvodcem PHPMyAdmina a budeme tabulky tvořit a upravovat pomocí něj.

Příklad Vytvoření jednoduché tabulky pro naše studijní účely v databázi prvnidb: CREATE TABLE `prvnidb`.`studenti` ( `id` INT( 1 ) NOT NULL , `jmeno` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL , `prijmeni` VARCHAR( 40 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL , `narozeni` DATE NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_czech_ci;

Vložení záznamu do tabulky Máme vytvořenu databázi prvnidb a v ní tabulku studenti. Schéma tabulky je následující: Pro vložení je k dispozici příkaz INSERT: INSERT INTO studenti (id, jmeno, prijmeni, narozeni) VALUES (1, 'Marek', 'Stejskal', 1987-05-21); Zkrácená varianta: INSERT INTO studenti VALUES (1, 'Marek', 'Stejskal', 1987-05-21); id jmeno prijmeni narozeni Prostor pro datové n-tice

Vložení více řádků INSERT umožňuje i v jednom příkazu vložit více řádků dat. Tato varianta je rychlejší, než dílčí příkazy (nemusí se znovu ověřovat struktura tabulky). Příklad: INSERT INTO studenti (id, jmeno, prijmeni, rok_narozeni) VALUES (1, 'Marek', 'Stejskal', 1987-05-21) , (2, 'Diana', 'Zouharová', 1990-03-14) , (3, 'Roman', 'Tomík', 1989-08-22) , (4, 'Jakub', 'Stejskal', 1987-10-15);

Tabulka studenti Do naší tabulky studenti jsme vložili data. Tabulka vypadá následovně: Dále si ukážeme jak záznam v tabulce editovat a odstranit. id jmeno prijmeni narozeni 1 Marek Stejskal 1987-05-21 2 Diana Zouharová 1990-03-14 3 Šimon Tomík 1989-04-17 4 Jakub 1987-06-11

Editace záznamů Příklad: Pomocí příkazu UPDATE můžeme měnit všechny atributy daného záznamu (výjimku může tvořit hodnota primárního klíče) nebo jen některé atributy: Příklad: UPDATE studenti SET prijmeni = 'Tomíková' WHERE id = 2; Potřebujeme-li editovat i další atributy záznamu, oddělíme je čárkou. tabulka Atribut = Nová hodnota Podmínka výběru záznamu jmeno = 'Andrea' , prijmeni = 'Tomíková'

Editace záznamu Důležitou součástí příkazu UPDATE je klauzule WHERE za kterou uvádíme podmínku výběru záznamu. Jako podmínka se nejčastěji uvádí sloupec primárního klíče. POZOR Neuvedeme-li podmínku WHERE, dojde k editaci všech záznamů dané tabulky!! Editace záznamu je dalším z jednoduchých úkonů, které lze provádět v prostředí PHPMyAdmin.

Odstranění záznamu Záznam (řádek) tabulky se odstraňuje vždy jako celý řádek příkazem DELETE. Důležitou roli tak hraje opět podmínka WHERE, pomocí které určíme, o jaký záznam se jedná. POZOR Chybějící podmínka WHERE způsobí odstranění všech řádků tabulky!! Příklad: DELETE FROM studenti WHERE id = 4;

Jednoduché dotazy Úkolem příkazu SELECT je vyvolat a zobrazit data z jedné nebo více tabulek. Jde o nejpoužívanější příkaz SQL. Příkaz SELECT a jeho syntax je potřeba ovládat. PHPMyAdmin nedokáže sestavit komplikovaný dotaz s mnoha jeho doplňky. Základy příkazu SELECT si samostatně nastudujte a PRAKTICKY VYZKOUŠEJTE na příkladech 7 kapitoly skript.

SELECT Velmi zjednodušený syntax příkazu SELECT: SELECT [DISTINCT] {* | [seznam_sloupců] | výraz} [FROM tabulka] [WHERE podmínka] [ORDER BY seznam_sloupců] [LIMIT] FROM – udává tabulku, která se má použít. WHERE – filtruje výstup podle podmínky. ODRER BY – určuje řazení výstupu. LIMIT – omezuje výsledný výstup na stanovenou hodnotu.

Příklad SELECT jmeno, prijmeni FROM studenti WHERE YEAR(narozeni) > 1989; Výstup: Vyzkoušejte: SELECT 1 +1; SELECT curdate(); jmeno prijmeni Diana Zouharová

Zapamatujte si DDL, DML, DCL, TCL Příkazy databáze Příkazy tabulky Příkazy manipulace dat v tabulce Základy příkazu SELECT