Informační systémy Realizace sběru dat v rámci realizovaných úloh.

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
Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy
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.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
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
Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Temporální databáze a TSQL
Relační databáze Jakub Lokoč.
Radek Špinka Přepínače MSSQL výběr.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL.
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 č. 4, 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Fakulta elektrotechniky a informatiky
Procedurální rozšíření Transact SQL Michal Kopecký Výběr ze slajdů k 3. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK.
Databázové systémy teorie a návrh relačních databázových systémů část II.
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.
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.
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Čí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 II Cvičení č. 3 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
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
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.
Základní obeznámení s jazykem SQL Databázové systémy.
Databázové systémy SQL Výběr dat.
TEMPORÁLNÍ DATABÁZE A TSQL2
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.
Informační systémy Tvorba databáze, nástroje pro tvorbu tabulek, relací, vazeb.
Příkazy jazyka SQL ve VFP a na SQL Serveru
Autor, Název akce Databázové systémy a SQL Lekce 7 Daniel Klimeš.
Databázové systémy přednáška 6 – Indexy
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Roman Danel Institut ekonomiky a systémů řízení 2016
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
Databázové systémy a SQL
Dotazovací jazyk SQL I.
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
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Přednáška 9 Triggery.
Databázové systémy a SQL
Databázové systémy a SQL
Transkript prezentace:

Informační systémy Realizace sběru dat v rámci realizovaných úloh.

Obsah cvičení Grafická tvorba pohledu. Pohled – T-SQL. Kontrola aktualizací pohledu. Kurzory.

Grafická tvorba pohledu (1)  Zobrazit v pohledu VProjektResitel seznam názvů projektů s jejich řešiteli zobrazenými v jednom sloupci (titul před, příjmení, jméno a titul za). Pohled bude tříděn podle příjmení řešitele.

Grafická tvorba pohledu (2)  Zobrazit v pohledu VProjektResitel seznam názvů projektů s jejich řešiteli zobrazenými v jednom sloupci s titulem před, příjmením jménem a titulem za). Pohled bude tříděn podle příjmení řešitele. Nezobrazí se zde žádná data!! Zrušit jednu z vazeb mezi tabulkami Ttitul a Tzamestnanec. Zvolit sloupce, které se mají v pohledu zobrazit.

Grafická tvorba pohledu (3)  Zobrazit v pohledu VProjektResitel seznam názvů projektů s jejich řešiteli zobrazenými v jednom sloupci s titulem před, příjmením jménem a titulem za). Pohled bude tříděn podle příjmení řešitele. Nastavit třídění dle sloupce Příjmení a dalším krokem je... Vložit tabulku TTitul dvakrát a změnit názvy.

Grafická tvorba pohledu (4)  Zobrazit v pohledu VProjektResitel seznam názvů projektů s jejich řešiteli zobrazenými v jednom sloupci s titulem před, příjmením jménem a titulem za). Pohled bude tříděn podle příjmení řešitele. Sloučit sloupce do jednoho výsledného sloupce. TPred.t_TypTitulu + ' ' +z_Jmeno + ' ' + z_Prijmeni + ' ' + TZa.t_TypTitulu AS Řešitel RTRIM(TPred.t_TypTitulu) + … pro všechny sloupce kromě posledního Odstranit prázdné mezery. Proč jsou někteří řešitelé s hodnotou NULL, když každý projekt má svého řešitele?

Grafická tvorba pohledu (5) SELECT TProjekt.p_Nazev, CASE WHEN TZa.t_TypTitulu IS NULL THEN (RTRIM(TPred.t_TypTitulu) + ' ' + RTRIM(TZamestnanec.z_Jmeno) + ' ' + RTRIM(TZamestnanec.z_Prijmeni)) ELSE (RTRIM(TPred.t_TypTitulu) + ' ' + RTRIM(TZamestnanec.z_Jmeno) + ' ' + RTRIM(TZamestnanec.z_Prijmeni) + ' ' + TZa.t_TypTitulu) END AS Řešitel FROM TProjekt INNER JOIN TZamestnanec ON TProjekt.p_Resitel = TZamestnanec.z_IC LEFT OUTER JOIN TTitul AS TZa ON TZamestnanec.z_TitulZa = TZa.t_IC LEFT OUTER JOIN TTitul AS TPred ON TZamestnanec.z_TitulPred = Pred.t_IC ORDER BY TZamestnanec.z_Prijmeni Microsoft SQL Server Management Studio (Object Explorer)

