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

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

Fakulta elektrotechniky a informatiky

Podobné prezentace


Prezentace na téma: "Fakulta elektrotechniky a informatiky"— Transkript prezentace:

1 Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz
Databázové systémy I Přednáška č. 5 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky

2 Databázové systémy 1 - př. 2
Obsah Jazyk SQL Jednoduché typy základních příkazů CREATE TABLE DROP TABLE SELECT INSERT UPDATE DELETE Databázové systémy 1 - př. 2

3 Pravidla pro tabulkovou prezentaci relace
(zjednodušení rozmanitostí vztahů zkoumaných teorií relací na binární relace) každý řádek odpovídá jedné entitě relace 2. pořadí řádků je nevýznamné 3. žádné dva řádky nejsou stejné (tabulka neobsahuje duplicitní řádky) Databázové systémy 1 - př. 2

4 Pravidla pro tabulkovou prezentaci relace
4. pořadí sloupců je nevýznamné 5. význam každého sloupce je určen jménem atributu 6. žádné dva názvy sloupců (atributy) nejsou stejné 7. hodnoty ve sloupcích jsou atomické (skalární – nelze je dále rozkládat) Databázové systémy 1 - př. 2

5 Relace – databázové tabulky
Databázové systémy 1 - př. 2

6 Porovnání terminologie
V odborné literatuře se často používá pojmu relace ve smyslu „vztah“, nikoli ve smyslu „entita“. Databázové systémy 1 - př. 2

7 Databázové systémy 1 - př. 2
Přechod k relacím Číslo Jméno Příjmení Narozen Oddělení Pobočka 107 Karel Pilař Technické Pardubice, Palackého 232 306 Josef Matěj Hradec Králové, Sušilova 1528 125 Kamil Oháňka Praha, Dělnická 12 219 Josefína Krátká Obchodní Číslo Jméno Příjmení Narozen Id_odd Pobočka 107 Karel Pilař 1 101 306 Josef Matěj 102 125 Kamil Oháňka 103 219 Josefína Krátká 2 Id_odd Město Ulice čp 101 Pardubice Palackého 232 102 Hradec Králové Sušilova 1528 103 Praha Dělnická 12 Id_odd Oddělení 1 Technické 2 Obchodní Databázové systémy 1 - př. 2

8 Speciální relační operace
Projekce výběr sloupců tabulky – vertikální podmnožina Databázové systémy 1 - př. 2

9 Speciální relační operace
Restrikce výběr určité věty z tabulky na základě stanovené podmínky (výběr řádků tabulky) – horizontální podmnožina Databázové systémy 1 - př. 2

10 Databázové systémy 1 - př. 2
Databázový jazyk SQL vznik relačního modelu databáze – odpoutání logické organizace dat od fyzického uložení výzkum v IBM ohledně možnosti využití relačních databází -> vytvoření sady příkazů -> jazyk SEQUEL(Structured English Query Language) 1976 představen ERM 1979 Relational Software (dnes Oracle Corporation) 1980 Přejmenování SEQUEL -> SQL (Structured Query Language) Databázové systémy 1 - př. 2

11 Databázové systémy 1 - př. 2
Databázový jazyk SQL 1986 ANSI – standardizace SQL86 (první verze) 1992 V dalších letech se ukázalo, že SQL-86 obsahuje některé nedostatky a naopak v něm nejsou obsaženy některé důležité prvky týkající se hlavně integrity databáze - nový standard SQL-92 (zkráceně SQL2) 1999 Standard SQL3 (SQL:1999) reaguje na potřeby nejmodernějších databází s objektovými prvky, doplněny regulární výrazy, rekurzivní dotazy, podpora procedur, .. 2003 Standard SQL 2003 doplněny XML funkce, sekvence, sloupce s automaticky generovanými hodnotami 2006 Standard SQL 2006 definuje způsoby pro konverzi dat mezi SQL a XML formou Databázové systémy 1 - př. 2

