Embedded SQL. Tomáš Skalický. Říjen 2010

Rozměr: px
Začít zobrazení ze stránky:

Download "Embedded SQL. Tomáš Skalický. Říjen 2010"

Transkript

1 Embedded SQL Tomáš Skalický Říjen 2010

2 Osnova Motivace Embedded SQL Syntaxe Příklady jednoduchých SQL příkazy Deklarace proměnných - hostitelské proměnné a indikátory Připojení k databázi Kurzory Zpracování chyb Dynamické SQL 4 metody

3 Motivace SQL jednoduché příkazy manipulující s daty PL/SQL či T-SQL podporují proměnné, podmínky, cykly atd. Co použít chci-li aplikaci obsahující složité výpočty psanou ve třetím jazyce a pracující s daty v databázi? mám-li existující aplikaci pracující s daty, kterou chceme nyní jednoduše připojit k databázi?

4 Embedded SQL Kombinace výpočetní síly programovacího jazyka (C/C++, Fortran...) a schopnosti manipulace s daty v databázi (SQL) Hostitelské jazyky = jazyky implementující Embedded SQL Pro*C, Pro*Fortran, Pro*Pascal...

5 Pro*C jak to funguje Do zdrojového kódu v C píšeme speciálně uvozené SQL příkazy soubor.pc Kompilátor Pro*C tyto příkazy nahradí voláním funkcí standardní runtime knihovny (SQLLIB) a výsledekem je zdrojový kód v čistém C soubor.c Dále se už kód překádá jako obyčejný céčkový zdroják. soubor.obj Na konci je přilinkována SQLLIB spustitelný program

6 Syntaxe Pro*C Základní pravidla pro psaní SQL příkazů do C-kódu: všechny SQL příkazy uvozeny direktivou EXEC SQL a končí středníkem ; při použití proměnných v SQL příkazech musí být tyto proměnné uvozeny dvojtečkou :, v C-kódu se píší bez dvojtečky

7 Příklad: SELECT EXEC SQL BEGIN DECLARE SECTION; int platsefa; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT plat INTO :platsefa FROM Zamestnanec WHERE id = 324; printf( Plat šéfa je %d Kč.\n, platsefa);

8 Příklad: INSERT EXEC SQL BEGIN DECLARE SECTION; char jmeno[20]; int plat; EXEC SQL END DECLARE SECTION; printf( Vlož jméno nového zaměstnance: ); scanf( %s, &jmeno); printf( Vlož plat nového zaměstnance: ); scanf( %d, &plat); EXEC SQL INSERT INTO Zamestnanec (jmeno, plat) VALUES (:jmeno, :plat);

9 Deklarativní část EXEC SQL BEGIN DECLARE SECTION; /*... */ EXEC SQL END DECLARE SECTION; obsahuje deklarace všech proměnných, které se budou používat pro komunikaci mezi programem a databází = hostitelské proměnné v kódu nejvýše jednou (kurzory a výjimky deklarovány vně této sekce)

10 Hostitelské proměnné mohou být jednoduché nebo struktury (struct) mohou být použity kdekoliv v SQL, kde se může objevit konstanta ale nemohou reprezentovat databázové objekty, jako jména tabulek či sloupců musí být deklarovány v BEGIN DECLARE SECTION END DECLARE SECTION bloku vstupní a výstupní výstupní... INTO klauzule v SELECT a FETCH příkazech vstupní... ostatní, např. ve VALUES, WHERE a HAVING klauzulích

11 Typy hostitelských proměnných char, char*, char[n], int, long, float nejběžnější VARCHAR[n] pseudotyp pro stringy rozpoznávaný přímo kompilátorem Pro*C v podstatě céčkový struct se 2 položkami: arr... pole charů len... délka pole POZOR - varchar2 není povolen

12 Indikátory Motivace Co uložit do proměnné, když SELECT vrátí NULL? Každá hostitelská proměnná vstupní i výstupní může mít svůj indikátor Indikátor vypovídá o stavu hodnoty v hostitelské proměnné

13 Indikátory jsou vždy typu short deklarovány v BEGIN DECLARE SECTION END DECLARE SECTION bloku jako hostitelské proměnné svázány vždy s jednou konkrétní hostitelskou proměnnou Syntaxe: EXEC SQL SELECT plat INTO :platsefa:platsefaindikator FROM Zamestnanec WHERE id = 324;

14 Indikátor vstupní hostitelské proměnné Hodnota Význam -1 uložena hodnota NULL >= 0 uložena hodnota hostitelské proměnné printf( Vlož ID šéfa nebo 0, pokud zaměstnanec nemá šéfa: ); scanf( %d, &sefid); if (sefid == 0) sefidindikator = -1; else sefidindikator = 0; EXEC SQL INSERT Zamestnanec (jmeno, plat, sefid) VALUES (:jmeno, :plat, :sefid:sefidindikator);

