SQL 1 Select

  • Upload
    morthep

  • View
    69

  • Download
    0

Embed Size (px)

Citation preview

Ajnlott irodalom: Kende Mria-Kotsis Domokos-Nagy Istvn: Adatbzis kezels az ORACLE rendszerben Balogh Judit - Rutkovszky Edn: SQL pldatr Loney - Koch: Oracle 8i Teljes Referencia Ullman-Widom: Adatbzisrendszerek. Alapvets Stolniczki Gyula: SQL kziknyv

DBA (adatbzis adminisztrtor) - felhasznlk ltrehozsa, kezelse - jogosultsgok kiosztsa - a rendszer m kdsnek figyelse - rendszerhibk kezelse - adatbzis tervezs figyelemmel ksrse felhasznl "rte van az egsz"

AlapfogalmakAdatbzis: olyan adathalmaz, amely az adatokon kvl a kztk lev kapcsolatokat s a rjuk vonatkoz informcikat is trolja - "tbbfelhasznls adathalmaz" Adatbziskezel rendszer: szoftver, amely az adatbzis kezelst vgzi Adatbziskezel rendszerek legfontosabb feladatai: az adatbzis s szerkezetnek kialaktsa, karbantartsa adatok karbantartsa (beszrs, mdosts, trls) adatok visszakeresse (lekrdezse) adatvdelem, adatbiztonsg megoldsa konzisztencia biztostsa integritsi megszortsok hasznlatval konkurens hozzfrsek kezelse Adatbzis rendszerek rszei: DBS = DB + DBMS + DBA + felhasznl DB (adatbzis) felhasznl adatai - fizikai llomnyokban adatsztr (DD) - adatbzis objektumok (tbla, nzet, szekvencia, index stb.) - felhasznli adatok (felhasznli nv, jogosultsgok) DBMS (adatbziskezel rendszer) RDBMS (relcis adatbziskezel rendszer) mindennem trols alapja a tbla relcis adatbziskezel nyelv: DDL, DML, DCL

Relcis adatmodell alapfogalmak El szr az adatbzis smjt kell definilni (tblk+szablyok), utna trtnhet az adatokkal val feltlts.tbla oszlop sor mez relci attribtum rekord rtk (itt troldnak az adatok) (azonos adattpus adatokat tart.) (sszetart. oszloprtkeket tart.)

NULL rtk: valamelyik sorban egy oszlopnak nincs rtke. A NULL rtk semmilyen ms rtkkel nem hasonlthat ssze Integritsi megszortsok: Szablyok, melyek biztostjk az adatbzis konzisztencijt (ne tartalmazzon az adatbzis hibs rtkeket, logikai ellentmondsokat). Az RDBMS automatikusan biztostja a szablyok betartatst. Primary key (els dleges kulcs): olyan oszlop, amelynek rtke azonostja a tbla minden sort. Tbb oszlop is alkothatja. Nem lehet NULL. Unique key (egyedi kulcs): olyan oszlop, amelynek rtke a tbla minden sorban egyedi. Tbb oszlop is alkothatja. Lehet NULL rtk . Foreign key (kls kulcs): olyan oszlop, amely egy msik (vagy ugyanazon) tbla els dleges kulcsra hivatkozik. Tbb tblt logikailag sszekapcsolhatunk vele. Tbb oszlop is alkothatja.

M veletek tblkkalNEVEK KOD 01 02SQL - elmlet /

NEV ALMA KORTE

ARAK SORSZ 1 2

KOD 02 03

AR 100 150

SQL - elmlet /

1.

2.

03

SZILVA

3

03

50 KLS SSZEKAPCSOLS VII. specilis szorzs; kt tblbl indul ki; mindkt tblban ki kell jellni egy kapcsol oszlopot s meg kell adni a kapcsolsi felttelt; DE olyan, az els tblhoz tartoz sorokat is az eredmnytblba tesz, amelyhez nem ltezik a msodik tblban kapcsold sor Tpusok: baloldali, jobboldali, ktoldali Lehet: EQUI-JOIN s NEM-EQUI-JOIN Plda: baloldali, equi-join Kapcsol oszlop: KOD Kapcsol felttel: NEVEK.KOD = ARAK.KOD NEVEK.KOD 01 02 03 03 NEVEK.NEV ALMA KORTE SZILVA SZILVA ARAK.SORSZ NULL 1 2 3 ARAK.KOD NULL 02 03 03 ARAK.AR NULL 100 150 50

