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

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

Slidy ke cvičení DBI026, část 1

Podobné prezentace


Prezentace na téma: "Slidy ke cvičení DBI026, část 1"— Transkript prezentace:

1 Slidy ke cvičení DBI026, část 1
Databázové Aplikace Slidy ke cvičení DBI026, část 1 KSI MFF UK Verze

2 DBI026 -DB Aplikace - MFF UK
MFF mates.ms.mff… Linux Server mates.ms.mff.cuni.cz Databáze devitka (9.2.0) Klienti Linux (9.2.0) Laboratoř UW1 Klienti Win32 (8.0.5, 9.2.0) Laboratoř US1 (u-pl*) Klienti Linux (8.1.5) devitka TCP/IP UW1 u-pl*.ms.mff… DBI026 -DB Aplikace - MFF UK

3 DBI026 -DB Aplikace - MFF UK
MFF - Výhled mates.ms.mff… Linux Server mates.ms.mff.cuni.cz Databáze devitka (9.2.0) Databáze desitka (10.x) Klienti Linux (9.2.0, 10.x) Laboratoř UW1 Klienti Win32 (9.2.0, 10.x) Laboratoř US1 (u-pl*) Klienti Linux (10.x) devitka desitka TCP/IP UW1 u-pl*.ms.mff… DBI026 -DB Aplikace - MFF UK

4 Konfigurace prostředí – UW1
Podle verze klientských aplikací N:\WINDOWS\ORANT\8_0_5\ N:\WINDOWS\ORANT\9_2_0\ (doporučeno) Spustit .\!ORACLE.REG Registruje nastavení prostředí v registru HKEY_CURRENT_USER\SOFTWARE\ORACLE .\!MENU\ Obsahuje odkazy na spustitelné aplikace (dále jen menu) DBI026 -DB Aplikace - MFF UK

5 Konfigurace prostředí – u-pl*
Do spouštěcího (nebo samostatného) skriptu vložit ORACLE_BASE=/DB/oracle export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/8.1.5 # resp. ORACLE_HOME=$ORACLE_BASE/product/current export ORACLE_HOME TWO_TASK=devitka export TWO_TASK PATH=$ORACLE_HOME/bin:$PATH export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:$HOME/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH Samostatný skript spustit v aktuálním shellu pomocí . jméno_skriptu DBI026 -DB Aplikace - MFF UK

6 DBI026 -DB Aplikace - MFF UK
SQL konzola SQL*Plus Základní prostředek pro komunikaci s databází Spuštění Windows Zástupce v menu „SQL Plus“, resp. „SQL Plus Home“ (druhý zástupce má jako pracovní nastaven adresář J:\) .\BIN\PLUS32W.EXE Spuštění Linux sqlplus uvádění hesla na příkazové řádce není doporučeno, lze zjistit příkazem ps DBI026 -DB Aplikace - MFF UK

7 DBI026 -DB Aplikace - MFF UK
SQL konzola SQL*Plus Přihlašovací řetězec definuje jméno databáze V UW1 je přednastavena „devitka“ DBI026 -DB Aplikace - MFF UK

8 DBI026 -DB Aplikace - MFF UK
Příkazy v SQL*Plus SQL*Plus příkazy Vykonávané konzolou, mění její nastavení Jednořádkové, ukončené ENTER, nemusí se ukončit středníkem Zápis na více řádek pomocí rozdělovníku - na konci řádku SQL příkazy Vykonávané serverem Víceřádkové, ukončené středníkem Nemůže obsahovat prázdný řádek, zadání prázdného řádku ukončí zápis příkazu bez jeho odeslání na server DBI026 -DB Aplikace - MFF UK