15 Indikátor výstupní hostitelské proměnné Hodnota Význam -1 nedefinovaná hodnota (NULL v databázi) 0 koretkní naplnění hostitelské proměnné > 0-2 vkládaná hodnota je větší než proměnná => hodnota zaokrouhlena, skutečná velikost je hodnota indikátoru vkládaná hodnota je větší než proměnná a skutečná velikost nelze určit => hodnota zaokrouhlena

16 Indikátor výstupní hostitelské proměnné EXEC SQL SELECT plat, odmena INTO :plat, :odmena:odmenaindikator FROM Zamestnanec WHERE id = :zamestnanecid; if (odmenaindikator == -1) /* odměna je NULL, ignorujem ji */ vyplata = plat; else vyplata = plat + odmena; POZOR - SELECT nebo FETCH NULL hodnoty do hostitelské proměnné bez indikátoru je chyba => error

17 Připojení k databázi Dvě ekvivalentní možnosti zápisu: EXEC SQL CONNECT :login IDENTIFIED BY :heslo; login a heslo jsou typu char[n], char* nebo VARCHAR[n] EXEC SQL CONNECT :prihlasovaciudaje; prihlasovaciudaje = login/heslo POZOR Login a heslo nelze uvádět přímo! EXEC SQL CONNECT Pepa IDENTIFIED BY PepovoHeslo ;

18 Commit a Rollback změn Pouze ukončení transakce: EXEC SQL COMMIT; Storno změn: EXEC SQL ROLLBACK; Storno změn + odpojení: EXEC SQL ROLLBACK WORK RELEASE;

19 Spojení s databází příklad EXEC SQL BEGIN DECLARE SECTION; char * login = Pepa ; char * heslo = PepovoHeslo ; int platsefa; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT :login IDENTIFIED BY :heslo; EXEC SQL SELECT plat INTO :platsefa FROM Zamestnanec WHERE jmeno = Krutas ; printf( Plat šéfa je %d Kč.\n, platsefa); EXEC SQL COMMIT WORK RELEASE; Co když má Pepa víc šéfů jménujících se Kruťas?

20 Kurzory Použití: v dotazech, které mohou vracet více řádků Použijeme-li běžný SELECT bez kurzoru a dotaz vrátí 1 řádek, ale může více, výsledek není definován. Vlastnosti kurzorů: iterativní průchod přes vybrané řádky znalost aktuálního řádku

21 Syntaxe kurzorů DECLARE CURSOR pojmenování kurzoru a přiřazení dotazu OPEN vyhodnocení dotazu a určení všech řádků, které splňují podmínku dotazu FETCH postupné procházení vybraných řádků, jednoho po druhém (není-li použito hostitelské pole) CLOSE zavření kurzoru a zneplatnění vybraných řádků

22 Kurzory DECLARE CURSOR Pojmenování kurzoru a přiřazení dotazu Jméno kurzoru Dotaz je identifikátor pro kompilátor není hostitelská proměnná, identifikátor ani céčková proměnná nesmí obsahovat INTO klauzuli (INTO klauzule je součástí FETCH příkazu) EXEC SQL DECLARE zamestnaneckurzor CURSOR FOR SELECT jmeno, plat FROM Zamestnanec WHERE sefid = :sefid;

23 Kurzory OPEN Vyhodnocení dotazu a určení všech řádků, které splňují podmínku dotazu Kurzor před prvním vybraným řádkem (je potřeba provést jeden FETCH příkaz) Pro opětovné vyhodnocení hostitelských proměnných je třeba provést znovu OPEN obyčejně je potřeba provést CLOSE před dalším OPEN, ale záleží na nastavení bez nutnosti CLOSE příkazu lepší výkon EXEC SQL OPEN zamestnaneckurzor;

24 Kurzory FETCH Postupné procházení vybraných řádků a nastavování výstupních hostitelských proměnných Pro připomenutí: SELECT v dotazu neobsahuje INTO klauzuli první FETCH nastaví kurzor na první vybraný řádek Pouze dopředný pohyb kurzoru v rámci vybraných řádků Pro návrat na předcházející řádek třeba nejprve použít OPEN příkaz a iterovat od začátku while (1) { EXEC SQL FETCH zamestnaneckurzor INTO :jmeno, :plat; }