I. Projekci - oszlopok kivlasztsa II. Szelekci - sorok kivlasztsa III. Halmazelmleti m veletek (Egyests, Metszet, Klnbsg): csak azonos oszlopokat tartalmaz tblkon rtelmezhet IV. Tblk szorzsa (Descartes szorzat): kt tblbl indul ki; az eredmny tbla sorai gy keletkeznek, hogy az els tbla sorait minden lehetsges mdon folytatjuk a msodik tbla minden sorval NEVEK.KOD 01 01 01 02 02 02 03 03 03 NEVEK.NEV ALMA ALMA ALMA KORTE KORTE KORTE SZILVA SZILVA SZILVA ARAK.SORSZ 1 2 3 1 2 3 1 2 3 ARAK.KOD ARAK.AR 02 100 03 150 03 50 02 100 03 150 03 50 02 100 03 150 03 50

SQL - Structured Query LanguageLekrdez nyelv relcikban trolt informcik visszanyersre, minimlis adatbeviteli s mdostsi lehet sgekkel Jellemz i: Nem algoritmikus: Parancsnyelv jelleg , megfogalmazhatjuk, mit akarunk csinlni, de a megoldsi algoritmust nem kell megadni a felhasznlnak. Nincsenek benne ciklusok, feltteles elgazsok, vltoz deklarls stb. Mintaillesztses, halmazorientlt: A tblkat mint a sorok (rekordok) halmazt tekintjk. Az adott utastsban megfogalmazott felttelnek eleget tev sszes sor rszt vesz a m veletben Szabvnyos: Illeszkedik az SQL szabvnyhoz. A szabvnyban van egy SQL utastscsoport, amelyet minden SQL alap szoftver implementcinak meg kell valstani, de mindegyik implementci plusz lehet sget is nyjt a standard SQLhez kpest, fellr l kompatibilis a szabvnnyal

BELS SSZEKAPCSOLS V. Tblk sszekapcsolsa - EQUI-JOIN: specilis szorzs; kt tblbl indul ki; mindkt tblban ki kell jellni egy kapcsol oszlopot s meg kell adni a kapcsolsi felttelt, ami egyenl sg Kapcsol oszlop: KOD Kapcsol felttel: NEVEK.KOD = ARAK.KOD NEVEK.KOD 02 03 03 NEVEK.NEV KORTE SZILVA SZILVA ARAK.SORSZ 1 2 3 ARAK.KOD 02 03 03 ARAK.AR 100 150 50

VI. Tblk sszekapcsolsa - NEM EQUI-JOIN: specilis szorzs; kt tblbl indul ki; mindkt tblban ki kell jellni egy kapcsol oszlopot s meg kell adni a kapcsolsi felttelt, ami nem egyenl sg Kapcsol oszlop: KOD Kapcsol felttel: NEVEK.KOD > ARAK.KODSQL - elmlet /

3.

SQL - elmlet /

4.

SQL fontosabb hasznlati mdjai: nllan fejleszt eszkzkben: pl.: SQL*Plus, iSQL*Plus, Oracle Form, Oracle Report stb. Begyazva procedurlis programozsi nyelvekbe. pl.: C/C++, ADA, COBOL, stb. befogad nyelvekbe el szr el fordtval fordtani kell PL/SQL (az ORACLE sajt nyelve, az SQL procedurlis kiterjesztse) s JAVA nyelvekben a programegysgek trolhatk, futtathatk az adatbzis szerveren Az SQL nyelv utastsainak f bb csoportjai: DDL adatdefincis nyelv (Data Definition Language) adatbzis s adatbzis objektumok ltrehozsa, kezelse: CREATE, ALTER, DROP, RENAME DML adatmanipulcis nyelv (Data Manipulation Language) adatok karbantartsa (bevitele, mdostsa, trlse), lekrdezse: INSERT, UPDATE, DELETE, SELECT DCL adatvezrl nyelv (Data Control Language) tranzakci kezelse: COMMIT, ROLLBACK, SAVEPOINT adatvdelem, felhasznli hozzfrs szablyozsa: GRANT, REVOKE

I.

Egyszer lekrdezsek, rendezs

