Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001.

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

KIV/ZIS Cvičení 6 SQL - SELECT.
SQL Další dotazy a pohledy
Základy jazyka SQL Jan Tichava
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Microsoft Office Access
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Databázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Cvičení 03 SQL Select Ing. Pavel Bednář
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Přednáška DB1. Literatura CONNOLLY, T.M.-BEGG,C.E.-STRACHAN,A.D.: Database Systems – A Practial Approach to Design, Implementation and Management.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databáze Úvod.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Fakulta elektrotechniky a informatiky
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační databáze.
1IT D OTAZOVACÍ JAZYKY V RELAČNÍCH DATABÁZÍCH Ing. Jiří Šilhán.
Vypracoval: Ondřej Dvorský Třída: VIII.A
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Informatika pro ekonomy II přednáška 10
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy Přednáška č. 6.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Databázové systémy Tomáš Skopal
Databázové systémy UIN010 N-ticový (řádkový) relační kalkul Hodnoty proměnných n-tice relací (řádky) Konstanty hodnoty atributů Unární funkční.
Databázové modelování
Aplikační a programové vybavení
Aplikační a programové vybavení
Databázové systémy Informatika pro ekonomy, př. 18.
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.
Databázové systémy SQL Výběr dat.
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Teorie zpracování dat RELAČNÍ DATOVÝ MODEL.
ACCESS DOTAZY Ing. Jana Horáková IKT MS Office
Databázové systémy I Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Příkazy jazyka SQL ve VFP a na SQL Serveru
Databázové systémy a SQL
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Dotazovací jazyk SQL I.
Databázové systémy I Přednáška 5 Databázové systémy 1 – KIT/IDAS1
Databázové systémy I Přednáška 8 Databázové systémy 1 – KIT/IDAS1
Databázové systémy a SQL
Dotazovací jazyk SQL I.
Databázové systémy a SQL
Informatika pro ekonomy přednáška 8
Šablona 32 VY_32_INOVACE_038.ICT.34
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Počítačová cvičení z předmětu Datové sklady
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Transkript prezentace:

Informatika II PAA DOTAZOVACÍ JAZYKY 6.3.2001

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ě

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

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ů

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

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

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).

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

QBE – MS Access Spuštění dotazu

QBE – MS Access

QBE – MS Access

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“

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

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)

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) );

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);

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);

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

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;

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

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*';

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;

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;

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)

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;

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*”;

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]*”

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

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

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