25 Kurzory CLOSE Zavření kurzoru a zneplatnění vybraných řádků Uvolnění zámků závisí na nastavení Pro čtení ze zavřeného kurzoru je třeba nejprve použít OPEN příkaz EXEC SQL CLOSE zamestnaneckurzor;

26 Kurzory příklad EXEC SQL DECLARE zamestnaneckurzor CURSOR FOR SELECT jmeno, plat FROM Zamestnanec WHERE sefid = :sefid; EXEC SQL OPEN zamestnaneckurzor; EXEC SQL WHENEVER NOT FOUND DO break; while (1) { EXEC SQL FETCH zamestnaneckurzor INTO :jmeno, :plat; printf( Zaměstnanec %s bere %d Kč.\n, jmeno, plat); } EXEC SQL CLOSE zamestnaneckurzor; Co dělá WHENEVER...?

27 Scrollovatelné kurzory Běžné kurzory možný průchod pouze od začátku do konce není možný změnit směr iterace pro načtení nějaké předchozí hodnoty (či stávající hodnoty ještě jednou) je třeba znovu otevřít kurzor a procházet od začátku Scrollovatelné kurzory mohu procházet tam i zpět FETCH FIRST, FETCH PRIOR, FETCH RELATIVE n... EXEC SQL DECLARE zamestnaneckurzor SCROLL CURSOR FOR SELECT jmeno, plat FROM Zamestnanec

28 Zpracování chyb Dva možné způsoby: Explicitní kontrola příslušných položek struktury SQLCA, nebo Automatická kontrola a zpracování chyb pomocí WHENEVER příkazu

29 WHENEVER EXEC SQL WHENEVER <podmínka> <akce>; Kdykoliv je splněna daná podmínka, provede se příslušná akce. Kontrola příslušných položek struktury SQLCA pro danou podmínku Příkazy se mohou vzájemně překrývat #include <sqlca.h>

30 WHENEVER podmínka Možné podmínky (a kdy jsou splněny): SQLERROR Nějaký SQL EXEC příkaz skončil chybou Transakce by měla být explicitně stornována SQLWARNING NOT FOUND Nějaký SQL EXEC příkaz skončil varováním Žádný řádek nesplňuje WHERE podmínku nebo SELECT INTO / FETCH příkazy nevrátily žádný řádek

31 WHENEVER akce Možné akce: STOP CONTINUE DO <příkaz> volání exit(), program ukončen, nepotvrzené akce stornovány (rollback) pokud lze, pokusí se program pokračovat dalším příkazem Vykonání daného příkazu, typicky volání funkce, break GOTO <návěstí> Skok na dané návěstí

32 WHENEVER příklady Při připojování k databázi: EXEC SQL WHENEVER SQLERROR DO sqlerror( Nelze se připojit ); sqlerror je mnou definovaná funkce na zpracováí chyby SELECTy v cyklu (pomocí kurzoru): EXEC SQL WHENEVER NOT FOUND DO break;

33 Dynamické SQL Většina DB aplikací zpracovává přesně specifikovanou úlohu. SQL příkazy jsou již ve zdrojovém kódu a jsou neměnné ALE některé aplikace dopředu neví, jaký příkaz budou posílat na server. Např.: Jak napsat jeden příkaz, který dle vstupu vloží nového člověka buď do tabulky Zamestnanec, či do tabulky Externista?

34 Dynamické SQL = dynamické Embedded SQL umožňuje za běhu vytvářet a vyhodnocovat SQL příkazy. Typické použití: Nejsou-li známy v době kompilace programu některé z následujících položek: Text SQL příkazu (např. klauzule) Počet nebo datové typy hostitelských proměnných Názvy databázových objektů, např. sloupce, indexy, tabulky, pohledy...

35 Dynamické SQL: +/- Výhody: univerzálnější programy dynamické sestavení SQL příkazu na základě vstupu od uživatele nebo vstupního souboru Nevýhody: větší časové nároky na zpracování složitější kód aplikace => použití pouze tam, kde je to nezbytně nutné

36 Dynamické SQL: Požadavky na příkazy (1) Textový řetězec reprezentující příkaz musí být platný SQL příkaz nesmí obsahovat: EXEC SQL klauzuli ukončovač příkazu ; ALLOCATE, CLOSE, DECLARE, DESCRIBE, EXECUTE, FETCH, FREE, GET, INCLUDE, OPEN, PREPARE, SET, WHENEVER

37 Dynamické SQL: Požadavky na příkazy (2) Textový řetězec reprezentující příkaz může obsahovat placeholdery fiktivní proměnné sloužící k rezervaci místa pro skutečné hostitelské proměnné nedeklarují se libovolné jméno (v následujících dvou řetězcích není rozdíl) 'DELETE FROM Zamestnanec WHERE sefid = :sefid AND job = :job' 'DELETE FROM Zamestnanec WHERE sefid = :s AND job = :j'

