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 6.3.2001

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 = 14000 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 12000 AND 15000; SELECT * FROM Zamestnanci WHERE Plat IN (12000, 15000); ODPOVÍDÁ WHERE Plat = 12000 OR Plat = 15000 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"; 1631001 2411001 1821002 1521000 1011000 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