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

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

Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001.

Podobné prezentace


Prezentace na téma: "Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001."— Transkript prezentace:

1 Informatika II PAA DOTAZOVACÍ JAZYKY

2 Dotazy v DBS Účel dotazovacích jazyků:
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ě

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
SQL - založené na množinách relační algebra relační kalkul QBE - založené na predikátové logice

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 QBE – MS Access

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; WHERE Plat > 10000; lze použít i logické operátory AND a OR 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 = 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; Výsledek idvyrobku nazevvyrobku nazevkategorie 1 Cola Napoje 2 Pepsi 3 Víno 4 Steak Pokrmy Pokrmy 2 Napoje 1 nazevkategorie idkategorie Kategorie Steak 4 Víno 3 Pepsi Cola nazevvyrobku idvyrobku Vyrobky

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"; 16 3 1001 24 1 18 2 1002 15 1000 10 mnozstvi idvyrobku idobjednavky Rozpisobj Ben Vinet kodzakaznika Objednavky Víno Pepsi Cola nazevvyrobku Vyrobky Výsledek kodzakaznika idobjednavky nazevvyrobku mnozstvi vinet 1000 Cola 10 Pepsi 15 1001 24 Víno 16


Stáhnout ppt "Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001."

Podobné prezentace


Reklamy Google