38 Dynamické SQL: Zpracování příkazu 1. Program si vyžádá zadání textu SQL příkazu od uživatele a hodnoty hostitelských proměnných. 2. Parsování příkazu => potvrzení validity 3. Nahrazení placeholdrů hostitelskými proměnnými již máme adresy proměnných => můžeme s nimi pracovat 4. Vykonání příkazu

39 Dynamické SQL: 4 metody použití Seřazeny vzestupně dle obecnosti (flexibility) => dle náročnosti (1) Bez návratových hodnot a hostitelských proměnných (2) Bez návratových hodnot ale se známým počtem vstupních hostitelských proměnných (3) Se známým počtem vrácených sloupců a vstupních hostitelských proměnných (4) S neznámým počtem vrácených sloupců a vstupních hostitelských proměnných

40 Dynamické SQL: 1. metoda Omezení: Příkaz nesmí být typu SELECT a nesmí obsahovat žádný placeholder pro vstupní hostitelské proměnné 'DELETE FROM Zamestnanec WHERE oddeleniid = 20' Syntaxe: EXEC SQL EXECUTE IMMEDIATELY { :řetězcováproměnná řetězcovýliterál } Příkaz je parsován vždy, když je vykonáván => pomalé

41 Dynamické SQL: 1. metoda příklad char dynamickyprikaz[100];... while (1) { printf( Vlož SQL příkaz: ); gets(dynamickyprikaz); if (*dynamickyprikaz == '\0') break; } /* dynamickyprikaz nyní obsahuje textovou reprezentaci celého SQL příkaz */ EXEC SQL EXECUTE IMMEDIATELY :dynamickyprikaz;

42 Dynamické SQL: 2. metoda Omezení: Příkaz nesmí být typu SELECT. Počet placeholderů pro vstupní hostitelské proměnné a jejich datové typy musí být známy v době kompilace. 'INSERT INTO Zamestnanec (jmeno, plat) VALUES (:jmeno, :plat)'

43 Dynamické SQL: 2. metoda syntaxe Syntaxe: EXEC SQL PREPARE nazevprikazu FROM { :retezcovapromenna, retezcovyliteral }; EXEC SQL EXECUTE nazevprikazu [USING seznamhostitelskychpromennych]; seznamhostitelskychpromennych ve tvaru: :promenna1[:indikator1] [, promenna2[:indikator2],...]

44 Dynamické SQL: 2. metoda příklad int idzamestnance; char textprikazu[100], podminka[40], id[10];... strcpy(textprikazu, DELETE FROM Zamestnanec WHERE id = :n AND ); printf( Doplňte vyhledávací podmínku následujícího příkazu\n ); printf( %s\n, textprikazu); gets(podminka); strcat(textprikazu, podminka); EXEC SQL PREPARE prikaz FROM :textprikazu; while (1) { printf( Vlož ID zaměstnance: ); gets(id); idzamestnance = atoi(id); EXEC SQL EXECUTE prikaz USING :idzamestnance; }

45 Dynamické SQL: 2. metoda PREPARE, EXECUTE PREPARE EXECUTE rozparsuje a pojmenuje příkaz jméno je identifikátor pro kompilátor, není hostitelská proměnná, identifikátor či céčková proměnná => nedeklaruje se stejné jako pojmenování kurzoru všechny placeholdery nahradí hostitelské proměnné z klauzule USING musí být zachováno pořadí proměnných PREPARE pouze jednou, EXECUTE může být vícekrát s různými hostitelskými proměnnými v části USING

46 Dynamické SQL: 3. metoda Omezení: Počet navratových sloupců SELECTu, počet placeholderů pro vstupní hostitelské proměnné a jejich datové typy musí být známy v době kompilace. Oproti 2. metodě navíc pouze návratové sloupce 'SELECT sefid, MIN(plat), MAX(plat) FROM Zamestnanec GROUP BY sefid WHERE pozice = :pozice'

47 Dynamické SQL: 3. metoda syntaxe kroků Syntaxe: EXEC SQL PREPARE nazevprikazu FROM { :retezcovapromenna, retezcovyliteral }; Dále použit kurzor: EXEC SQL DECLARE jmenokurzoru CURSOR FOR nazevprikazu; EXEC SQL OPEN jmenokurzoru [USING seznamhostitelskychpromennych]; EXEC SQL FETCH jmenokurzoru INTO seznamhostitelskychpromennych; EXEC SQL CLOSE jmenokurzoru;