12 Databázové systémy 1 - př. 2
Jazyk SQL slouží k Definici dat (struktury a organizace dat a vztahů mezi nimi) Získávání dat Manipulaci s daty Řízení přístupu Sdílení dat Integrita dat Databázové systémy 1 - př. 2

13 Databázové systémy 1 - př. 2
Úloha jazyka SQL Interaktivní dotazovací jazyk (pro uživatele) Databázový programovací jazyk (začlenění SQL kódu do aplikačních programů) Administrační databázový jazyk (správa databáze) Jazyk aplikací typu klient/server Jazyk pro přístup k datům na internetu Distribuovaný databázový jazyk (provoz distribuovaných databází) Jazyk pro databázové brány (umožňuje jednomu druhu databázového systému komunikovat s jiným) Databázové systémy 1 - př. 2

14 Přenositelnost jazyka SQL
Důvody, které komplikují přenositelnost SQL kódu mezi dtb. systémy: SQL standard je složitý a tak ne všichni implementátoři podporují celý standard. Norma nespecifikuje chování databáze v několika důležitých oblastech (např. indexy, ukládání souborů ...), takže implementátoři se mohou rozhodnout, jak tyto činnosti implementovat. SQL standard přesně specifikuje syntaxi, kterou musí kompatibilní databáze splnit. Standardní specifikace pro sémantiku jazyka je méně dobře definovaná, což vede k nejasnostem. Databázové systémy 1 - př. 2

15 Přenositelnost jazyka SQL
Mnoho prodejců databázových systémů má velké existující zákaznické základny, kde SQL standard se střetává s předchozím chováním databáze a prodejce může být neochotný ztratit zpětnou kompatibilitu. V některých případech mají prodejci zájem vytvořit či zachovat nekompatibility s jinými produkty, protože zajišťují silnou motivaci pro stávající uživatele zůstat loajální. Databázové systémy 1 - př. 2

16 Databázové systémy 1 - př. 2
Popis jazyka SQL Standardní příkazy dělíme do skupin: Příkazy pro definici dat (DDL) Data Definition Language 2. Příkazy pro manipulaci s daty (DML) Data Manupation Language 3. Příkazy pro řízení dat (DCL) Data Controll Language 4. Ostatní příkazy Databázové systémy 1 - př. 2

17 Databázové systémy 1 - př. 2
Popis jazyka SQL Příkazy pro definici dat Těmito příkazy se vytvářejí struktury databáze – tabulky, indexy, pohledy a další objekty. Vytvořené struktury lze také upravovat, doplňovat a mazat. Tato skupina příkazů se nazývá zkráceně DDL – Data Definition Language („jazyk pro definici dat“). CREATE – vytváření nových objektů. ALTER – změny existujících objektů. DROP – odstraňování objektů. Databázové systémy 1 - př. 2

18 Databázové systémy 1 - př. 2
Popis jazyka SQL Příkazy pro manipulaci s daty příkazy pro získání dat z databáze a pro jejich úpravy se označují zkráceně DML (data Manipulation Language) SELECT – vybírá data z databáze INSERT – vkládá do databáze nová data. UPDATE – mění data v databázi (editace). DELETE – odstraňuje data (záznamy) z databáze. EXPLAIN PLAN FOR – speciální příkaz, který zobrazuje postup zpracování SQL příkazu. Pomáhá uživateli optimalizovat příkazy tak, aby byly rychlejší. Databázové systémy 1 - př. 2

19 Databázové systémy 1 - př. 2
Popis jazyka SQL Příkazy pro řízení dat Do této skupiny patří příkazy pro nastavování přístupových práv, řízení provozu a údržby databáze transakcí. Označují se jako DCL – Data Control Language („jazyk pro ovládání dat“), GRANT – příkaz pro přidělení oprávnění uživateli k určitým objektům. REVOKE – příkaz pro odnětí práv uživateli. ALTER USER – změna uživatele DROP USER – odstranění uživatele Databázové systémy 1 - př. 2