9 DBI026 -DB Aplikace - MFF UK
Příkazy v SQL*Plus CASE insensitive, vyjma Řetězcových konstant v apostrofech ’Text’, ’TEXT’ , ’text’ , ’TeXt’ jsou navzájem různé Identifikátorů v uvozovkách ”Osoba”, ”OSOBA” , ”osoba” , ”OSoba” jsou navzájem různé identifikátory Osoba, OSOBA , osoba , OSoba jsou shodné s identifikátorem ”OSOBA” DBI026 -DB Aplikace - MFF UK

10 DBI026 -DB Aplikace - MFF UK
SQL*Plus příkazy EXIT, QUIT Ukončení konzoly, běžící transakce je potvrzena DISCONNECT Odpojení od databáze bez ukončení konzoly, běžící transakce je potvrzena CONNECT (Odpojení a) nové připojení k databázi DBI026 -DB Aplikace - MFF UK

11 DBI026 -DB Aplikace - MFF UK
SQL*Plus příkazy SHOW {ALL|parametr} Zobrazení hodnoty parametru konzoly, případně všech parametrů SET parametr hodnota Nastavení hodnoty parametru konzoly DBI026 -DB Aplikace - MFF UK

12 DBI026 -DB Aplikace - MFF UK
SQL*Plus příkaz SET SET LINESIZE n Šířka výstupu ve znacích. SET PAGESIZE n Nastavení výšky stránky v řádcích. SET PAUSE {OFF|ON} Před výstupem každé stránky (i první) počkat na ENTER. SET TRIMSPOOL {OFF|ON} Výstup ořezává všechny mezery zprava na řádce. Důležité při výstupu do souboru, jinak mají řádky velikost LINESIZE. DBI026 -DB Aplikace - MFF UK

13 DBI026 -DB Aplikace - MFF UK
SQL*Plus příkaz SPOOL SPOOL soubor[.lst] Zapnutí spoolování výstupu do souboru. Před zapnutím vhodné zapnout přepínač TRIMSPOOL SPOOL OFF Vypnutí spoolování výstupu do souboru. SPOOL Zjištění stavu spoolování DBI026 -DB Aplikace - MFF UK

14 SQL*Plus příkaz DEFINE
DEFINE proměnná=hodnota Nastavení proměnné prostředí SQL*Plus na danou hodnotu &proměnná Použití proměnné v příkazech, pokud je hodnota nedefinovaná, konzola se na hodnotu zeptá Nahrazení probíhá i v řetězcích &&proměnná Použití proměnné v příkazech, pokud je hodnota nedefinovaná, konzola se na hodnotu zeptá a nadefinuje ji DBI026 -DB Aplikace - MFF UK

15 SQL*Plus příkaz DEFINE
DEFINE _editor=editor.exe Nastavení standardního editoru, používaného v konzoli Předdefinovaný editor notepad.exe pro Windows ed (!) pro UNIX V UNIXu vhodné proměnnou předefinovat define _editor=vi define _editor=joe … DBI026 -DB Aplikace - MFF UK

16 DBI026 -DB Aplikace - MFF UK
Editor v SQL*Plus Konzola si pamatuje poslední zadaný SQL (ne SQL*Plus) příkaz a umožňuje ho měnit pomocí editoru EDIT Volání externího editoru definovaného proměnnou _editor Příkazy vestavěného (velmi omezeného) editoru R[UN] Spuštění posledního (případně editorem změněného) SQL příkazu DBI026 -DB Aplikace - MFF UK

17 Vestavěný editor v SQL*Plus
L[IST] [m[ n]] Výpis všech / m-tého / intervalu řádek Poslední vypsaný řádek je označen znakem „*“ změny pomocí vestavěného editoru se budou týkat tohoto řádku C[HANGE]/vzor/náhrada/ Nahrazení prvního výskytu vzoru náhradním řetězcem Lomítka tvoří oddělovače, mohou být nahrazeny libovolným jiným znakem A[PPEND] text Doplnění textu na konec řádky První mezera tvoří oddělovač, zbytek se připojuje DBI026 -DB Aplikace - MFF UK

