Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001. Dotazy v DBS zprostředkovat informace uživateli umožnit různé pohledy na uložená data zajistit jednoduchý.

Podobné prezentace


Prezentace na téma: "Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001. Dotazy v DBS zprostředkovat informace uživateli umožnit různé pohledy na uložená data zajistit jednoduchý."— Transkript prezentace:

1 Informatika II PAA DOTAZOVACÍ JAZYKY

2 Dotazy v DBS zprostředkovat informace uživateli umožnit různé pohledy na uložená data zajistit jednoduchý způsob formulace dotazu předat požadovanou odpověď rychle a ve srozumitelné podobě Účel dotazovacích jazyků:

3 Dotazy - základní operace operace projekce operace selekce logický součin - operátor AND logický součet - operátor OR logická negace - operátor NOT spec. operátory Like, Blank, Today zástupné operátory.. operace spojení join

4 Obecné charakteristiky dotazovacích jazyků relační operátory se používají pro celé relace výsledkem operace (dotazu) je vždy nová relace operátory pracují s hodnotami atributů

5 Dotazovací jazyky Podle způsobu zadávání rozlišujeme: procedurální jazyky nutné zadat algoritmus pro získání požadované odpovědi  určeny pro profesionální programátory neprocedulární jazyky jednodušší, zadávají se jen podmínky, které má požadovaná odpověď splňovat QBE, SQL

6 Relační dotazovací jazyky - založené na predikátové logice SQL - založené na množinách relační algebra relační kalkul QBE

7 Relační kalkul Kalkul = způsob formalizovaného zápisu. Relační kalkul – formalizovaný a symbolický způsob zápisu stejných operací, které vymezuje relační algebra. n-ticový kalkul – na relaci se nahlíží jako na množinu řádků doménový kalkul – na relaci se nahlíží jako na množinu sloupců (domén).

8 QBE – Query By Example zadávání dotazů v grafické podobě na základě interaktivní komunikace mezi DBS a uživatelem

9 QBE – MS Access Spuštění dotazu

10 QBE – MS Access

11

12 SQL – Structured Query Language při jeho tvorbě dodržena zásada přiblížit specifikování dotazu principu kladení otázek v přirozeném jazyce, tj. angličtině je deklarativní – příkazy jazyka specifikují „co“ se má provést a ne „jak“

13 SQL - představení SQL - Structured Query Language 1974 Sequel, počátky vývoj - nejdříve jednouživatelské SŘBD s SQL přístup k lokální databázi později DB servery založené na SQL víceuživatelské přístupy (klient / server) Časti SQL: DDL - Data Definition Language, pro definici dat DML - Data Manipulation Lang., pro manipulaci s daty DCL - Data Control Lang., definice přístupových práv

14 SQL – typografické konvence volitelné části příkazu v [] seznam atributů, kterých se příkaz týká: atrib1 [, atrib2…..] Select * znamená všechny atributy (sloupce) Distinct (Unique) zajistí unikáty ve výsledné relaci | použité v některých příkazech znamená větvení {} povinná část příkazu Having podmínka = splňující podmínku (-y)

15 SQL – vytvoření tabulky CREATE TABLE syntaxe CREATE TABLE jméno_tabulky (jméno_sloupce typ_sloupce,... ) př. CREATE TABLE Zamestnanci ( OsobniCislo int NOT NULL, Jmeno varchar(40), RC varchar(11), Adresa varchar(60), Plat float, PRIMARY KEY (OsobniCislo) );

16 SQL – přidání záznamu INSERT INTO syntaxe INSERT INTO jméno_tabulky VALUES (hodnota1,..., hodnotaN) př. INSERT INTO Zamestnanci VALUES ( 1023, 'Novák Jan', '561220/0235', 'Levá 13, Praha 4', 12000);

17 SQL – modifikace struktury ALTER TABLE syntaxe ALTER TABLE jméno_tabulky ADD (jméno_sloupce datový_typ, …) př. ALTER TABLE Zamestnanci ADD Telefon varchar(8);

18 SQL – rušení záznamů DELETE syntaxe DELETE FROM jméno_tabulky [WHERE podmínka] př. DELETE FROM Zamestnanci WHERE OsobniCislo = 1023;

19 SQL – opravy dat UPDATE syntaxe UPDATE jméno_tabulky SET položka=hodnota,... WHERE podmínka př. UPDATE Zamestnanci SET Plat = WHERE OsobniCislo = 1023;

20 SQL – rušení relace DROP TABLE syntaxe DROP TABLE jméno_tabulky př. DROP TABLE Zamestnanci;