Pohled – T-SQL  Vytvořte pohled VObory v T-SQL pro zobrazení všech oborů použitých ve všech řešených projektech, jak v části Hlavní obor (TProjekt.p_HlObor), tak v části Vedlejší obor (TProjekt.p_HlObor). Informace pro zobrazení jsou: název oboru. Obory jsou řazeny vzestupně dle jejich názvu. USE EvidProjektu; GO SELECT DISTINCT p_HlObor FROM TProjekt WHERE p_HlObor IS NOT NULL UNION SELECT DISTINCT p_VedlObor FROM TProjekt WHERE p_VedlObor IS NOT NULL; GO USE EvidProjektu; GO CREATE VIEW PObory AS SELECT DISTINCT p_HlObor AS 'Seznam oborů' FROM TProjekt WHERE p_HlObor IS NOT NULL UNION SELECT DISTINCT p_VedlObor FROM TProjekt WHERE p_VedlObor IS NOT NULL; GO

Kontrola aktualizací pohledů (1)  Vytvořte pohled VVlozitProjekt v T-SQL pro zobrazení projektů, které nepatří do skupiny projektů FRVŠ (p_Typ=4) a také nepatří do skupiny projektů pro Doplňkovou činnost (p_Podtyp=1).  Pohled bude zajišťovat kontrolu integrity vložení dat pouze pro projekty typu GAČR, projekty FRVŠ ani projekty typu Doplňková činnost není možné vkládat do databáze. USE EvidProjektu; GO CREATE VIEW VVlozitProjekt AS SELECT * FROM dbo.TProjekt WHERE p_Podtyp<>1 AND p_Typ<>4; GO

Kontrola aktualizací pohledů (2)  Pohled bude zajišťovat kontrolu integrity vložení dat pouze pro projekty typu GAČR, projekty FRVŠ ani projekty typu Doplňková činnost není možné vkládat do databáze.  Vložit nový projekt, tj. do sloupců vložit konkrétní hodnoty: (p_ICislo= ,p_Nazev=’MujProjekt’, p_ZahajRes=’1/1/2010’,p_KonecRes=’31/12/2012’, p_Poskytovatel=’GA0’, p_HlObor=’BC’,p_VedlObor=’JC’, p_Kateg=1,p_Typ=4,p_Podtyp=5,p_Resitel=’sku52’, p_DatumAktual=getdate(),p_DatumPrijeti=NULL, p_Pracoviste=’352’). USE EvidProjektu; GO INSERT INTO VVlozitProjekt (p_ICislo,p_Nazev,p_ZahajRes,p_KonecRes,p_Poskytovatel,p_HlObor,p_VedlObor, p_Kateg,p_Typ,p_Podtyp,p_Resitel,p_DatumAktual,p_DatumPrijeti,p_Pracoviste) VALUES ( ,'MujProjekt',1/1/2010,31/12/2012,'GA0','BC','JC', 1,4,5,'sku52',getdate(),NULL,'352'); GO MujProjekt ??