18 Vestavěný editor v SQL*Plus
I[NSERT] 1. řádek 2. řádek  Vložení nových řádek za aktivní řádek označený hvězdičkou DEL[ETE] [m[ n]] Smazání aktivního / m-tého / intervalu řádek DBI026 -DB Aplikace - MFF UK

19 DBI026 -DB Aplikace - MFF UK
SQL skripty Textový soubor, obsahující sadu SQL a SQL*Plus příkazů Obvykle s koncovkou .sql LOAD soubor[.sql] Nahrání skriptu s jedním SQL příkazem START Spuštění skriptu Při spouštění konzola hledá a spouští skript login.sql, V něm je možné nadefinovat potřebné nastavení konzole Poziční parametry &1, …, &9. Jsou globální, jakékoli volání skriptu je redefinuje DBI026 -DB Aplikace - MFF UK

20 DBI026 -DB Aplikace - MFF UK
Komentáře v SQL Jednořádkové komentáře, uvozené dvojznakem -- SELECT rc, -- rodné číslo dn, -- datum narození … Víceřádkové komentáře, uzavřené mezi /* a */ /* Seznam všech zaměstnanců pobírajících přídavky na děti */ SELECT * FROM Zam WHERE …; Za ukončovacím středníkem nesmí být na řádce komentář, jinak SQL*Plus nepoznají konec příkazu DBI026 -DB Aplikace - MFF UK

21 SELECT příkaz Vestavěné funkce a operátory Oracle
Úvod do Oracle SQL SELECT příkaz Vestavěné funkce a operátory Oracle

22 DBI026 -DB Aplikace - MFF UK
Demonstrační tabulky Tabulky EMP (Employee) DEPT (Department) Používané v dokumentaci i v řadě příkladů Lze je vytvořit spuštěním DBI026 -DB Aplikace - MFF UK

23 SQL*Plus Příkaz DESCRIBE
Získání stručného popisu objektu v databázi DESC[RIBE] název_objektu DESC EMP DESC DEPT DBI026 -DB Aplikace - MFF UK

24 DBI026 -DB Aplikace - MFF UK
TABULKA DUAL Speciální tabulka s jediným sloupcem DUMMY, obsahující jedinou řádku s hodnotou ’X’ Používá se pro získání hodnoty výpočtu nad konstantami a funkcemi bez parametrů Zaručuje návrat právě jedné řádky s výsledkem Například SELECT 1+1 FROM DUAL; SELECT SysDate, User FROM DUAL; DBI026 -DB Aplikace - MFF UK

25 Vestavěné funkce Oracle
Několik hlavních skupin funkcí Číselné (číslo  číslo) Řetězcové Datumové Konverzní Speciální DBI026 -DB Aplikace - MFF UK

26 Vestavěné číselné funkce Oracle
Obvyklé funkce známé z jiných programovacích jazyků SIN(x), COS(x), … ABS(x), SQRT(x), SIGN(x), … MOD(x,y) ROUND(x) (matematické zaokrouhlování) TRUNC(x) (zaokrouhlování dolů) … DBI026 -DB Aplikace - MFF UK

27 Vestavěné řetězcové funkce Oracle
CONCAT(s1,s2) , operátor || Řetězení, obvykle se téměř výhradně používá přehlednější zápis pomocí operátoru SELECT Concat(’polo’,’vina’) FROM DUAL; SELECT ’tře’||’ti’||’na’ FROM DUAL; DBI026 -DB Aplikace - MFF UK

28 Vestavěné řetězcové funkce Oracle
LENGTH(s) Délka řetězce SUBSTR(s, n[, k]) Podřetězec od n-tého znaku (počítáno od jedné) o délce k znaků, resp. do konce řetězce Pokud je n záporné, počítá se n-tý znak od konce SUBSTR(’babička’,3,3)  ’bič’ SUBSTR(’babička’,-3,1)  ’č’ DBI026 -DB Aplikace - MFF UK