SELECT [ALL | DISTINCT] {[tblanv.]* | o_kifejezs [o_alias]},... FROM tblanv [t_alias ],... {ORDER BY {o_kifejezs | o_alias} [ASC | DESC], ...}; alaprtelmezs, az sszes sort visszaadja az egymstl klnbz sorokat adja vissza az eredmnyben oszlop neve helyett jelenik meg fejlcknt a tblanv rvidtsre hasznlhat (Az o_alias s t_alias csak az adott utastsban rvnyes) * a tbla sszes oszlopt jelenti o_kifejezs oszlopnv(ek), konstansok, fggvnyhvsok sszekapcsolva aritmetikai (*, /, +, -) vagy konkatenl opertorral ( || ), zrjelezs is megadhat konstans: adattpusa: karakteres, numerikus, dtum Karakteres: megklnbzteti a kis- s nagybet t Dtum: fgg az alaprtelmezett dtum formtumtl s nyelvt l Pl. Oracle 9i: 88-FEB-21, 2006-PR-01 Pl. Oracle 10g: 88-FEBR.-21, 2006-PR.-01 SELECT * FROM nls_session_parameters; ALTER SESSION SET NLS_DATE_LANGUAGE=HUNGARIAN NLS_DATE_FORMAT=formtum fggvnyek: oszlopnv: ks bb [tblanv.]oszlopnv (min steni kell, ha egy oszlopnv tbb tblban is el fordul ALL DISTINCT o_alias t_alias

SELECT lekrdez utastsSELECT utastssal vgrehajthat feladatok: A SELECT paranccsal egy vagy tbb tbla vagy nzettbla tartalmt tudjuk lekrdezni, vagy hasznlhatk beptve ms SQL utastsokban. Megvalsthatk vele a korbban felsorolt tblam veletek SELECT ... oszlopok kivlasztsa (projekci) FROM ... tblanv(-ek) (sszekapcsols) [WHERE ... ] sorok kivlasztsa (szelekci) [CONNECT BY ... [START WITH ...]] hierarchia kezels [GROUP BY ... ] csoportosts [HAVING ... ] csoportok kztti vlogats [{UNION [ALL] | INTERSECT | MINUS} alselect] halmazm veletek [ORDER BY ... ] eredmnysorok rendezseSQL - elmlet /

NULL rtk:

Olyan rtk, amely nem ismert, nincs megadva vagy nem rtelmezhet . Nem azonos a nullval (szm), a szkzzel (karakter). Brmely tpus oszlop tartalmazhatja, ha az oszlopot nem NOT NULL vagy PRIMARY KEY megszortssal hoztuk ltre Nem lehet vele szmolni (definilatlan, azaz NULL lesz a kifejezs eredmnye vagy a fggvny rtke) s a legtbb csoportfggvny figyelmen kvl hagyja

5.

SQL - elmlet /

6.

Kezelsre az NVL fggvnyt hasznlhatjuk: NVL(kifejezs, helyettest _rtk) A fggvny eredmnye azonos az els argumentum ltal meghatrozott rtkkel, ha az nem NULL, klnben a msodik argumentum rtkt adja vissza Rendezs: (ORDER BY) Alaprtelmezsben nvekv , DESC hatsra cskken rtelmezve van minden adattpusnl A NULL rtk nvekv rendezsnl utolsknt, cskken nl els knt jelenik meg

o_kifejezs IS [NOT] NULL NULL rtkkel val egyezs (o_kifejezs=NULL eredmnye definilatlan)

b) Halmazos felttelek: Halmaz: (kifejezs lista) vagy (alselect)(az alselect tbb oszlopot s tbb sort is visszaadhat) o_kifejezs [NOT] IN (halmaz) a megadott halmazban szerepel-e a kifejezs? o_kifejezs relcis_opertor {ANY|SOME} (halmaz) teljesl-e a relci a halmaz valamely (legalbb egy) elemre? (=ANY azonos az IN relcival, ANY s SOME azonos) o_kifejezs relcis_opertor ALL (halmaz) teljesl-e a relci a halmaz minden egyes (sszes) elemre? (ALL azonos a NOT IN relcival) [NOT] EXISTS (alselect) az alselect visszaad-e legalbb egy sort?

II. Sorok kivlasztsa, lekrdezs keressi felttellelSELECT... FROM... WHERE felttel ; Csak azok a sorok vesznek rszt a tovbbi m veletekben, amelyekre a felttel igaz, amelyekre hamis vagy ismertelen (Unknown), azok nem. Felttel: oszlopnevekb l, kifejezsekb l, konstansokbl s sszehasonlt opertorbl ll.

a) Egyszer felttelek:o_kifejezs relcis_opertor o_kifejezs kifejezsek rtknek sszehasonltsa relcis_opertor: =, !=, , , = o_kifejezs [NOT] BETWEEN kif1 AND kif2 kif1 s kif2 kz ess zrt intervallum: kif1