20 Databázové systémy 1 - př. 2
Popis jazyka SQL Příkazy pro řízení dat – skupina příkazů pro řízení transakcí Označují se TCC – Transaction Control Commands („jazyk pro ovládání transakcí"). COMMIT – potvrzení transakce. ROLLBACK – zrušení transakce, návrat do původního stavu. SAVEPOINT SET TRANSACTION Databázové systémy 1 - př. 2

21 Databázové systémy 1 - př. 2
Popis jazyka SQL Ostatní příkazy Do této skupiny patří příkazy pro správu databáze. Pomocí nich lze nastavovat systémové parametry (kódování znaků, způsob řazení, formáty data a času apod.). Tato skupina není standardizována a konkrétní syntaxe příkazů je závislá na databázovém systému. Databázové systémy 1 - př. 2

22 Standardní datové typy SQL
Číselné datové typy (výběr) DECIMAL (<celé číslo1>, <celé číslo2>) Desetinné číslo s celkovým počtem <celé číslo1> číslic a s počtem <celé číslo2> za desetinnou čárkou. Stejný typ je NUMERIC. FLOAT (<celé číslo>) Desetinné číslo s plovoucí desetinnou tečkou. Parametr udává počet platných číslic (max. 38) REAL (<celé číslo>) Desetinné číslo s plovoucí desetinnou tečkou. Parametr udává počet platných číslic (max. 18) INTEGER Celé číslo v rozsahu – až SMALLINT Celé číslo v rozsahu – až Databázové systémy 1 - př. 2

23 Standardní datové typy SQL
Znakové datové typy CHAR (<celé číslo>) Řetězec znaků pevné délky <celé číslo> znaků. Maximální délka bývá 255 znaků. VARCHAR (<celé číslo>) Řetězec znaků proměnlivé délky, maximálně <celé číslo> znaků. Maximální délka bývá delší než u typu CHAR. Oba datové typy mohou být ve variantě s národními znaky jako NCHAR či NVARCHAR. Databázové systémy 1 - př. 2

24 Standardní datové typy SQL
Datové typy pro datum a čas DATE - Vyjádření datumu. TIME - Vyjádření času. TIMESTAMP - Struktura obsahující datum a čas. INTERVAL - Časové intervaly. Čas a časové razítko mohou být doplněny i o informace o časové zóně: TIMESTAMP(přesnost) WITH TIME ZONE TIME WITH TIME ZONE Databázové systémy 1 - př. 2

25 Databázové systémy 1 - př. 2
Datové typy Oracle Číselné datové typy NUMBER (<celé číslo1>, <celé číslo2>) Desetinné číslo s celkovým počtem <celé číslo1> číslic a s počtem <celé číslo2> číslic za desetinnou čárkou. Příklady: NUMBER číslo s pohyblivou řádovou čárkou NUMBER (9) celé číslo s přesností na 9 číslic NUMBER (9,2) desetinné číslo s pevnou řádovou čárkou s přesností na 9 číslic, z toho 2 za desetinnou čárkou (setiny) NUMBER (7,-2) desetinné číslo s pevnou řádovou čárkou s přesností na 7 číslic počínaje 2. před desetinnou čárkou (zaokr. na stovky) NUMBER (4,5) desetinné číslo s pevnou řádovou čárkou s přesností na 4 číslice počínaje 5. za desetinnou čárkou Databázové systémy 1 - př. 2

26 Databázové systémy 1 - př. 2
Datové typy Oracle Znakové datové typy CHAR (<celé číslo>), NCHAR Řetězec znaků pevné délky <celé číslo> znaků. Maximální délka 2000 znaků, default je 1. VARCHAR2 (<celé číslo>), NVARCHAR2 Řetězec znaků proměnlivé délky, maximálně <celé číslo> znaků či bytů. Maximální délka je 4000, default je 1. Upřesnění: VARCHAR2(20 CHAR) - řetězec znaků proměnlivé délky, maximálně 20 znaků VARCHAR2(20 BYTE) - řetězec znaků proměnlivé délky, maximálně 20 bytů Rozdíl vzniká v případech znaků národních abeced, které potřebují 2-4 B na svoje uložení. Defaultní hodnota zda BYTE či CHAR závisí na nastavení serveru a prostředí. LONG - zastaralé Řetězec znaků proměnlivé délky, max. 2 GB. Databázové systémy 1 - př. 2

27 Databázové systémy 1 - př. 2
Datové typy Oracle Datové typy pro kalendářní a časové hodnoty datum a čas datový a časový interval Oba typy se skládají z polí YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, TIMEZONE_HOUR, TIMEZONE_MINUTE DATE Vyjádření konkrétního datumu a času s přesností na sekundy, rozsah je od př.n.l. do TIMESTAMP (<přesnost sekund>) Struktura obsahující datum a čas s požadovanou přesností (až na miliontiny sekundy pro hodnotu parametru <přesnost sekund>=6). INTERVAL YEAR (<rozsah roků>) TO MONTH K vyjádření delšího časového intervalu. INTERVAL DAY (<rozsah dní>) TO SECOND (<přesnost sekund>) K vyjádření relativně kratšího časového intervalu. Databázové systémy 1 - př. 2

28 Databázové systémy 1 - př. 2
Datové typy Oracle Datové typy pro objemná data long object block (LOB) BLOB - binární objekty do 4GB CLOB – textové (CHAR) objekty do 4GB NCLOB - textové objekty v národních sadách do 4GB RAW – formát pro binární data, v současnosti pouze pro zachování zpětné kompatibility Databázové systémy 1 - př. 2

29 Jak pochopit zápisy syntaxí
< par > parametr, za který se dosazuje konkrétní hodnota {A|B|C} povinná volba jedné z uvedených možností | oddělení variant [ ] nepovinná část … možnost opakování ’ označení konstant typu řetězec znaků Databázové systémy 1 - př. 2

30 Syntaxe příkazu CREATE TABLE
CREATE TABLE <název tabulky> (<specifikace sloupce> [, <název sloupce1> = <výraz1> [, … ] ]) <specifikace sloupce> = {<název sloupce> <datový typ> [<omezení sloupce>] | <omezení tabulky> } < omezení sloupce> = [CONSTRAINT <název omezení> ] { [NOT] NULL | [NOT NULL] UNIQUE | [NOT NULL] PRIMARY KEY | REFERENCES <název tabulky> [(<název sloupce>)] | CHECK (<podmínka>)} Databázové systémy 1 - př. 2

31 Syntaxe příkazu CREATE TABLE /2
< omezení tabulky> = [CONSTRAINT <název omezení> ] { UNIQUE (<seznam sloupců>) | PRIMARY KEY (<seznam sloupců>) | CHECK (<podmínka>) | FOREIGN KEY (<seznam sloupců>) REFERENCES <název tabulky> [(< seznam sloupců>)] | } Databázové systémy 1 - př. 2

32 Databázové systémy 1 - př. 2
CREATE TABLE Vytvoří tabulku dle popsané struktury. Příklad: CREATE TABLE dodavatele ( dodavatel_id number(4), nazev varchar2(100), zastoupeni varchar2(100) ); Strukturu tabulky lze zobrazit příkazem DESC <název tabulky> Databázové systémy 1 - př. 2

33 Databázové systémy 1 - př. 2
CREATE TABLE Omezující podmínky pro sloupce: NOT NULL – hodnota ve sloupci nesmí být NULL UNIQUE – jedinečnost = zakázány duplicity PRIMARY KEY – primární klíč (zakázány duplicity a NULL hodnoty) FOREIGN KEY – cizí klíč (odkazuje na sloupec jiné tabulky – podpora pro udržení integrity dat) CHECK – podmínka pro hodnoty ve sloupci (např. ID INTEGER CHECK ID BETWEEN 0 AND 100) DEFAULT – předdefinovaná hodnota (např. sloupec_1 INTEGER DEFAULT 50) Mysql has this nice column autoincrement attribute that will create unique identifiers for that column. In oracle, it is a bit more complex to create such a fetaure, but allows any customization through the use of two specific oracle elements : sequence and trigger. the first step is to create you table, including the field you plan to use as a  unique autoincremented identifier : create table my_test ( id number, my_test data varchar2(255) ); secondly you can create a sequence for that table - a sequence is a specific oracle command that handles increments. - create sequence test_seq start with 1 increment by 1 nomaxvalue; an finally you can instanciate a trigger for that table forcing auto allocation of the designated column before the insert is performed : create trigger test_trigger before insert on my_test for each row begin select test_seq.nextval into :new.id from dual; end; an alternative to using a trigger would be to invoke the sequence next value within the insert statement : insert into my_test values(test_seq.nextval, 'voila!'); XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Example Number 1 ... create sequence product_seq start with 1 increment 1 / create or replace trigger product_insert before insert for each row begin select productseq.nextval into :new.product_id from dual; end; Example Number 2 ... How to create an autoincrement field in a table with a sequence ... SQLWKS> create table bob(a number , b varchar2(21)); Statement processed. First create a sequence SQLWKS> create sequence x ; Then create the trigger. create trigger y before insert on bob for each row when (new.a is null) begin select x.nextval into :new.a from dual; Example Number 3 ... First create a sequence: create sequence emp_no_seq; By default it increments by 1 starting at 0. Use its values when inserting data into the table: insert into t_emp values (emp_no_seq.nexval, 'Joe Black'); Databázové systémy 1 - př. 2

34 Databázové systémy 1 - př. 2
CREATE TABLE Vytvoří tabulku dle popsané struktury. Příklad: CREATE TABLE employees_demo (employee_id NUMBER(6) PRIMARY KEY, first_name VARCHAR2(20), last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL, VARCHAR2(25) CONSTRAINT emp_ _nn NOT NULL, phone VARCHAR2(20), hire_date DATE DEFAULT SYSDATE CONSTRAINT emp_hire_date_nn NOT NULL, job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, salary NUMBER(8,2) CONSTRAINT emp_salary_nn NOT NULL, commiss_pct NUMBER(2,2), manager_id NUMBER(6), dept_id NUMBER(4), dn VARCHAR2(300), CONSTRAINT emp_salary_min CHECK (salary > 0) , CONSTRAINT emp_ _uk UNIQUE ( ) ) ; Databázové systémy 1 - př. 2

35 Databázové systémy 1 - př. 2
CREATE TABLE Vytvoří tabulku dle popsané struktury. Příklad: CREATE TABLE dodavatele ( dodavatel_id number(4) not null, nazev varchar2(100) not null, zastoupeni varchar2(100), CONSTRAINT dodavatel_pk PRIMARY KEY (dodavatel_id) ); CREATE TABLE produkty ( produkt_id number(8) not null, oznaceni varchar2(30) not null, dodavatel_id number(4) not null, cena number(6), CONSTRAINT fk_dodavatele FOREIGN KEY (dodavatel_id) REFERENCES dodavatele(dodavatel_id) Databázové systémy 1 - př. 2

36 Syntaxe příkazu DROP TABLE
DROP TABLE <název tabulky> Odstraní z databáze tabulku s daným jménem, tj. všechny řádky tabulky, celou strukturu, všechny nad ní definované indexy a všechna případná omezení definovaná nad sloupci či celou tabulkou. Databázové systémy 1 - př. 2

37 Databázové systémy 1 - př. 2
DROP TABLE Příklad: DROP TABLE dodavatele; Databázové systémy 1 - př. 2

38 Syntaxe příkazu ALTER TABLE
ALTER TABLE <název tabulky> ADD (<specifikace sloupců>) <specifikace sloupce> = {<název sloupce> <datový typ> [<omezení sloupce>] | <omezení tabulky> } Příkaz se používá pro přidání sloupců či omezení do tabulky. ALTER TABLE dodavatele ADD mesto varchar2(50); ALTER TABLE dodavatele ADD (mesto varchar2(50), telefon varchar2(13) ); Databázové systémy 1 - př. 2

39 Syntaxe příkazu ALTER TABLE
ALTER TABLE <název tabulky> MODIFY (<specifikace sloupce>) Příkaz se používá pro úpravu specifikace sloupců či omezení do tabulky. ALTER TABLE dodavatele MODIFY zastoupeni varchar2(80) not null; Databázové systémy 1 - př. 2

40 Syntaxe příkazu ALTER TABLE
ALTER TABLE <název tabulky> DROP COLUMN <název sloupce> Příkaz se používá pro odstranění sloupce z tabulky. ALTER TABLE dodavatele DROP COLUMN telefon; Databázové systémy 1 - př. 2

41 Syntaxe příkazu ALTER TABLE
ALTER TABLE <název tabulky> RENAME COLUMN <název sloupce> Příkaz se používá pro přejmenování sloupce tabulky. ALTER TABLE dodavatele RENAME COLUMN mesto to zastoupeni_mesto; Databázové systémy 1 - př. 2

42 Syntaxe příkazu INSERT
INSERT INTO <název tabulky> [(<název sloupce1> [, <název sloupce2> [, … ] ]) ] {<příkaz SELECT> | VALUES [(<výraz1> [, <výraz2> [, … ] ]) ] } Nový (jeden) řádek přidáme do tabulky uvedením hodnot pro všechny sloupce v tabulce. Více řádků najednou přidáme do tabulky pomocí vnořeného dotazu SELECT. Databázové systémy 1 - př. 2

43 Databázové systémy 1 - př. 2
INSERT Příklad: INSERT INTO dodavatele (dodavatel_id, nazev, zastoupeni, mesto) VALUES (1, 'Acer','Acer Czech Republic s.r.o.','Praha 4'); VALUES (2, 'Asus','ASUS Czech s.r.o.','Ostrava'); Databázové systémy 1 - př. 2

44 Syntaxe příkazu UPDATE
UPDATE <název tabulky> [<pojmenování tabulky>] SET <název sloupce1> = <výraz1> [, <název sloupce2> = <výraz2> [, … ] ] [WHERE <podmínka řádku>] Změna hodnot ve sloupcích u těch řádků tabulky, které splňují podmínku uvedenou za klauzulí WHERE. Pokud není klauzule WHERE uvedena, bude provedena změna u VŠECH řádků tabulky. Databázové systémy 1 - př. 2

45 Databázové systémy 1 - př. 2
UPDATE Příklad: UPDATE dodavatele SET nazev = 'HP' WHERE nazev = 'Compaq'; Databázové systémy 1 - př. 2

46 Syntaxe příkazu DELETE
DELETE FROM <název tabulky> [WHERE <podmínka>] Vymazání těch řádků tabulky, které splňují podmínku uvedenou za klauzulí WHERE. Pokud není klauzule WHERE uvedena, budou odstraněny VŠECHNY řádky tabulky. Databázové systémy 1 - př. 2

47 Databázové systémy 1 - př. 2
DELETE Příklad: DELETE FROM produkty WHERE dodavatel_id = 7 or dodavatel_id > 10; Databázové systémy 1 - př. 2

48 Databázové systémy 1 - př. 2
Příkaz SELECT Příkaz SELECT slouží k získávání dat z databáze. SELECT <nazev sloupce(sloupcu)> FROM <nazev tabulky>; Zobrazený příklad, který je ten nejjednodušší, musí obsahovat: Klauzuli SELECT, kde specifikujeme co chceme získat Klazuli FROM, kde specifikujeme odkud to chceme získat Databázové systémy 1 - př. 2

49 Databázové systémy 1 - př. 2
Příkaz SELECT Projekce – nám říká, které sloupce budeme zobrazovat Restrikce (selekce) – nám říká, které řádky budeme zobrazovat Databázové systémy 1 - př. 2

50 Databázové systémy 1 - př. 2
Příkaz SELECT Databázové systémy 1 - př. 2

51 Databázové systémy 1 - př. 2
Příkaz SELECT Výběr dat ze všech sloupců tabulky provedeme použitím zástupného znaku * na pozici názvu sloupce za klauzulí SELECT SELECT * FROM a_hr.zamestnanci; Databázové systémy 1 - př. 2

52 Databázové systémy 1 - př. 2
Příkaz SELECT Výběr dat ze všech sloupců tabulky může provézt také explicitním vyjmenováním všech sloupců SELECT zeme_id, zeme_nazev, region_id FROM a_hr.zeme; Databázové systémy 1 - př. 2

53 Databázové systémy 1 - př. 2
Příkaz SELECT Omezení výběru dat pouze z některých sloupců provedeme výčtem požadovaných sloupců SELECT jmeno, prijmeni, FROM a_hr.zamestnanci; Databázové systémy 1 - př. 2

54 Databázové systémy 1 - př. 2
Příkaz SELECT V příkazu SELECT můžeme používat přímo aritmetické operátory. Například můžeme zobrazit rovnou platy zaměstnanců navýšené o 5%. SELECT jmeno, prijmeni, mzda*1.05 FROM a_hr.zamestnanci; Databázové systémy 1 - př. 2

55 Databázové systémy 1 - př. 2
Příkaz SELECT V příkazu SELECT můžeme používat přímo aritmetické operátory. Například můžeme zobrazit rovnou platy zaměstnanců navýšené o 5%. SELECT jmeno, prijmeni, mzda*1.05 FROM a_hr.zamestnanci; Databázové systémy 1 - př. 2

56 Příkaz SELECT Alias – umožňuje přejmenování sloupce ve výstupu, případně pod-dotazu nebo tabulky SELECT * | sloupec | výraz [ AS alias], … FROM tabulka; SELECT jmeno, prijmeni, mzda*1.05 AS „novy_plat“ FROM a_hr.zamestnanci; Databázové systémy 1 - př. 2

57 Databázové systémy 1 - př. 2
WHERE Klauzule WHERE – provádí v dotazu restrikci Rozšiřuje syntaxi příkazu SELECT na: SELECT <sloupce> FROM <tabulka> [WHERE podmínka(y)] Také se používá u příkazů INSERT, UPDATE a DELETE Databázové systémy 1 - př. 2

58 Databázové systémy 1 - př. 2
WHERE Použití klauzule WHERE nám umožňuje definovat, které řádky se do výsledku zařadí. SELECT jmeno, prijmeni, FROM a_hr.zamestnanci; (vrátí jména, příjmení a y všech zaměstnanců) SELECT jmeno, prijmeni, FROM a_hr.zamestnanci WHERE zamestnanec_id=22; (vrátí jméno, příjmení a pracovníka s id 22) Databázové systémy 1 - př. 2

59 Databázové systémy 1 - př. 2
WHERE Povolené operace v klauzuli WHERE = rovno > větší než >= větší nebo rovno < menší než <= menší nebo rovno <>(!=, ^=) nerovno Databázové systémy 1 - př. 2

60 Databázové systémy 1 - př. 2
WHERE Povolené operace v klauzuli WHERE = rovno > větší než >= větší nebo rovno < menší než <= menší nebo rovno <>(!=, ^=) nerovno Databázové systémy 1 - př. 2

61 Databázové systémy 1 - př. 2
WHERE Povolené operace v klauzuli WHERE BETWEEN … AND rozmezí hodnot IN (NOT IN) výčet hodnot ALL všechny hodnoty ANY některá hodnota LIKE (NOT LIKE) jako EXISTS (NOT EXISTS) existuje IS NULL (IS NOT NULL) je/není NULL Databázové systémy 1 - př. 2

62 Databázové systémy 1 - př. 2
Čas na otázky a praktické ukázky Děkuji za pozornost Databázové systémy 1 - př. 2


Stáhnout ppt "Fakulta elektrotechniky a informatiky"

Podobné prezentace


Reklamy Google