29 Vestavěné řetězcové funkce Oracle
INSTR(Txt, Vzor[, n[, k]]) Pozice k-tého výskytu Vzoru v textu, počínaje n-tým znakem. Pokud je n záporné, počítá se n-tý znak od konce INSTR(’babička’,’bič’)  3 INSTR(’babička’,’a’)  2 INSTR(’babička’,’a’,4)  7 INSTR(’babička’,’a’,1,2)  7 INSTR(’babička’,’a’,3,2)  0 DBI026 -DB Aplikace - MFF UK

30 Vestavěné řetězcové funkce Oracle
UPPER(s), LOWER(s) Převod na velká, resp. malá písmena INITCAP(s) První Písmeno Každého Slova Velké, Ostatní Písmena Malá DBI026 -DB Aplikace - MFF UK

31 Vestavěné řetězcové funkce Oracle
LTRIM(Txt [,Znaky]) Z řetězce Txt odřízne zleva všechny znaky, nacházející se v řetězci Znaky Standardně ořezává mezery LTRIM(’babička’,’abc’)  ’ička’ RTRIM(Txt [,znaky]) Totéž zprava RTRIM(’babička’,’abc’)  ’babičk’ TRIM(Txt [,znaky]) Totéž oboustranně DBI026 -DB Aplikace - MFF UK

32 Vestavěné řetězcové funkce Oracle
LPAD(Txt, n, [,Vzor]) Doplňuje zleva řetězec Txt na celkovou délku n znaků. Pro doplňování používá cyklicky znaky z řetězce Vzor. Standardně doplňuje mezery. LPAD(’ička’,7,’ba’)  ’babička’ RPAD(Txt, n, [,Vzor]) Totéž zprava DBI026 -DB Aplikace - MFF UK

33 Vestavěné řetězcové funkce Oracle
REPLACE(Txt, Vzor, Náhrada) Nahradí všechny výskyty vzoru v textu Txt. REPLACE(’babička’,’ba’,’kra’)  ’krabička’ REPLACE(’babička’,’a’,’(a)’)  ’b(a)bičk(a)’ DBI026 -DB Aplikace - MFF UK

34 Vestavěné řetězcové funkce Oracle
TRANSLATE(Txt, Vzor, Náhrada) Nahradí v textu všechny výskyty znaků ze Vzoru pozičně odpovídajícími znaky Náhrady. Pokud je náhrada kratší, znaky bez náhrady se odstraňují TRANSLATE(’babička’,’aei’,’AEI’)  ’bAbIčkA’ TRANSLATE(’babička’,’aei’,’AE’)  ’bAbčkA’ DBI026 -DB Aplikace - MFF UK

35 Vestavěné řetězcové funkce Oracle
TRANSLATE(Txt, Vzor, Náhrada) Vhodné na ověřování formátu dat TRANSLATE(r_cislo, ’ ’,’ ’) vrací pro korektní r.č. ’999999/999’ nebo ’999999/9999’ DBI026 -DB Aplikace - MFF UK

36 Vestavěné datumové funkce Oracle
SYSDATE Aktuální datum a čas na serveru D + n Datum D plus n dní SELECT SYSDATE + 18/24 FROM DUAL; O 18 hodin více D2 – D1 Rozdíl mezi daty ve dnech DBI026 -DB Aplikace - MFF UK

37 Vestavěné datumové funkce Oracle
ADD_MONTHS(D,n) O n měsíců později ADD_MONTHS(’ ’,1)  ’ ’ ADD_MONTHS(’ ’,2)  ’ ’ LAST_DAY(D) Poslední den v měsíci k datu D LAST_DAY(’ ’)  ’ ’ NEXT_DAY(D,název) Datum prvního dne s daným názvem po datu D NEXT_DAY(’ ’,’monday’)  ’ ’ NEXT_DAY(’ ’,’sunday’)  ’ ’ DBI026 -DB Aplikace - MFF UK

