120 likes | 205 Views
Aplikační a programové vybavení. Databáze – jazyk SQL (úvod). Jazyk SQL. SQL je programovací jazyk, pomocí kterého je možné komunikovat s relační m DBS . SQL je vychází z relační algebry, ale je bohatší. Pomocí SQL je možné: „dotazovat se databáze na její stav“ – získávat data z databáze
E N D
Aplikační a programové vybavení Databáze – jazyk SQL(úvod)
Jazyk SQL • SQL je programovací jazyk, pomocí kterého je možné komunikovat s relačnímDBS. • SQL je vychází z relační algebry, ale je bohatší. • Pomocí SQL je možné: • „dotazovat se databáze na její stav“ – získávat data z databáze • „zasílat databázi požadavky na aktualizaci“ – měnit stav databáze • definovat tabulky (definovat schémata)
Jazyk SQL • Data jsou uložena v databázi ve formě tabulek. • Program, který zaslal dotaz, se nemusí starat o fyzickou strukturu dat a jejich uložení. • Pořadí tabulek ani sloupců v databázi není důležité, protože jsou identifikovány jménem. • Pořadí řádků není důležité, protože jednotlivé řádky jsou identifikované hodnotou klíče. • Deklarativní jazyk: • definujeme, CO chceme udělat (procedurální jazyk definuje, jak se něco udělá – proceduru)
Historie • první prototyp v r. 1974 – jazyk Sequel • standardizace ANSI a ISO v roce 1986 a 1987 – SQL-86 • nový standard ANSI a ISO v roce 1992 – SQL-92 • a další SQL:1999 • a další SQL:2003 • a další SQL:2008– rozšíření o XML • a další SQL:2011 – zpracování časových řad • SQL:2003 má 3606 stran
Jména • bez speciálních znaků → A...Z, a...z, 0...9, _ • název (sloupce, tabulky, databáze, ...) ne příliš dlouhý (30 znaků) • pokud možno anglicky • dodržovat jednotnou konvenci velikosti písmen: • id_person (C) • idPerson (Java, C++) • IdPerson (Delphi) • Id_Person (exoti) • název by měl vystihovat obsah
Jména • Název by neměl obsahovat zbytečné údaje • u tabulky není nutné uvádět, že je to tabulka • je zbytečné k názvu sloupce přidávat název tabulky/databáze • používat zavedené zkratky • id / person_id / id_person • item_count / item_cnt • id_person se v tabulce „persons“ může zdát zbytečné, ale může se využít při NATURAL JOIN • je dobré vyhnout se klíčovým slovům jazyka
SQL • Zapomeňte procedurální programování. • Pomocí SQL se definuje co má DBS udělat, SQL server požadavek zpracuje (převede na procedurální kód) a vyhodnotí. • K dílčím prvkům databáze se přistupuje přes operátor „.“ (tečka) • databáze.tabulka.sloupec (schéma.tabulka.sloupec) • project.persons.id_person • databáze se zpravidla neuvádí (během spuštění programu se nemění) • tabulku je vhodné uvádět vždy • SQL má vysokou redundanci (mnoho možností)
Datové typy - úvod • základní datové typy • řetězce • varchar(mohutnost) – standardní řetězec, omezený délkou • text – „neomezený“ řetězec • čísla • int(mohutnost) / number – celé číslo, např. int(4) • signed / unsigned • float • datum • datetime / date • více o datových typech později
Tabulka × Relace • Tabulky mohou být skutečné – odpovídají databázovém schématu. • Tabulky mohou být virtuální – pohledy (externí schémata). • Výsledkem libovolného dotazu je také tabulka (dočasná). • Pohled (view): • je definován dotazem • je zpravidla jen pro čtení • umožňuje zjednodušení dotazů • vytváří „uživatelské verze“ databáze • umožňuje odstínit jednotlivé programové moduly • aktualizuje se automaticky ze základních tabulek • Výsledek dotazu (ani pohled) obecně není relace
Syntaxe zápisu syntaxe • funkce a klíčová slova jazyka VELKÝMI PÍSMENY • kurzívou se značí rozvinutí (zástupný symbol) • DELETE FROM tabulka; • [ ] – nepovinný prvek • { } – množina prvků • | – vyloučení prvků • [ LEFT | RIGHT ] JOIN • LEFT JOIN • RIGHT JOIN • JOIN • a { = | < | > } b • a = b nebo a < b nebo a > b
Příkazy SQL • pro definici struktury dat (tabulek) – DDL (data definition language): • CREATE (SCHEMA | TABLE | INDEX ) • ALTER TABLE • DROP TABLE • pro manipulaci s daty – DML (data manipulation language): • INSERT • SELECT • UPDATE • DELETE • mezi jednotlivými DBS jsou v některých oblastech značné rozdíly!