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)