48 Dynamické SQL: 3. metoda příklad char textdotazu[100] = SELECT jmeno, pozice, plat FROM Zamestnanec WHERE plat < :pl ; EXEC SQL PREPARE dotaz FROM :textdotazu; EXEC SQL DECLARE kurzorzamestnancu CURSOR FOR dotaz; DECLARE asociuje kurzor s dotazem. EXEC SQL OPEN kurzorzamestnancu USING :platovylimit; OPEN nahradí placeholdery v dotazu vstupními hostitelskými proměnnými, vyhodnotí dotaz a vybere patřičné řádky. EXEC SQL FETCH kurzorzamestnancu INTO :jmeno, :pozice, :plat; EXEC SQL CLOSE kurzorzamestnancu;

49 Dynamické SQL: 4. metoda Umožňuje použít předem neznámý počet návratových sloupců a placeholderů pro vstupní hostitelské proměnné. SELECT bez specifikace sloupců v době kompilace EXECUTE USING bez uvedeného listu hostitelských proměnných v době kompilace Pomocí deskriptorů DESCRIBE SELECT LIST DESCRIBE BIND VARIABLES Každý aktivní SQL příkaz musí mít své vlastní SQLDA.

50 Dynamické SQL: SQLDA (SQL Descriptor Area) Datová struktura, kde program a Oracle udržují kompletní popis proměnných v dynamických SQL příkazech. Obsahuje počet položek a údaje o datovém typu každé položky. Položky ze SELECTu uloženy ve výstupních proměnných, vázané (bind) proměnné ve vstupních proměnných, v SQLDA jsou jejich adresy, čímž jsou zpřístupněny Oraclu Výstupní hodnoty jsou získány FETCHem a vstupní jsou zadány programem.

51 Dynamické SQL: 4. metoda průběh 1. Deklarace hostitelského řetězce pro zápis dotazu 2. Deklarace select a bind SQLDA 3. Alokace paměti pro select a bind deskriptor 4. Nastavení maximálního počtu položek v deskriptorech 5. Naplnění hostitelského řetezce 6. PREPARE příkaz FROM řetězec 7. DECLARE a kurzor FOR příkaz 8. DESCRIBE vázané proměnné INTO bind deskriptor 9. Nastavení počtu míst pro proměnné na počet nalazený pomocí DESCRIBE 10. Získání hodnoty a alokace místo pro vázané proměnné nalezené pomocí DESCRIBE 11. OPEN kurzor USING bind descriptor 12. DESCRIBE seznam select položek INTO select descriptor 13. Nastavení počtu select položek na počet nalezený pomocí DESCRIBE 14. Nastavení délky a datového typu každé select položky 15. FETCH řádky z databáze INTO alokovaný buffer, na který ukazuje select descriptor 16. Zpracování vybrané hodnoty 17. Uvolnění naalokované paměti 18. CLOSE kurzor

52 Dynamické SQL: 4. metoda syntaxe kroků EXEC SQL PREPARE nazevprikazu FROM { :retezcovapromenna, retezcovyliteral }; EXEC SQL DECLARE jmenokurzoru CURSOR FOR nazevprikazu; EXEC SQL DESCRIBE BIND VARIABLES FOR nazevprikazu INTO nazevbinddeskriptoru; EXEC SQL OPEN jmenokurzoru [USING DESCRIPTOR nazevbinddeskriptoru]; EXEC SQL DESCRIBE [SELECT LIST FOR] nazevprikazu INTO nazevselectdeskriptoru; EXEC SQL FETCH jmenokurzoru USING DESCRIPTOR nazevselectdeskriptoru; EXEC SQL CLOSE jmenokurzoru;

53 Dynamické SQL: 4. metoda zjednodušení Pokud je znám počet míst pro vázané proměnné, je možné příkaz DESCRIBE BIND VARIABLES nahradit příkazem OPEN z 3. metody: EXEC SQL OPEN jmenokurzoru [USING seznamhostitelskychpromennych]; Pokud je znám počet select položek, pak je možné příkaz DESCRIBE SELECT LIST vynechat a nahradit ho příkazem FETCH z 3. metody: EXEC SQL FETCH jmenokurzoru INTO seznamhostitelskychpromennych;

54 Dynamické SQL: Jakou metodu použít?

55 Zdroje [1] Pro*C/C++ Precompiler Programmer's Guide, Release 9.2 Oracle Corporation, , použité kapitoly: Kapitola 1, Introduction Kapitola 6, Embedded SQL Kapitola 13, Oracle Dynamic SQL [2] Semináře RNDr. Michala Kopeckého, Ph. D.: Administrace Oracle [3] Wikipedia,

56 Dotazy

