Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.

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]],...
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
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 Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Realizace sběru dat v rámci realizovaných úloh.
AGREGACE Distinct, Group By, Having, SUM, …. DISTINCT  Slučování stejných řádků ve výsledku dotazu. AGREGACE 2 JménoPříjmeníID FrantišekVomáčka1 JosefPokorný2.
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
Databázové systémy 1 Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
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.
Temporální databáze a TSQL
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ázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář
Fakulta elektrotechniky a informatiky
Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
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.
MS ACCESS parametrický dotaz
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ý.
Fakulta elektrotechniky a informatiky
Čí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ý.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy I Cvičení č. 7 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
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í.
Informatika II PAA DOTAZOVACÍ JAZYKY
Aplikační a programové vybavení
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 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy SQL Výběr dat.
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.
J. Pokorný, I Halaška1 DBS: SQL92 Jaroslav Pokorný MFF UK, Praha
SQL Structured Query Language
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
Autor, Název akce Databázové systémy a SQL Lekce 7 Daniel Klimeš.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
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
Dotazovací jazyk SQL - III
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
Databázové systémy a SQL
Databázové systémy a SQL
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
A5M33IZS – Informační a znalostní systémy
Optimalizace SQL dotazů
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady
Dotazovací jazyk SQL - II
Přednáška 7 SQL – JOIN.
Přednáška 9 Triggery.
Databázové systémy a SQL
Databázové systémy a SQL
Transkript prezentace:

Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.

Obsah cvičení Indexy. Jednoduché dotazy. Více-tabulkové dotazy. Souhrnné dotazy. Poddotazy. Sjednocený dotaz. Výkonné dotazy.

Indexy  Vytvořte clusterovaný index „CIprojekt“ na tabulku TProjekt pro sloupce: p_Resitel, p_ICislo, p_ZahajRes, p_Kateg  Vytvořte neclusterovaný index NCIprojekt_DatPrijeti na tabulku TProjekt pro sloupce: p_DatumPrijeti, p_ZahajRes, p_ICislo  Vytvořte neclusterovaný index NCIprojekt_Kateg na tabulku TProjekt pro sloupce: p_Kateg, p_Typ, p_Podtyp, p_ICislo USE EvidProjektu; GO CREATE UNIQUE CLUSTERED INDEX CIprojekt ON TProjekt (p_Resitel ASC,p_ICislo ASC,p_ZahajRes ASC,p_Kateg ASC ); GO USE EvidProjektu; GO CREATE NONCLUSTERED INDEX NCIprojekt_DatPrijeti ON TProjekt (p_DatumPrijeti ASC,p_ZahajRes ASC, p_ICislo ASC ); GO USE EvidProjektu; GO CREATE NONCLUSTERED INDEX NCIprojekt_Kateg ON TProjekt (p_Kateg ASC,p_Typ ASC,p_Podtyp ASC, p_ICislo ASC ); GO

Jednoduché dotazy  Seznam hodnot z tabulky TZamestnanec se sloupci Jméno, Příjmení a Katedra (odpovídají sloupcům v tabulce s názvy: z_Jmeno, z_Prijmeni, z_Pracoviste)  Seznam zaměstnanců katedry 352. Ostatní parametry viz výše. USE EvidProjektu; GO SELECT 'Přijetí projektu' = CASE WHEN p_DatumPrijeti IS NOT NULL THEN 'Projekt ve fázi přípravy' ELSE 'Projekt byl přijat' END, p_Resitel AS Řešitel,p_Pracoviste AS 'Název projektu' FROM TProjekt GO  Seznam projektů, které jsou členěny dle data přijetí projektu. Nejprve se zobrazí projekty ve fázi návrhu (p_DatumPrijeti=NULL). Pak následují projekty přijaté (p_DatumPrijeti~=NULL). V seznamu se objeví sloupce Přijetí projektu, Řešitel, Název projektu. USE EvidProjektu; GO SELECT z_Jmeno AS Jméno,z_Prijmeni AS Příjmení,z_Pracoviste AS Katedra FROM TZamestnanec ORDER BY z_Jmeno; GO USE EvidProjektu; GO SELECT z_Jmeno AS Jméno,z_Prijmeni AS Příjmení,z_Pracoviste AS Katedra FROM TZamestnanec WHERE z_Pracoviste='352' ORDER BY z_Jmeno; GO

