Transcription of SQL (Structured Query Language) strukturált …
1 SQL ( structured Query Language) struktur lt lek rdez nyelv r vid ismertet seTartalomjegyz k:1. LTAL NOS JELLEMZ SELECT LEK RDEZ UTAS T EGYSZER LEK RDEZ AZ EREDM NYSOROK RENDEZ SOROK KIV LASZT SA, LEK RDEZ S KERES SI FELT SZ RMAZTATOTT ADATOK, SQL SOR-F GGV CSOPORTOK K PZ SE, SQL CSOPORT-F GGV EGYM SBA GYAZOTT T BL K SSZEKAPCSOL SA (JOIN).. HIERARCHIA LEK RDEZ SE DML (ADATMANIPUL CI S, ADATKEZEL NYELV ).. ADATOK LEK RDEZ SE - L SD. 2. ADATOK ADATOK M DOS T ADATOK T RL DDL ( ADATDEFIN CI S NYELV ).. ALAPT BLA L TREHOZ SA, M DOS T SA, T RL N ZETT BLA L TREHOZ SA, T RL INDEXEK L TREHOZ SA, T RL SZEKVENCI K L TREHOZ SA, T RL SE DCL ( ADATVEZ RL NYELV ).. TRANZAKCI KEZEL FELHASZN L K KEZEL SE, FELHASZN L I JOGOSULTS GOK SZAB LYOZ ltal nos jellemz kAz SQL nyelv a rel ci s adatb zis-kezel k (RDBMS: Relational Batabase Management System) (pl.)
2 ORACLE, MS SQL Server, INGRES, INFORMIX, DB2, SYBASE, NOVELL XQL, PROGRESS, stb.) szabv nyos adatb zis nyelve. Jellemz i: -Nem algoritmikus, deklarat v nyelv:Parancsnyelv jelleg , azaz l nyeg ben azt fogalmazhatjuk meg vele, hogy mit akarunk csin lni, a hogyant azaz a feladat megold si algoritmus t nem kell a felhaszn l nak megadni. Nincsenek benne az algoritmikus nyelvekben megszokott utas t sok (ciklusok, felt teles el gaz sok, stb.)-Halmazorient lt:T bl kat mint a sorok (rekordok) halmaz t tekintj k. Az utas t sban megfogalmazott felt telnek eleget tev sszes sor r szt vesz a m L. Nagy va - SQL munkaanyag1-Teljes adat - nyelv f ggetlens g: fizikai, s logikai szintenFizikai szinten: az adatok fizikai t rol si, hozz f r si, br zol si m dj ban bek vetkez v ltoz skor nincs sz ks g a programok m dos t s szinten: a programokat nem befoly solja az adatok logikai szerkezet nek megv ltoz sa: pl.
3 Sorok, oszlopok sorrendje, j oszlopok, indexek, tablespace-ek, nyos: Illeszkedik az SQL szabv nyhoz: SQL89 (SQL1), SQL92 (SQL2), SQL99 (SQL3).Egy szabv nynak k telez , aj nlott, szabadon v lasztott r szei szabv nyban van egy SQL utas t scsoport, amelyet minden SQL alap szoftver implement ci nak meg kell val s tani, de mindegyik implement ci plusz lehet s get is ny jt a standard SQL-hez k pest, azaz fel lr l kompatibilis a szabv s: a leg jabb SQL szabv ny az objektumorient lt alapelveket is mag ba foglalja. Objektumrel ci s adatb zis (ORDB Object Relational Database) s az ezt kezel ORDBMS (Object Relational Database Management System) rendszer a rel ci s (adatstrukt ra) s az objektumorient lt (adatstrukt ra + adatok viselked se) technol gia egyes t se. Ez a rel ci s adatmodell objektumorient lt kiterjeszt s n alapszik. P ld ul a be p tett (Built-in) oszlopt pusokon s oper torokon t l lehets ges a felhaszn l i (User-Defined) t pus- s oper tor defini l s, amelyekkel j t pusokat (pl.)
4 Objektumot attrib tumokkal, met dusokkal) s m veleteket lehet defini lni, majd haszn lni lehet azokat az SQL utas t sokban a be p tett t pusokhoz s oper torokhoz hasonl anyag az ORACLE SQL nyelv nek csak a rel ci s adatmodellt s els sorban az SQL szabv nyt realiz l r sz vel foglalkozik!Fontosabb haszn lati m djai: - n ll an fejleszt eszk z kben: pl.: SQL*Plus, Oracle*Developer (Form, Report k sz t ), gyazva proced r lis programoz si nyelvekbe. pl.: C/C++, ADA, COBOL, stb. befogad gazdanyelvekbe, melyeket el sz r el ford t val (precompiler) kell leford (az ORACLE saj t proced r lis nyelve, az SQL nyelv proced r lis kiterjeszt se) s JAVA nyelvekben. Ezen nyelvekben rt programegys gek t rolhat k s futtathat k a ORACLE adatb zis szerveren. Az SQL nyelv utas t sainak f bb csoportjai: DDL adatdefin ci s nyelv (Data Definition language ),adatb zis s a szerkezeti elemek kialak t sa: CREATE, ALTER, DROP, RENAMEDML adatmanipul ci s nyelv (Data Manipulation language ),adatok karbantart sa (bevitele, m dos t sa, t rl se), lek rdez se: INSERT, UPDATE, DELETE, SELECT Megj: a SELECT utas t st kor bban szok s volt n ll DQL (Data Query language ) lek rdez nyelvnek is adatvez rl nyelv (Data Control language ),tranzakci kezel se, lefoglal sok: COMMIT, ROLLBACK, SAVEPOINT, LOCK, UNLOCK adatv delem, felhaszn l i hozz f r s szab lyoz sa: GRANT, REVOKEDr.
5 L. Nagy va - SQL munkaanyag2 Egy b nem szabv nyos tott utas t sok: T rol si el r sok, m k d si k r lm nyek be ll t sa, adatb zis ment se, visszat lt se, helyre ll t sa, exportja, importja, nyelv elemei: karakterk szlet (jelk szlet), kulcsszavak, elv laszt jelek, azonos t k, konstansok (liter lok), f ggv nyek, m veleti jelek (oper torok), kifejez sek, stb. Lexik lis konvenci k: az utas t sok rhat k kis- s nagybet vel, egy vagy t bb sorba, az utas t s v g t ; (pontosvessz ) sek (comment) elhelyez se: /* t bb soron th z dhat megjegyz s */ -- sor v g ig tart megjegyz sAz SQL utas t sok szintaxis nak megad s n l nem t reksz nk a teljess gre, n h ny esetben nem is adunk meg minden opci t, el r st. Ezek megtal lhat k az SQL referencia k zik nyvekben. A Backus-Naur Form (BNF) szintaxisban egy szintaktikus egys g vessz vel elv lasztott ism telhet s g t r vids g miatt egyszer en.
6 M don jel lj k, nem rva ki el tte ism telten az ism telhet egys lek rdez utas t sEgy vagy t bb t bla vagy n zett bla tartalm t k rdezhetj k le, de haszn lhatjuk be p tve m s SQL utas t sban is (alselect). Leg ltal nosabb form ja a k vetkez : SELECT ..oszlopok kiv laszt sa (projekci )(6)FROM ..t blan v(-ek) (Descartes szorzat)(1)[WHERE .. ]sorok kiv laszt sa (szelekci )(2)[CONNECT BY .. [START WITH ..]]hierarchia kezel s(3)[GROUP BY .. ]csoportos t s(4)[HAVING .. ]csoportok k z tti v logat s(5)[{UNION | UNION ALL | INTERSECT | MINUS} alselect] halmazm veletek (7)[ORDER BY .. ]eredm nysorok rendez se(8)[FOR UPDATE OF ..] kiv lasztott sorok z rol sa az (9) updatel s idej reAz utas t sr szek megad si sorrendje k t tt. A ki rt kel st a ()-ben megadott sorrendben c lszer k vetni. Az utas t s ltal nos alakja el g bonyolult, gy csak fokozatosan adjuk meg a r szletesebb szintaktik j lek rdez sekSELECT [ ALL | DISTINCT ] { [ t blan v.]}
7 ]* | o_kifejez s [ [AS] o_aliasn v] } ,.. FROM t blan v [t_aliasn v ] ,..;ALL - alap rtelmez s: az sszes sort - csak az egym st l k l nb z sorokat adja visszao_aliasn v - a lek rdez s eredm ny ben nem az oszlop v. kifejez s val di neve, hanem az o_aliasn v jelenik v- a t blan v r vid t s re haszn lhat az utas t sban. Dr. L. Nagy va - SQL munkaanyag3 Az o_aliasn v s a t_aliasn v csak az adott utas t sban rv s- legegyszer bb esetben ez egy oszlop neve, de llhat itt oszlopnevek, konstansok s f ggv nyh v sok sszekapcsolva aritmetikai oper torokkal (*, /, +, -) vagy konkaten l karakteres oper torral ( || ), z r jelez s is megengedett. konstans: adatt pusa lehet: karakteres, numerikus, d tum: Pl.: 'Karaktersor', , 25E-3, '21-MAJ-74' vagy '74-M J-21' Karakteres t pus megk l nb zteti a kis- s nagybet t. D tum konstans f gg az alap rtelmezett d tum form tumt l s nyelvt l: Pl.
8 'DD-MON-YY' vagy 'YY-MON-DD' vagy 'RR-MON-DD' Ez a dokumentum t bbnyire az angol nyelvet s d tumform tumot haszn lja! Az aktu lis be ll t sok megtekinthet k: SELECT * FROM v$nls_parameters;f ggv nyek: k s bb ismertetj k. oszlopn v:[t blan v.]oszlopn v Min s tett n v kell, ha egy oszlopn v az utas t s t bb t bl j ban is el fordul. Az oszlopn v hely n ll * a t bla sszes oszlop t jelenti. Minden alkalmazott minden adata:SELECT * FROM alkalmazott;Minden alkalmazott n h ny adata:SELECT a_nev, beosztas FROM alkalmazott;SELECT a_nev, 'Sz veg ' || beosztas FROM alkalmazott;SELECT a_nev, (fizetes+premium)*12+1000 AS j vedelemFROM alkalmazott;A k l nb z beoszt sok lek rdez se:SELECT DISTINCT beosztas FROM alkalmazott;Az alkalmazottak k t t bl b l sz rmaztathat adatai:(T bl k sszekapcsol sa k s bb lesz r szletezve! Itt ugyanaz az utas t s van t bbf lek ppen le rva.)SELECT a_nev, cim, , t_nevFROM alkalmazott, telephelyWHERE ;SELECT a_nev, cim, , t_nevFROM alkalmazott A, telephely TWHERE ;SELECT a_nev, T.
9 *FROM alkalmazott A, telephely TWHERE ;Dr. L. Nagy va - SQL eredm nysorok rendez seSELECT .. FROM ..ORDER BY {o_kifejez s| o_aliasn v | o_sorsz m} [ASC | DESC] ,..;A rendez s alap rtelmez sben n vekv , DESC hat s ra cs kken lesz a sorrend. A rendez s rtelmezve van minden alapt pusn l. A NULL rt k igen nagy rt ket k * FROM alkalmazottORDER BY t_kod, beosztas DESC;SELECT * FROM alkalmazottORDER BY premium;SELECT t_kod, a_nev, fizetes+NVL(premium, 0) jovedelemFROM alkalmazottORDER BY 1 DESC, jovedelem; kiv laszt sa, lek rdez s keres si felt tellelSELECT ..FROM ..WHERE felt tel ..;Csak a felt telnek eleget tev (felt tel logikai rt ke igaz) sorok vesznek r szt a tov bbi m veletekben. Mindegyik alapt pus szerepelhet a felt telt alkot sszehasonl t m felt telek tipikus form i:o_kifejez s rel ci s_oper tor {o_kifejez s | (egy_ rt ket_ad _alselect)}rel ci s_oper torok (th ta oper torok): =, !
10 =, <>, <, >, <=, >=o_kifejez s [NOT] BETWEEN kif1 AND kif2 kif1 s kif2 k z es s (z rt intervallum) (kif1 <= o_kifejez s <= kif2)o_kifejez s [NOT] LIKE 'karakterminta' illeszkedik-e a megadott karaktermint ra. Dzs ker karakterek:% tetsz leges hossz karaktersorrailleszked s az adott poz ci t l,_ tetsz leges karakterre illeszked s az adottpoz ci banDr. L. Nagy va - SQL munkaanyag5o_kifejez s IS [NOT] NULL NULL rt kkel val egyez s vizsg lata (o_kifejez s=NULL helytelen, mindig NULL lesz az eredm ny)NULL rt k: Am g egy mez nek nincs defini lt rt ke (mert ismeretlen vagy nincs is jelent se az adott helyzetben), addig NULL rt kk nt kezeli az adatb zis-kezel , ami ltal ban nem tekinthet sem null nak, sem m s rt knek. A NULL rt kkel nem lehet sz molni (defini latlan, azaz NULL lesz a kifejez s eredm nye vagy a f ggv ny rt ke) s a legt bb csoportf ggv ny ignor lja (kihagyja) a NULL rt ket.