38 Vestavěné datumové funkce Oracle
TO_CHAR(D[, Maska]) Datum D převedené na textový formát dle masky DD – den 1..31 MM – měsíc 1..12 YY, YYY, YYYY – rok na 2, 3, 4 cifry HH, HH24 – hodina 0..12, resp MI – minuta 0..59 SS – sekunda 0..59 Mon, MON, mon, Month, MONTH, month – měsíc zkratkou, slovem D – den v týdnu 0..6, resp podle kalendáře DDD – den v roce TH – předchozí číslo je s pořadovou koncovkou (anglickou) SP – předchozí číslo je zapsáno slovy (anglicky) … – řada dalších TO_CHAR(SYSDATE,’dd.mm.yyyy hh24:mi:ss’)  ’ :47:12’ DBI026 -DB Aplikace - MFF UK

39 Vestavěné speciální funkce Oracle
USER Jméno přihlášeného uživatele ROWNUM V SELECT klauzuli pořadové číslo řádky na výstupu Vyhodnocuje se dříve než ORDER BY klauzule! SELECT ROWNUM, ENAME FROM EMP WHERE ROWNUM<=5 DBI026 -DB Aplikace - MFF UK

40 Relační model Oracle SQL
Vytváření tabulek a pohledů Integritní omezení Aktualizace dat

41 DBI026 -DB Aplikace - MFF UK
Vytváření tabulek CREATE TABLE jm_tab ( jm_sloupce typ [(velikost)] [omezení], …, omezení_řádky, … ); CREATE TABLE Osoba ( rc varchar2(11) CONSTRAINT Osoba_PK PRIMARY KEY, jmeno varchar2(50) NOT NULL ); DBI026 -DB Aplikace - MFF UK

42 DBI026 -DB Aplikace - MFF UK
Vytváření tabulek CREATE TABLE jm_tab AS SELECT …; CREATE TABLE OsobaX AS SELECT * FROM Osoba WHERE jmeno>=’X’; Takto vytvořená tabulka nemá definovaná žádná integritní omezení, (ani primární klíč) Nutno doplnit DBI026 -DB Aplikace - MFF UK

43 DBI026 -DB Aplikace - MFF UK
Integritní omezení [CONSTRAINT jméno] definice_omezení NULL, resp. NOT NULL UNIQUE PRIMARY KEY CHECK (podmínka) REFERENCES tabulka(sloupec) [ON DELETE {CASCADE|SET NULL}] DEFAULT hodnota DBI026 -DB Aplikace - MFF UK

44 DBI026 -DB Aplikace - MFF UK
Datový slovník Informace o tabulkách jsou uloženy v USER_OBJECTS (seznam všech vlastních objektů) USER_TABLES (seznam tabulek) USER_TAB_COLUMNS (seznam sloupců tabulek) USER_CONSTRAINTS (seznam omezení) DBI026 -DB Aplikace - MFF UK

45 Řádková integritní omezení
Mohou kontrolovat vzájemný vztah více sloupců jednoho řádku CHECK (zacatek <= konec) Mohou definovat vícesloupcové primární a kandidátní a cizí klíče PRIMARY KEY (zacatek, konec) FOREIGN KEY (zacatek, konec) REFERENCES Rodic (x, y) DBI026 -DB Aplikace - MFF UK

46 Atributy integritních omezení
ENABLED / DISABLED Omezení je aktivní a platnost se ověřuje ALTER TABLE tabulka {ENABLE|DISABLE} CONSTRAINT omezení; DEFERRED / NOT DEFERRED MODIFY CONSTRAINT omezení [[NOT] DEFERRABLE] [INITIALLY {IMMEDIATE|DEFERRED}]; Ověření se odloží/neodloží na konec transakce DBI026 -DB Aplikace - MFF UK

47 DBI026 -DB Aplikace - MFF UK
Vkládání dat INSERT INTO tabulka [( sloupec1, sloupec2, …)] VALUES ( hodnota1, hodnota2, …); Pokud nejsou sloupce uvedeny, převezmou se všechny sloupce tabulky v pořadí dle definice Neuvedené sloupce budou inicializovány DEFAULT hodnotou DBI026 -DB Aplikace - MFF UK