21 SQL – výběr a prohlížení SELECT syntaxe SELECT * FROM jméno_tabulky SELECT * FROM Zamestnanci; selektivní výběr podmínka za klíčové slovo WHERE př. SELECT * FROM Zamestnanci WHERE Jmeno LIKE 'Novák Jan'; SELECT * FROM Zamestnanci WHERE Jmeno LIKE 'Nov*';

22 SQL – výběr a prohlížení SELECT * FROM Zamestnanci WHERE OsobniCislo = 1230; SELECT * FROM Zamestnanci WHERE Plat > 10000; lze použít i logické operátory AND a OR SELECT * FROM Zamestnanci WHERE Jmeno LIKE 'Novák *' AND Plat < 6000;

23 SQL – výběr a prohlížení za SELECT lze uvést seznam atributů, jež se ve výsledku zobrazí př. SELECT Jmeno, Plat FROM Zamestnanci WHERE Plat > 15000; třídění výstupu – ORDER BY za jménem sloupce buďto DESC (sestupně) nebo ASC (vzestupně) př. SELECT * FROM Zamestnanci ORDER BY Plat ASC;

24 SQL – agregované funkce pracují s hodnotami ve sloupci v rámci celé tabulky (vrací 1 výsledek pro celý sloupec tabulky) COUNT(*) COUNT(jméno_sloupce) SUM(jméno_sloupce) MIN(jméno_sloupce) MAX(jméno_sloupce) AVG(jméno_sloupce)

25 SQL – agregované funkce SELECT COUNT(*) FROM Zamestnanci WHERE Plat > 14000; doplnění o textový řetězec SELECT ‘Počet zaměstnanců =‘,COUNT(*) FROM Zamestnanci WHERE Plat > 14000; SELECT MAX(Plat), MIN(Plat), AVG(Plat) FROM Zamestnanci;

26 Predikáty ve výběrové podmínce BETWEEN, IN a LIKE SELECT * FROM Zamestnanci WHERE Plat BETWEEN AND 15000; SELECT * FROM Zamestnanci WHERE Plat IN (12000, 15000); ODPOVÍDÁ WHERE Plat = OR Plat = SELECT * FROM Zamestnanci WHERE Jmeno LIKE “N*”;

27 Další zástupné znaky * - pro libovolný počet znaků ? – odpovídá jednomu libovol. abecednímu znaku [ae] – odpovídá jednomu ze znaků uvedených v [] [!ae] – odpovídá libovolnému znaku, který není uveden v závorkách [a-e] – odpovídá znakům v daném rozsahu # - odpovídá jakékoliv číslici př. …WHERE Plat LIKE “12*” WHERE Plat LIKE “12??” nebo WHERE Plat LIKE “12##” WHERE Jmeno LIKE “Nov[ae]*” nebo “Nov[!a]*”

28 Spojení (join) umožňuje zpracovávat data ze dvou či více tabulek vnitřní spojení kombinuje tabulky na základě porovnání hodnot ve sloupcích, které jsou tabulkám společné INNER JOIN jm_tabulky ON společné sloupce používá se „tečková notace“ jm_relace.jm_sloupce

29 Příklad spojení 2 tabulek př. SELECT idvyrobku, nazevvyrobku, nazevkategorie FROM kategorie INNER JOIN vyrobky ON vyrobky.idkategorie = kategorie.idkategorie; Pokrmy2 Napoje1 nazevkategorieidkategorie Kategorie Steak42 Víno31 Pepsi21 Cola11 nazevvyrobkuidvyrobkuidkategorie Vyrobky Výsledek idvyrobkunazevvyrobkunazevkategorie 1ColaNapoje 2PepsiNapoje 3VínoNapoje 4SteakPokrmy

30 Příklad spojení 3 tabulek SELECT objednavky.idzakaznika, rozpisobj.idobjednavky, vyrobky.nazevvyrobku, rozpisobj.mnozstvi FROM (rozpisobj INNER JOIN objednavky ON rozpisobj. idobjednavky = objednavky. idobjednavky) INNER JOIN vyrobky ON rozpisobj.idvyrobku = vyrobky. idvyrobku WHERE objednavky. idzakaznika ="vinet"; mnozstviidvyrobkuidobjednavky Rozpisobj Ben1002 Vinet1001 Vinet1000 kodzakaznikaidobjednavky Objednavky Víno3 Pepsi2 Cola1 nazevvyrobkuidvyrobku Vyrobky Výsledek kodzakaznikaidobjednavkynazevvyrobkumnozstvi vinet1000Cola10 vinet1000Pepsi15 vinet1001Cola24 vinet1001Víno16


Stáhnout ppt "Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001. Dotazy v DBS zprostředkovat informace uživateli umožnit různé pohledy na uložená data zajistit jednoduchý."

Podobné prezentace


Reklamy Google