Kontrola aktualizací pohledů (3)  Pohled bude zajišťovat kontrolu integrity vložení dat pouze pro projekty typu GAČR, projekty FRVŠ ani projekty typu Doplňková činnost není možné vkládat do databáze. USE EvidProjektu; GO INSERT INTO VVlozitProjekt (p_ICislo,p_Nazev,p_ZahajRes,p_KonecRes,p_Poskytovatel, p_HlObor,p_VedlObor, p_Kateg,p_Typ,p_Podtyp,p_Resitel,p_DatumAktual, p_DatumPrijeti,p_Pracoviste) VALUES ( ,'MujProjekt',1/1/2010,31/12/2012,'GA0','BC','JC', 1,4,5,'sku52',getdate(),NULL,'352'); GO USE EvidProjektu; GO ALTER VIEW VVlozitProjekt AS SELECT * FROM dbo.TProjekt WHERE p_Podtyp<>1 AND p_Typ<>4 WITH CHECK OPTION; GO Msg 550, Level 16, State 1, Line 1 The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint. The statement has been terminated.

Kurzory (1)  Provést změnu číslování projektů z původního čísla, např.: na nové číslování , kde se rozšiřuje část pro uvedení koncového čísla roku na dvě místa. USE EvidProjektu; GO DECLARE CURSChangeID CURSOR FORWARD_ONLY READ_ONLY FOR SELECT p_ICislo,p_ZahajRes,p_KonecRes,p_Pracoviste FROM Tprojekt OPEN CURSChangeID Zde bude vložen vlastní kód kurzoru (viz další snímek). CLOSE CURSChangeID DEALLOCATE CURSChangeID

Kurzory (2) Další zdrojový text, který provádí kontrolu stávajícího čísla projektu v souvislosti s rokem zahájení: FETCH NEXT FROM CURSChangeID INTO WHILE BEGIN SET SET IF BEGIN PRINT 'Rok zahájení nesouhlasí s rokem v kódu projektu !!' PRINT 'Pro projekt s číslem: ' + + ' bude opraven kod číslování.' PRINT ' ' END Zde bude vložen další kód pro změnu i opravu čísla projektu (viz další snímek). FETCH NEXT FROM CURSChangeID INTO END int smalldatetime smalldatetime smallint smallint char(1)

Kurzory (3) Další zdrojový text, který provádí změnu a opravu čísel projektů: SET SET SET SET PRINT 'Číslo projektu '+ + ' je změněno na SET Aktualizaci dat v tabulce provést až po zjištění, zda je číslo dobře nahrazeno novým číslem !!! UPDATE TProjekt SET

Kurzory (4) – 1. část celého kódu USE EvidProjektu; GO /****** Object: Index [CIprojekt] Script Date: 04/02/ :57:25 ******/ IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[TProjekt]') AND name = N'CIprojekt') DROP INDEX [CIprojekt] ON [dbo].[TProjekt] WITH ( ONLINE = OFF ) /****** Object: Index [PK_TProjekt] Script Date: 04/02/ :58:16 ******/ IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[TProjekt]') AND name = N'PK_TProjekt') ALTER TABLE [dbo].[TProjekt] DROP CONSTRAINT [PK_TProjekt] int smalldatetime smalldatetime smallint smallint char(1) char(25)

Kurzory (5) - 2. část celého kódu DECLARE CURSChangeID CURSOR FORWARD_ONLY FOR SELECT p_ICislo,p_ZahajRes,p_KonecRes,p_Pracoviste FROM TProjekt OPEN CURSChangeID FETCH NEXT FROM CURSChangeID INTO

Kurzory (5) WHILE BEGIN SET SET IF BEGIN PRINT 'Rok zahájení nesouhlasí s rokem v kódu projektu !!' PRINT 'Pro projekt s číslem: ' + + ' bude opraven kod číslování.' PRINT ' ' END SET SET SET SET PRINT 'Číslo projektu '+ + ' je změněno na SET UPDATE TProjekt SET FETCH NEXT FROM CURSChangeID INTO END CLOSE CURSChangeID DEALLOCATE CURSChangeID

Shrnutí Pohled – je uložená definice dotazu. Pohled lze vytvořit:  v Management Studiu SQL Serveru.  v prostředí T-SQL. Kontrola aktualizací pohledů: WITH CHECK OPTION. Tvorba, změna nebo odstranění pohledu: CREATE, ALTER, DROP. Kurzor – pro práci s řádky dat.