48 DBI026 -DB Aplikace - MFF UK
Vkládání dat INSERT INTO tabulka [( sloupec1, sloupec2, …)] SELECT …; Pokud nejsou sloupce uvedeny, převezmou se všechny sloupce tabulky v pořadí dle definice Neuvedené sloupce budou inicializovány DEFAULT hodnotou DBI026 -DB Aplikace - MFF UK

49 DBI026 -DB Aplikace - MFF UK
Aktualizace dat UPDATE tabulka SET sloupec1=hodnota1, … [WHERE podmínka]; Pokud není podmínka definována, aktualizují se všechny řádky DBI026 -DB Aplikace - MFF UK

50 DBI026 -DB Aplikace - MFF UK
Rušení dat DELETE FROM tabulka [WHERE podmínka]; Pokud není podmínka definována, ruší se všechny řádky! DBI026 -DB Aplikace - MFF UK

51 DBI026 -DB Aplikace - MFF UK
Rušení tabulky DROP TABLE tabulka [CASCADE CONSTRAINTS]; Provádí automaticky potvrzení transakce S klauzulí CASCADE CONSTRAINTS zruší cizí klíče od podřízených tabulek DBI026 -DB Aplikace - MFF UK

52 DBI026 -DB Aplikace - MFF UK
Změna definic ALTER TABLE tabulka ADD ( definice sloupce | omezení, … ); ALTER TABLE tabulka DROP COLUMN sloupec; ALTER TABLE tabulka DROP CONSTRAINT omezení; ALTER TABLE tabulka MODIFY redefinice sloupce; DBI026 -DB Aplikace - MFF UK

53 DBI026 -DB Aplikace - MFF UK
Pohledy Pojmenované dotazy Skrývání dat (řádků či sloupců) před uživateli Zjednodušování dotazů. CREATE [OR REPLACE] VIEW Pohled [(sloupec1, …)] AS SELECT [WITH {READ ONLY | CHECK OPTION}]; WITH READ ONLY: Pohled nelze aktualizovat WITH CHECK OPTION: Pohled lze aktualizovat pouze tak, aby řádky stále patřily do pohledu DBI026 -DB Aplikace - MFF UK

54 DBI026 -DB Aplikace - MFF UK
Pohledy DROP VIEW Pohled; ALTER VIEW Pohled COMPILE; Informace o pohledech jsou uloženy v USER_VIEWS USER_TAB_COLUMNS USER_UPDATABLE_COLUMNS DBI026 -DB Aplikace - MFF UK

55 DBI026 -DB Aplikace - MFF UK
Synonyma Alternativní názvy pro již existující objekty (tabulky, pohledy, synonyma, …) CREATE [PUBLIC] SYNONYM nové_jméno FOR [schema.]staré_jméno; Všechny dotazy a manipulace s daty prostřednictvím identifikátoru nové_jméno jsou ekvivalentní příkazům používajícím staré_jméno DBI026 -DB Aplikace - MFF UK

56 DBI026 -DB Aplikace - MFF UK
Synonyma DROP [PUBLIC] SYNONYM nové_jméno; Informace o synonymech jsou uloženy v USER_SYNONYMS DBI026 -DB Aplikace - MFF UK

57 DBI026 -DB Aplikace - MFF UK
Funkce a NULL hodnoty Většina funkcí, dostanou-li za některý parametr NULL, vrací NULL Oracle: v řetězcových fcích i jinde (NULL ~ ’’) ’Jan’||NULL||’ ’||NULL||’Novák’’Jan Novák’ Bohužel odchylka od ANSI, kde NULL má být disjunktní od libovolné platné hodnoty jakéhokoli typu Ve speciálních funkcích se s NULL hodnotami počítá NVL, NVL2 a COALESCE DECODE DBI026 -DB Aplikace - MFF UK