Embedded SQL v C/C++ úvod. Administrace Oracle Kateřina Opočenská

Embedded SQL v C/C++ úvod. Administrace Oracle Kateřina Opočenská Embedded SQL v C/C++ úvod Administrace Oracle Kateřina Opočenská Motivace potřeba začlenit komunikaci s databází do aplikace v nějakém vyšším programovacím jazyce řešení (na Oracle): a) OCI (Oracle Call

Více

Embedded SQL Dotazovací Jazyky I. Bc. CHOMUT Miroslav Bc. VODOLÁN Miroslav

Embedded SQL Dotazovací Jazyky I. Bc. CHOMUT Miroslav Bc. VODOLÁN Miroslav Embedded SQL Dotazovací Jazyky I Autoři: Bc. CHOMUT Miroslav Bc. VODOLÁN Miroslav Obsah Jak využívat SQL v programech Historie Příklad Podpora Způsob kompilace Statické SQL Práce s DB Struktura SQLCA Ošetření

Více

Embedded SQL v C/C++ III - pole, struktury. Jindřich Vodrážka

Embedded SQL v C/C++ III - pole, struktury. Jindřich Vodrážka Embedded SQL v C/C++ III - pole, struktury Jindřich Vodrážka Obsah referátu Motivace k použití polí v emb. SQL Deklarace Host Arrays Použití polí v jednoduchých dotazech Použití polí ve složitějších dotazech

Více

Embedded C výjimky, kurzory. Šárka Hlušičková

Embedded C výjimky, kurzory. Šárka Hlušičková Embedded C výjimky, kurzory Šárka Hlušičková Obsah Indikátorové proměnné informace o obsahu hostitelských proměnných SQLCA, whenever klauzule ošetření běhových chyb Kurzory zpracování víceřadkových výsledků

Více

Text úlohy. Systémový katalog (DICTIONARY):

Text úlohy. Systémový katalog (DICTIONARY): Úloha 1 Částečně správně Bodů 050 / 100 Systémový katalog (DICTIONARY): a Se skládá z tablek a pohledů uložených v tabulkovém SYSTEM b Všechny tabulky vlastní uživatel SYS c Se skládá z tablek a pohledů

Více

Databáze I. Přednáška 9

Databáze I. Přednáška 9 Databáze I Přednáška 9 Programování s SQL interaktivní verze SQL zadávání dotazů v operátorské konzoli konzole MySQL, Oracle SQL Developer hostitelská verze SQL (Embedded SQL) SQL začleněno do nějakého

Více

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. 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 o proceduralitu od společnosti ORACLE je jazyk

Více

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc. 1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace

Více

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Motivace 2 Základy syntaxe 3 Procedury a Funkce 4 Kurzory 5 Výjimky Studijní

Více

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

Databáze 2011/2012 T-SQL - kurzory, funkce. RNDr.David Hoksza, Ph.D.

Databáze 2011/2012 T-SQL - kurzory, funkce. RNDr.David Hoksza, Ph.D. Databáze 2011/2012 T-SQL - kurzry, funkce RNDr.David Hksza, Ph.D. http://siret.cz/hksza Osnva T-SQL kurzry T-SQL funkce Cvičení Kurzr Datvá struktura umžňující pracvat s výsledkem dtazu Smyslem kurzru

Více

Jazyk PL/SQL Úvod, blok

Jazyk PL/SQL Úvod, blok Jazyk PL/SQL Úvod, blok 1 Bc. Tomáš Romanovský Procedural Language for Structured Query Language Součást systému Oracle, rozšíření SQL o procedurální rysy Prostředky pro vytváření a spouštění programových

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL 4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená

Více

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK listopad 2009 souhrn v1 Červené dobře (nejspíš), modré možná Oracle Internet Directory OID: Databáze nemůže z OID přebírat seznam uživatelů *Databáze může získat z OID seznam

Více

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE

Více

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura 10. Architektura klient/server a třívrstvá architektura 10.1. Varianty architektury... 3 10.2. Přínos architektury klient/server a třívrstvé architektury... 5 10.3. Podpora pro rozdělení zátěže v architektuře

Více

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura 10. Architektura klient/server a třívrstvá architektura 10.1. Varianty architektury... 3 10.2. Přínos architektury klient/server a třívrstvé architektury... 5 10.3. Podpora pro rozdělení zátěže v architektuře

Více

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE 2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

5. POČÍTAČOVÉ CVIČENÍ

5. POČÍTAČOVÉ CVIČENÍ 5. POČÍTAČOVÉ CVIČENÍ Databáze Databázi si můžeme představit jako místo, kam se ukládají všechny potřebné údaje. Přístup k údajům uloženým v databázi obstarává program, kterému se říká Systém Řízení Báze

Více

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports , Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Demo-cvičení pro IDS 9. dubna 2014 Marek Rychlý Stored Procedures & Database Triggers, Demo-cvičení

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName 8 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah MS SQL Server 2005, Jazyk Transact-SQL, syntaxe, proměnné, struktury,

Více

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:

Více

Jazyk SQL databáze SQLite. připravil ing. petr polách

Jazyk SQL databáze SQLite. připravil ing. petr polách Jazyk SQL databáze SQLite připravil ing. petr polách SQL - úvod Structured Query Language (strukturovaný dotazovací jazyk 70. léta min. století) Standardizovaný dotazovací jazyk používaný pro práci s daty

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

4. lekce Přístup k databázi z vyššího programovacího jazyka

4. lekce Přístup k databázi z vyššího programovacího jazyka 4. lekce Přístup k databázi z vyššího programovacího jazyka Studijní cíl Tento blok popisuje základní principy přístupu k databázi z vyššího programovacího jazyka. Doba nutná k nastudování 2-3 hodiny Průvodce

Více

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307 Stručný obsah část I Přehled jazyka SQL Kapitola 1: Úvod 27 Kapitola 2: Stručný úvod do jazyka SQL 37 Kapitola 3: Jazyk SQL z širšího pohledu 45 Kapitola 4: Relační databáze 69 Část II Získávání dat Kapitola

Více

Databáze I. 5. přednáška. Helena Palovská

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

Databáze I. Přednáška 4

Databáze I. Přednáška 4 Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice

Více

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný DJ2 rekurze v SQL slajdy k přednášce NDBI001 Jaroslav Pokorný 1 Obsah 1. Úvod 2. Tvorba rekurzívních dotazů 3. Počítaní v rekurzi 4. Rekurzívní vyhledávání 5. Logické hierarchie 6. Zastavení rekurze 7.

Více

Spojová implementace lineárních datových struktur

Spojová implementace lineárních datových struktur Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB

Více

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

KIV/ZIS cvičení 6. Tomáš Potužák

KIV/ZIS cvičení 6. Tomáš Potužák KIV/ZIS cvičení 6 Tomáš Potužák Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Slučování záznamů do skupin (1) Chceme zjistit informace obsažené ve více záznamech najednou Klauzule GROUP

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Kapitola 4: SQL. Základní struktura

Kapitola 4: SQL. Základní struktura - 4.1 - Kapitola 4: SQL Základní struktura Množinové operace Souhrnné funkce Nulové hodnoty Vnořené poddotazy (Nested sub-queries) Odvozené relace Pohledy Modifikace databáze Spojené relace Jazyk definice

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Databázové systémy Cvičení 5.2

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

Více

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: SII - Informatika Způsob vyhodnocení: Při vyhodnocení budou za nesprávné odpovědi strhnuty body. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: a) sekundární klíč b)