Více-tabulkové dotazy  Zobrazte všechny projekty, které byly řešeny nebo jsou v řešení od roku 2007 dosud pouze pro katedru „352“. Informace pro zobrazení jsou: název projektu, zahájení a ukončení projektu,název spolupracující firmy a kontakt na jejich osobu. USE EvidProjektu; GO SELECT p_Nazev AS 'Název projektu',p_ZahajRes AS 'Zahájení řešení', p_KonecRes AS 'Ukončení řešení',TFirma.fir_Nazev AS 'Firma', TFirma.fir_Kontakt AS 'Kontaktní osoba' FROM TProjekt,TFirma WHERE p_Firma=fir_ICO AND TProjekt.p_Pracoviste='352' ORDER BY p_ZahajRes,p_Nazev USE EvidProjektu; GO SELECT p_Nazev AS 'Název projektu',p_ZahajRes AS 'Zahájení řešení', p_KonecRes AS 'Ukončení řešení',TFirma.fir_Nazev AS 'Firma', TFirma.fir_Kontakt AS 'Kontaktní osoba' FROM TProjekt RIGHT OUTER JOIN TFirma ON p_Firma=fir_ICO WHERE TProjekt.p_Pracoviste='352' ORDER BY p_ZahajRes,p_Nazev

Více-tabulkové dotazy (2)  Zobrazte všechny firmy, které spolupracovaly v loňském roce na projektech. Informace pro zobrazení jsou: název firmy (vzestupně seřazené). USE EvidProjektu; GO SELECT DISTINCT fir_Nazev FROM TProjekt LEFT JOIN TFirma ON p_Firma=fir_ICO WHERE year(p_ZahajRes) =(year(getdate())-1) AND fir_Nazev IS NOT NULL; GO

Souhrnné dotazy  Zobrazte počet projektů FRVŠ nebo GAČR řešených katedrami v jednotlivých letech. Informace pro zobrazení jsou: rok řešení, název katedry, a počet projektů. USE EvidProjektu; GO SELECT YEAR(p_ZahajRes),COUNT(p_ICislo),'projekt(y) za',p_Pracoviste FROM TProjekt INNER JOIN TKatedra ON p_Pracoviste=Číslo GROUP BY year(p_ZahajRes),p_Pracoviste ORDER BY year(p_ZahajRes),p_Pracoviste; GO HAVING COUNT(p_ICislo)>1  Omezte výpis pouze na ty katedry, které mají více než 1 projekt v daném roce řešení.

Poddotazy  Zobrazte projekty v roce 2008 těch kateder, které měly v roce 2008 alespoň dva projekty v době řešení. Informace pro zobrazení jsou: název projektu, rok zahájení řešení, rok ukončení řešení, jméno řešitele a číslo katedry. poddotaz pro určení kateder splňujících podmínku: USE EvidProjektu; GO SELECT p_Pracoviste FROM TProjekt WHERE year(p_ZahajRes) =(year(getdate())-1) GROUP BY p_Pracoviste HAVING COUNT(p_Pracoviste)>1 ORDER BY p_Pracoviste; GO USE EvidProjektu; GO SELECT p_Nazev, p_Pracoviste, Název FROM TProjekt LEFT JOIN TKatedra ON p_Pracoviste=TKatedra.Číslo WHERE p_Pracoviste IN (SELECT p_Pracoviste FROM TProjekt WHERE year(p_ZahajRes) =(year(getdate())-1) GROUP BY p_Pracoviste HAVING COUNT(p_Pracoviste)>1) AND (year(p_ZahajRes) =(year(getdate())-1)); GO

Sjednocený dotaz  Zobrazte seznam všech roků, v nichž probíhalo řešení jakéhokoliv projektu. SELECT year(p_ZahajRes) AS 'Doba řešení' FROM TProjekt GROUP BY year(p_ZahajRes) UNION SELECT year(p_KonecRes) AS 'Doba řešení' FROM TProjekt GROUP BY year(p_KonecRes); GO  Zjistěte, jak se změní zobrazená data s operací UNION ALL.  Jaký význam mají další obdobné operace tj. INTERSECT, EXCEPT.

Výkonný dotaz  Vložit firmu „Continental Automotive Control System“ s číslem IČO V případě, že firma s takovým číslem existuje, pak aktualizovat název firmy. USE EvidProjektu; GO IF EXISTS (SELECT fir_ICO FROM TFirma WHERE fir_ICO= ) BEGIN UPDATE TFirma SET fir_Nazev='Continental Automotive Control System' WHERE fir_ICO= END ELSE BEGIN INSERT INTO TFirma (fir_ICO,fir_Nazev) VALUES ( ,'Continental Automotive Control System') END GO

Shrnutí Index – rychlý přístup k řádkům tabulky v závislosti na hodnotách jednoho nebo více sloupců.  Maximálně jeden seskupený index (CLUSTERED) a ostatní indexy neseskupené (NOTCLUSTERED). Primární klíč nemusí být uložen jako seskupený index. Dotazy – podstatou jazyka SQL. Skládá se z klauzulí: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Druhy dotazů: jednoduché, více-tabulkové, souhrnné, poddotazy, sjednocené, výkonné.