58 Funkce NVL, NVL2 a COALESCE
NVL(výraz, if_null_hodnota) Oracle SQL - pokud je výraz NULL, vrací druhý argument, jinak vrací výraz NVL2(výraz, if_null, if_not_null) Oracle 9+ SQL - pokud je výraz NULL, vrací druhý argument, jinak třetí argument COALSECE(výraz1, výraz2, …) ANSI SQL, Oracle 9+ SQL, vrací první definovaný výraz ze seznamu DBI026 -DB Aplikace - MFF UK

59 DBI026 -DB Aplikace - MFF UK
Agregační funkce AVG(x), SUM(x), MIN(x), MAX(x), COUNT(DISTINCT x) NULL hodnoty se neuvažují COUNT(x) NULL hodnoty se korektně započítají DBI026 -DB Aplikace - MFF UK

60 Funkce LEAST a GREATEST
LEAST(výraz1, výraz2, …) Akceptuje různé datové typy Vrací hodnotu nejmenšího uvedeného výrazu NULL hodnota v seznamu má za následek výsledek NULL GREATEST(výraz1, výraz2, …) Vrací hodnotu největšího uvedeného výrazu DBI026 -DB Aplikace - MFF UK

61 DBI026 -DB Aplikace - MFF UK
Funkce DECODE DECODE(výraz, vzor1, hodnota1, … [, default]) Oracle SQL, pokud je výraz roven i-tému vzoru, je výsledkem i-tá hodnota, jinak default, případně NULL Vzorem může být i NULL hodnota Dekódování SELECT DECODE(den,’S’,’Sobota’,’N’,’Neděle’,’Pracovní den’) Rozdělení jedné hodnoty do více sloupců SELECT Cena, Decode(DPH,5,Cena*0.05,NULL) Dph5, Decode(DPH,19,Cena*0.19,NULL) Dph19 FROM Prodej; DBI026 -DB Aplikace - MFF UK

62 DBI026 -DB Aplikace - MFF UK
Příklady Dána tabulka DBI026(Grupik VARCHAR2(100)) Data ve formátu ’Jmeno Prijmeni (login) …’ Napište dotaz, který vrátí seznam loginů SELECT Substr(Grupik, Instr(Grupik,’(’)+1, Instr(Grupik,’)’) - Instr(Grupik,’(’) – ) Login FROM DBI026; DBI026 -DB Aplikace - MFF UK

63 DBI026 -DB Aplikace - MFF UK
Příklady Dána tabulka DBI026(Grupik VARCHAR2(100)) Data ve formátu ’Jmeno Prijmeni (login) …’ Napište dotaz, který vrátí seznam ve tvaru PŘÍJMENÍ Jméno, setříděný vzestupně SELECT Upper(Substr(Grupik,Instr(Grupik,’ ’)+1, Instr(Grupik,’(’)-Instr(Grupik,’ ’)–2) ||’ ’||Substr(Grupik,1,Instr(Grupik,’ ’)-1) PrJm FROM DBI026 ORDER BY PrJm; DBI026 -DB Aplikace - MFF UK

64 DBI026 -DB Aplikace - MFF UK
Příklady Dána tabulka DBI026(Grupik VARCHAR2(100)) Data ve formátu ’Jmeno Prijmeni (login) …’ Vytvořte pohled, který bude obsahovat sloupec PrJm obsahující „PŘÍJMENÍ Jméno“ CREATE VIEW Student AS SELECT Upper(Substr(Grupik,Instr(Grupik,’ ’)+1, Instr(Grupik,’(’)-Instr(Grupik,’ ’)–2) ||’ ’||Substr(Grupik,1,Instr(Grupik,’ ’)-1) PrJm FROM DBI026; DBI026 -DB Aplikace - MFF UK


Stáhnout ppt "Slidy ke cvičení DBI026, část 1"

Podobné prezentace


Reklamy Google