Více

KIV/ZIS cvičení 5. Tomáš Potužák

KIV/ZIS cvičení 5. Tomáš Potužák KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek 5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené

Více

Zápisování dat do databáze

Zápisování dat do databáze Zápisování dat do databáze Informační a znalostní systémy 1 2 záznamů Pro vkládání záznamů do tabulky- příkaz INSERT INSERT INTO tabulka VALUES ( výčet hodnot záznamu ) záznamů Pro vkládání záznamů do

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Struktura pamětí a procesů v DB Oracle. Radek Strnad Struktura pamětí a procesů v DB Oracle Radek Strnad radek.strnad@gmail.com 1 Základní rozdělení paměti Software codes area Chráněná část spustitelného kódu samotné DB. System global area (SGA) Sdílená

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz

Více

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze'); MySQLi (objektově) Rozšíření PHP MySQL - základní rozšíření umožňující práci s MySQL. Doporučuje se ho používat pouze do verze MySQL 4.1.3. I když je funkční i u novějších verzí, neumožňuje využití nových

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Práce se soubory. Základy programování 2 Tomáš Kühr

Práce se soubory. Základy programování 2 Tomáš Kühr Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

Základní přehled SQL příkazů

Základní přehled SQL příkazů Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact

Více

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery II. Jan Hnilica Počítačové modelování 17 Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky

Více

Popis souboru pro generování reportů *.report

Popis souboru pro generování reportů *.report Popis souboru pro generování reportů *.report [Main]... 1 Create... 1 Description... 1 Protect... 1 Nazev... 2 PopisX... 2 PopisY... 2 GRAFDATAOD... 2 GRAFDATADo... 2 GRAFOSAX... 2 TYP_GRAFU... 2 GRAF_VEDLEJSI_OSA...

