Title: Az Oracle SQL 1.
1Az Oracle SQL 1.
2A rádiótelefonokat kérem KIKAPCSOLNI!
3Ajánlott irodalom
- Szelezsán János SQL kézikönyv(alapvetoen ezt
követjük, a példa-adatbázis is innen való) - George Koch, Kevin Loney Oracle8i teljes
referencia
4Történelem 1.
- E. F. Codd, 1970 relációs adatmodell("A
Relational Model of Data for Large Shared Data
Banks", Communications of the ACM) - P. Chen, 1976 kiterjeszti a kulcsok
halmazelméleti leÃrásával - IBM, 1976 adatbázisgép tervének közzététele
- Alapja az R adatbázis
- Kidolgozói Codd és Chen
5Célkituzések IBM-nél
- A tárolás módja és a logikai adatszerkezet
független legyen egymástól - Külön adatbázisnyelv, ami szabványosÃtja
- az adatszerkezet definiálását
- az adatok kezelését
- az adatok biztonságára vonatkozó eloÃrásokat
- Az adatkezelo utasÃtások az adatbevitel -
módosÃtás - törlés logikáját követik, a fizikai
muveleteket elrejtik - Munkájuk eredménye a SEQUEL nyelv (Structured
English Query Language) - tervezoi D. D. Chamberlin, R. F. Boyce
6Történelem 2.
- A SEQUEL név késobb SQL-re rövidül
- Hosszú csend, nincs jelentos fejlesztés az
IBM-nél (védik a piacon lévo termékeiket?) - Relational Software, 1979 az SQL elso,
kereskedelemben hozzáférheto megvalósÃtása - Új cégek jelennek meg saját relációs
adatbáziskezelovel és SQL-lel - 1983 Oracle (adatbáziskezelojük Oracle)
- 1984 Relational Co. (adatbáziskezelojük
Informix)
7Történelem 3.
- 1986 ANSI szabvány az SQL alaputasÃtásaira
(SQL-86, vagy SQL-1) - 1987 ISO szabvány az SQL alaputasÃtásaira
(SQL-87) - Új cégek, növekvo verseny, az IBM is erosÃt
- 1989 második ISO szabvány az SQL-re, újabb
területeket szabványosÃt (SQL-89) - 1992 harmadik ISO szabvány az SQL-re (SQL-92,
vagy SQL-2)
8Történelem 4.
- 1996 a tárolt eljárások és függvények
szabványosÃtása - 1999 ISO szabvány (SQL-1999, vagy SQL-3)
- 2003 ISO szabvány (SQL-2003)
- 2006 ISO szabvány (SQL-2006)
- A szabványok kompromisszumok, csak a meglévo
gyakorlatot szentesÃtik! Minden megvalósÃtás
tartalmaz eltéréseket!
9Illik tudni...
- Az Oracle egy cég neve, 1983-ban alakult
- Többféle programtermékük is van
- Ezek közül a legismertebb az Oracle
adatbáziskezelo - Különbözo operációs rendszerekre létezik
- Az idok során több verziója is elkészült
- Mi az Oracle 9i-t használjuk
10Ismerkedési lehetoségek
- Kipróbálás céljából a teljes rendszer letöltheto
ingyenesen az Oracle honlapjáról (www.oracle.com) - A teljes (angol nyelvu) dokumentáció elérheto az
Interneten több helyen is - Nálunk a cÃme http//www.ttk.pte.hu/oracle/
- Az Oracle Press és az OReilly könyvei
11A gyári dokumentáció fontosabb könyvei
- Error Messages
- Master Glossary
- Master Index
- SQL Reference
- SQLPlus Users Guide and Reference
12Az SQL nyelv bemutatása
13Az SQL jelentosége
- Az Oracle adatbázis csak SQL nyelvu utasÃtásokkal
érheto el!
14Az SQL nyelv fontosabb formai jellemzoi
- A kulcsszavakban nincs különbség a kis- és
nagybetu között - select, Select, SELECT egyenértéku
- Az utasÃtások végén pontosvesszo van
- Az utasÃtások szabadon széttörhetok több sorra
15Az utasÃtások szerkezete
- Követik a beszélt nyelv logikáját, kiolvasva
értelmes, kerek angol mondatokat kapunk - Az utasÃtások szakaszokra (záradék, clause)
oszthatók - minden szakaszt jellemzo kulcsszó vezet be
- az egyes szakaszok pontosÃtják az utasÃtás
tárgyát és a végrehajtás feltételeit
16Példa SQL utasÃtásra
alaputasÃtás
- SELECT vevokod, nev1, telefon
- FROM vevok
- WHERE nev1 LIKE K
- ORDER BY nev1, vevokod
WHERE- szakasz válogatás
ORDER BY szakasz a rendezés megadása
17Az utasÃtások fajtái
- AdatdefinÃciós CREATE, ALTER, DROP
- DDL, data definition language
- Adatkezelési SELECT, INSERT, UPDATE, DELETE
- DML, data manipulation language
- Adatbiztonsági GRANT, REVOKE
- DCL, data control language
- KiegészÃto utasÃtások az egyes megvalósÃtásokban
- a tárolás eloÃrása
- az adatmentés és a visszatöltés elvégzése
- a muködés körülményeinek beállÃtása
18A NULL érték
- Ismeretlen, határozatlan, hiányzó adatot jelöl
- Bármilyen adattÃpusú mezo értéke lehet NULL
- Ha szerepel egy kifejezésben, akkor az egész
kifejezés értéke NULL, kivéve - TRUE OR NULL értéke TRUE
- FALSE AND NULL értéke FALSE
- Semmivel sem egyenlo (önmagával se!)
- X NULL értéke mindig FALSE
- NULL NULL értéke is FALSE
- Kezelése
- feltételekben pl. X IS NULL, X IS NOT NULL
- feldolgozásnál NVL függvény (pl. 0-val
helyettesÃtheto)
19Az SQL utasÃtások feldolgozása
- Az alkalmazás egy SQL utasÃtást (szöveg!) küld az
adatbázisba - Az adatbázis ellenorzéseket végez
- szintaxis
- a hivatkozott objektumok megléte, az adattÃpusok
helyessége - jogosultság
- Az adatbázis elvégzi a kért utasÃtást
- Adatokat és / vagy állapot-információkat ad vissza
SQL utasÃtás
adatbázis
alkalmazás
adatok
20Az utasÃtások végrehajtásának követése
- Az SQL utasÃtások végrehajtási módjáról és annak
hatékonyságáról felvilágosÃtást lehet kérni - További információk a gyári dokumentációbanSQLP
lus Users Guide and Reference,9. fejezet
Tuning SQLPlus
21SQL utasÃtások használata programból 1.
- Sok magasszintu nyelvbe beiktathatók SQL
utasÃtások megfelelo szintaktikával - A befogadó (gazda, host) programban megfelelo
adatszerkezetek kellenek az adatcsere
lebonyolÃtásához - A forrásnyelvi programot egy elofordÃtó
(precompiler) feldolgozza - az SQL utasÃtásokat megfelelo gazdanyelvi
eljáráshÃvásokkal helyettesÃti - tisztán gazdanyelvi program keletkezik
22SQL utasÃtások használata programból 2.
- Ezt a szokásos módon lefordÃtják
- Szerkesztéskor (link) az SQL-t feldolgozó
eljárásokat tartalmazó könyvtárat is hozzá kell
szerkeszteni - Az Oracle a C/C, COBOL, FORTRAN és PL/I részére
szállÃt elofordÃtót
elo- ford.
ford.
link
gazdanyelv SQL
gazdanyelv
gépi kód
futtatható program
SQL könyvtár
23SQL utasÃtások használata programból 3.
- A közösen használt változók deklarálásaEXEC SQL
INCLUDE SQLCAEXEC SQL BEGIN DECLARE
SECTION szokásos gazdanyelvi deklarációkEXEC
SQL END DECLARE SECTION - Az SQL utasÃtások azonosÃtásaEXEC SQL
állapot-információ, hibakód
24A kliens-server környezet
- Az adatbáziskezelo egy szerveren fut (nálunk
Linux alatt) - A használatához a kliens gépekre megfelelo
programot kell telepÃteni - megfelelo módon elküldi az SQL utasÃtásokat
- fogadja az adatbázisból érkezo adatokat
- Az Oracle által szállÃtott hagyományos kliens
program az SQLPlus - Újabb, kényelmesebb az SQL Developer
- Mindketto többfajta operációs rendszerre is
létezik
25Az SQLPlus
26Az SQLPlus indÃtása a tantermekben
- Nincs mindegyik teremben installálva!
- Start menü / Programok / Oracle - OraHome92 /
Application Development / SQL Plus - Bejelentkezés
- Felhasználó tanfxx (xx a gép száma, pl. tanf06)
- Jelszó ugyanaz
- Bejelentkezési oratanf (ez az adatbázis neve,
ahova be akarunk lépni) - A bejelentkezésnél a kis- és nagybetuk
egyenrangúak
27Kilépés az SQLPlusból
- A harmadik sikertelen belépési kÃsérletnél
automatikusan leáll - EXIT parancs
- QUIT parancs
- Az ablak bezárása
28SQL - SQLPlus - PL/SQL
- SQL
- szabványos lekérdezo nyelv
- az Oracle egy kiterjesztett SQL-t használ
- SQLPlus
- kliens program, egy ablak az SQL parancsok
beÃrására (Oracle specialitás) - PL/SQL
- hagyományos programozási nyelv pl. a tárolt
eljárások megÃrásához (Oracle specialitás)
29Az SQLPlus használata 1.
- Alapvetoen SQL parancsok kiadására
- Saját parancsai is vannak (a környezet
beállÃtására) - A kis- és nagybetuk egyenrangúak
- A parancsokat pontosvesszovel zárjuk
- Az SQL parancsok szabadon több sorra törhetok
30Az SQLPlus használata 2.
- Fapados!!!
- A / az utolsó parancsot újra végrehajtja
- A korábbi parancsok javÃtása, újbóli kiadása
- van egy saját nehézkes editora
- a legjobb az egérrel kijelölni és átmásolni
31Az SQLPlus testreszabása
- SELECT FROM scott.emp
- a rekordok két sorra tördelodnek
- SET LINESIZE 120
- a sor hosszát 120 karakterre állÃtja
- most felesleges oszlopfejléceket kapunk 10 rekord
után - SET PAGESIZE 20
- csak 20 rekord kiÃrása után kapunk oszlopfejlécet
32Az SQL Developer
33Mi is az SQL Developer?
- Fejlesztok és adatbázis-adminisztrátorok részére
készÃtett kliens oldali eszköz - Az adatbázis objektumainak áttekintésére
- SQL utasÃtások kényelmes kiadására
- PL/SQL-ben Ãrt programok fejlesztésére
- a forráskód szerkesztésére
- a programok futtatására
- hibakeresésre
- Javaban készült, csak Oracle 9i-tol kezdve
használható - Windowsra, Linuxra, MacOS-re
34Hogy juthatunk hozzá?
- Nem része az adatbáziskezelovel szállÃtott Oracle
Client programgyujteménynek - Önálló termék
- Ingyen letöltheto az Oracle honlapjáról és
szabadon felhasználható
35Az SQL Developer indÃtása
- Nem látszik a Start menüben a programok között
- pl. az Intézobol indÃtható dupla kattintással
- IndÃtáskor nem jön létre automatikusan a
kapcsolat az adatbázissal! - bejelentkezés a Connections fülnél a kapcsolat
megnyitásával - Kilépés a szokásos módon
36Új kapcsolat létrehozása
- Kattintás az eszköztár New ikonján
- A felnyÃló ablakra OK
- A következo párbeszédablakban
- Connection name kifejezo nevet adunk
- Username értelemszeruen
- Password értelemszeruen
- Hostname oracle.szk
- Port 1521
- SID oraokt
37Az SQL Developer leÃrása
- Csak angolul!
- A saját menüjében (Help / Table of Contents)
- Az Oracle honlapján egyéb általános ismertetok is
találhatók
38Fo részei
- Navigátor (Connections)
- SQL Worksheet
- Táblázatos adatlekérdezo és módosÃtó felület
- Forráskód-szerkeszto
- tárolt programok szerkesztoje
- adatbázis-triggerek szerkesztoje
- PL/SQL futtató felület
- a kód végrehajtása
- nyomkövetés
- Listázó (Reports)
39A navigátor
a már definiált adatbázis-kapcsolatok
a megnyomásával megnyÃlik a lista
az elérheto objektumok
40Az SQL Worksheet
a parancsok beÃrása
az eredmény megjelenÃtése
41Az Oracle munkakörnyezete
42Objektumok egy adatbázisban 1.
- Tábla (adattábla, table) az adatok tárolási
helye - Nézet (nézettábla, view)
- meglévo táblákból kiválogatott / származtatott
adatokat tartalmaz (inkább szolgáltat) - táblaként kezelheto
- mint a választó lekérdezés Accessben
- Index az adatok gyors visszakeresését segÃto
segéd-információk - Sorozat (sequence) egyedi egész értékeket
szolgáltat - hasonló szerep, mint a számláló adattÃpusnak
Accessben
43Objektumok egy adatbázisban 2.
- Tárolt eljárások (function, procedure, package)
PL/SQL nyelven Ãrt, az adatbázisban tárolt és az
adatbázis-szerveren futó eljárások / függvények /
programcsomagok - Trigger különleges PL/SQL eljárás
- nem az alkalmazás hÃvja, hanem bizonyos
adatbázis-események (pl. rekord beszúrása)
hatására automatikusan elindul - ellenorzésre, az integritás biztosÃtására
használjuk - Az újabb Oracle verziók a PL/SQL mellett a Java
használatát is támogatják
44A DUAL tábla
- Az Oracle specialitása
- Egy sora és egy oszlopa van
- Minden felhasználónak van rá SELECT jogosultsága
- Jól használható számÃtások végrehajtatására vagy
függvények kiértékelésére - SELECT 23 FROM DUAL
- SELECT USER, SYSDATE FROM DUAL
45A TNSNAMES.ORA fájl
- Egyszeru szövegfájl
- A hagyományos kliensprogramok esetében minden
kliensgépen megtalálható(nálunk a
C\oracle\ora92\network\Admin-ban) - Az adatbázisok nevéhez megadja a hálózati helyet
- A karbantartásához külön program is vanStart
menü / Programok / Oracle - OraHome92 /
Configuration and Migration Tools / Net Manager
46A definiált felhasználók
- Az ALL_USERS view tartalmazza az adataikat
- USER_USERS csak a saját adataink, de több (pl.
hogy meddig érvényes a login nevünk) - Nagyon sok rendszer-view-nak van egy ALL_ és egy
USER_ változata - Ezek a SYS nevu felhasználó tulajdonában vannak
47A SCOTT felhasználó
- Az Oracle telepÃtésekor egy minta-adatbázis is
telepÃtheto - egy SCOTT nevu felhasználó TIGER jelszóval
- néhány tábla adatokkal
- Nagyon sok Oracle példa hivatkozik ezekre az
adatokra
48Mások tábláinak megnézése
- ALL_TABLES rendszer-view
- minden olyan tábla adatait taralmazza, amihez
hozzáférhetünk - SELECT table_name FROM all_tables WHERE
ownerSCOTT - A tábla neve elott meg kell adni a tulajdonost
- SELECT FROM scott.emp
49A DEPT tábla
- A tábla szerkezetének megnézése
- DESCR scott.dept
- DEPT department (részleg)
- DEPTNO department number (a részleg száma)
- DNAME department name (a részleg neve)
- LOC location (helység)
50Az EMP tábla
- EMP employee, alkalmazott
- EMPNO employee number, az alkalmazott kódja
- ENAME employee name, az alkalmazott neve
- JOB munkakör
- MGR manager, a fonökének a kódja
- HIREDATE belépési dátum
- SAL salary, fizetés
- COMM commission, ???
- DEPTNO department number (a részleg száma)
51A példa-adatbázis szerkezete
52A példa-adatbázis szerkezete
- A Stolnicki-könyvbol átvéve, egyszerusÃtve
- A mezotÃpusok az Oracle lehetoségeihez igazÃtva
vevok
rendelések
a rendelések tételei
cikktörzs
53A vevok adatai (VEVOK tábla)
54A rendelések adatai (RENDEL tábla)
55A rendelések tételei (RTETEL tábla)
56A cikkek adatai (CIKK tábla)