Více

IBM DB2 Universal Database. Přehled zpráv, díl 2. verze 7 GC09-3619-00

IBM DB2 Universal Database. Přehled zpráv, díl 2. verze 7 GC09-3619-00 IBM DB2 Universal Database Přehled zpráv, díl 2 verze 7 GC09-3619-00 IBM DB2 Universal Database Přehled zpráv, díl 2 verze 7 GC09-3619-00 Upozornění Než použijete tyto informace a odpovídající produkt,

Více

Oracle Call Interface (OCI)

Oracle Call Interface (OCI) Oracle Call Interface (OCI) NGUYEN TIEN Dung Univerzita Karlova Matematicko-fyzikální fakulta Last modified : 06.12.2007 Co je OCI? low-level aplikační rozhraní (API) umožňující aplikacím psaným v hostitelském

Více

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr) Cykly Základy programování 1 Martin Kauer (Tomáš Kühr) Z minula Chary můžete používat jako znaky ale i jako čísla 0-255. Jakou formu vybrat záleží na konkrétní aplikaci. Když pracujete se znaky, používejte

Více

Virtual Private Database (VPD) Jaroslav Kotrč

Virtual Private Database (VPD) Jaroslav Kotrč Virtual Private Database (VPD) Jaroslav Kotrč Co je VPD Bezpečnostní politika pro přístup k databázi na úrovni řádků a sloupců. Bezpečnost přímo nad tabulkami. Není způsob, jak to obejít. SQL dotaz upraven

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Internetová filmová databáze IFDB

Internetová filmová databáze IFDB VŠB FEI - Technická Univerzita Ostrava DOKUMENTACE Internetová filmová databáze IFDB Semestrální projekt Jméno: Jméno vyučujícího: Dušan Choleva (CHO0130) Ing. Petr Lukáš 1 1. Specifikace zadání 1.1. Proč

Více

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4. Základy programování 4 - C# - 9. cvičení Radek Janoštík Univerzita Palackého v Olomouci 10.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.2017 1 / 13 Reakce na

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu

Více

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost

Více

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata Databáze Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu Bedřich Košata K čemu jsou databáze Ukládání dat ve strukturované podobě Možnost ukládat velké množství dat

Více

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Databázové a informační systémy 1/9 DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Katedra informatiky FEI VŠB Technická univerzita Ostrava 2012/2013 Databázové a informační systémy 2/9 TABULKA ST U D E N T Pokud nebude

Více

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

Více

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb. SQL dotazy. budeme probírat pouze SELECT KIV/ZIS - SQL dotazy stáhnout soubor ZIS- 04_TestovaciDatabaze250312.accdb SQL dotazy textové příkazy pro získání nebo manipulaci s daty SELECT - výběr/výpis INSERT - vložení UPDATE - úprava DELETE - smazání

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr Strukturované typy a ukazatele Úvod do programování 1 Tomáš Kühr Motivace Se základními datovými typy si sice vystačíme Někdy to ale může být nepříjemně nepřehledné Příklady: long double soucet(const long

Více

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D. Programování 2 (NMIN102) Soubory RNDr. Michal Žemlička, Ph.D. Soubor abstrakce vstupního, výstupního či vstupně výstupního zařízení textová, typovaná a netypovaná varianta základní operace: otevření, čtení/zápis,

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro

Více

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství

Více

Administrace Oracle. Práva a role, audit

Administrace Oracle. Práva a role, audit Administrace Oracle Práva a role, audit Filip Řepka 2010 Práva (privileges) Objekty (tabulky, pohledy, procedury,...) jsou v databázi logicky rozděleny do schémat. Každý uživatel má přiděleno svoje schéma

Více

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná ZKOUŠKOVÉ TESTY Leden 2010 souhrn Červené dobře (nejspíš), modré možná Pomocí kterého databázového objektu je implementován ATRIBUT z konceptuálního modelu? sloupec referenční omezení index tabulka Omezení

Více

Databáze II. 2. přednáška. Helena Palovská

Databáze II. 2. přednáška. Helena Palovská Databáze II 2. přednáška Helena Palovská palovska@vse.cz SQL a aplikace Program přednášky Řízení transakcí v SQL Integritní omezení v SQL Triggery a uložené procedury Zpracování množin záznamů Řízení

Více

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající

Více

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele Strukturu lze funkci předat: hodnotou i pomocí ukazatele pouze pomocí ukazatele (reference na strukturu) pouze hodnotou (kopie struktury) (pole[i])+j adresa prvku na souřadnicích i, j adresa i-tého řádku

Více