Transcription of SQL bevezetes pdf - inczedy.hu
1 Tartalomjegyz k Tartalomjegyz k _____1. Az SQL nyelv_____ 1. Az SQL DDL alapjai_____ 2. Adatb zis parancsok _____2. T blaparancsok _____ 2. A t bl zat l trehoz sa_____ 2. A t bl zat m dos t sa_____ 3. A t bla t rl se _____3. Indext bla l trehoz sa _____3. Az SQL DML alapjai _____4. A SELECT .. FROM alparancs _____4. A WHERE alparancs _____ 4. A GROUP BY alparancs _____ 5. Fontosabb (csoport)f ggv nyek _____5. Az ORDER BY alparancs _____6. Virtu lis t bla l trehoz sa_____6. Sorok bevitele a t bl ba _____ 6. A t bla rekordjainak m dos t sa _____6. A t bla rekordjainak t rl se _____6. Az SQL DCL nyelv alapjai _____7. Hozz f r si jogok adom nyoz sa _____7. A t bl kra vonatkoz jogosults g adom nyoz sa _____ 7. Jogosults g adom nyoz sa az adatb zison v gzett m veletekre _____ 7.
2 Jogosults gok visszavon sa_____ 8. T bl kra vonatkoz jogosults g visszavon sa _____ 8. Adatb zis -jogosults gok visszavon sa _____8. Az SQL nyelv Az SQL (Structured Query Language) 1986-ban az Amerikai Szabv ny gyi Hivatal (ANSI). ltal szabv nyos tott struktur lt lek rdez nyelv , mely rel ci s adatmodell alapj n fel p l . adatb zisok kezel s re k pes. Az SQL h rom r sznyelvre bonthat : SQL DDL, azaz az SQL adatdefin ci s nyelv;. SQL DML, azaz az SQL adatmanipul ci s nyelv;. SQL DCL, azaz az SQL adatvez rl nyelv. A tov bbiakban a p ld kat mindig az al bbi adatb zisra vonatkozta tjuk: Az SQL DDL alapjai Adatb zis parancsok Az adatb zis -parancsokat az al bbi t bl zatban foglalhatjuk ssze: A parancs alakja: A parancs funkci ja: CREATE DATABASE adatb zisn v; Adatb zis l trehoz sa SHOW DATABASE; Inform ci egy adatb zisr l START DATABASE adatb zisn v; Adatb zis megnyit sa STOP DATABASE; Adatb zis bez r sa DROP DATABASE adatb zisn v ; Adatb zis t rl se T blaparancsok A t bl zat l trehoz sa A t bl zat defini l s t az SQL-ben a CREATE TABLE parancs v gzi.
3 Ltal nos alakja CREATE TABLE t blan v (oszlopn v adatt pus (m ret). [,oszlopn v adatt pus (m ret)] );. Az oszlopnevekn l az adatt pus mell be rhat a NULL illetve a NOT NULL opci . Ez ut bbi azt jelenti, hogy a defini lt t bl ban az adott oszlop kit lt se k telez . A gyakoribb SQL. adatt pusokat a k vetkez t bl zat t nteti fel: 2. Adatt pus neve: Jelent se: CHAR(n) N hossz s g string INTEGER Eg sz sz m -9 999 999 999 s 99 999 999 999 k z tt SMALLINT Eg sz sz m -99 999 s 999 999 k z tt DECIMAL(x,y) El jellel egy tt x sz mjegy , fixpontos decim lis sz m y tizedesjeggyel, ahol x 1 s 19, y 0 s 18 k z tti rt ket vehet fel FLOAT(x,y) El jellel egy tt x sz mjegy , lebeg pontos decim lis sz m y tizedes- jeggyel, ahol x 1 s 20, y 0 s 18 k z tti rt ket vehet fel DATE D tum t pus LOGICAL Logikai t pus, rt ke.
4 T. s .F. lehet A k l nb z adatb zis-kezel programok SQL motorjai ltal ban megengednek m s adatt pusokat Acces '97 SQL pl. megengedi a BYTE, CURRENCY t pusok haszn lat t. Lehets ges elt r s a szabv ny t blak sz t utas t st l is. Az Access '97 SQL p ld ul az els dleges kulcs kijel l s re m s utas t st haszn l: CREATE TABLE auto_csop (auto_csop_nev CHAR(6)NOT NULL PRIMARY. KEY,km_dij INTEGER,napi_dij INTEGER);. CREATE TABLE auto_csop (auto_csop_nev CHAR(6)NOT NULL,km_dij INTEGER,napi_dij INTEGER CONSTRAINT auto_csop_nev PRIMARY. KEY);. A t bl zat m dos t sa A t bl zat m dos t s ra az ALTER TABLE parancs szolg l. ltal nos alakja: ALTER TABLE t blan v ADD/MODIFY (oszlopn v adatt pus [, oszlopn v adatt pus ]);. Az Access'97 SQL itt is egy kicsit m s: ALTER TABLE auto_csop ADD megjegyzes CHAR(20).
5 ALTER TABLE auto_csop ADD COLUMN megjegyzes CHAR(20);. A t bla t rl se A t bla t rl s re a katal gusb l a DROP TABLE parancs szolg l. Alakja: DROP TABLE t blan v;. Indext bla l trehoz sa Az index llom ny egy adott t bl b l kiemelt n h ny rendezett oszlopb l ll. Az SQL-ben rendezett oszlopokb l ll indext bl t a k vetkez alak parancs hozza l tre: 3. CREATE [UNIQUE] INDEX indext bla -n v ON t blan v (oszlopn v [[ASC/DESC][,oszlopn v[ASC/DESC]]..);. A parancs hat sa: Az ON ut n adott t bla felsorolt oszlopait rendezi (n veked en ASC eset n s cs kken en DESC eset n) s bel l k egy az INDEX sz ut n megadott nev t bl t k sz t. Az UNIQUE azt jelenti, hogy az oszlop rt kei egyediek, s ha ez esetben ism tl d rt kek is vannak az oszlopban, a rendszer hib t jelez.]
6 Az SQL DML alapjai Az SQL lek rdez parancsa a SELECT parancs sszetett parancs, t bb r szparancsb l ll. A SELECT .. FROM alparancs A SELECT .. FROM alparancs a projekci megval s t s ra alkalmas. ltal nos alakja: SELECT [DISTINCT] oszlopn v-lista FROM [ t blan v];. A SELECT parancs hat s ra egy ideiglenes eredm nyt bla keletkezik. Amennyiben a DISTINCT szerepel, gy az azonos rt kek k z l csak egyet v laszt ki az adott oszlopba. Az oszlopn v-lista elemei nemcsak oszlopnevek, hanem oszlopokb l ll kifejez sek, aggreg l . (egyes t ) f ggv nyek, s m s kifejez sek is lehetnek. A WHERE alparancs A WHERE alparancs a szelekci t val s tja meg. ltal nos alakja: WHERE felt tel A parancs hat s ra az eredm nyt bl ban a SELECT ut n felsorolt oszlopokba azoknak a soroknak az rt kei ker lnek, amelyekre teljes l a felt tel.
7 A felt telre vonatkoz szab lyokat az al bbi t bl zattal foglalhatjuk ssze: A felt tel t pusa: A felt tel alakja: Az oper tor: Egyszer sszehasonl t s oszlopn v oper tor kifejez s =; != ;< ;> ;<> ;^= ; >=; <=. sszehasonl t s egy oszlopn v oper tor halmazdef. BETWEEN sz m1 AND. halmaz eleme ivel sz m2;. IN (lista). LIKE karakterminta sszehasonl t s oszlopn v IS NULL. NULL rt kkel sszetett keres s i felt tel felt tel1 oper tor felt tel2 AND; OR; NOT. 4. N h ny p lda: SELECT tipus_nev,ar FROM autok WHERE ar>1350000;. SELECT * FROM alkalmazott WHERE alk_nev LIKE H* ;. SELECT * FROM autok WHERE futott_km BETWEEN 120000 AND 200000;. A GROUP BY alparancs A GROUP BY alparancs alakja: GROUP BY oszlopn v [,oszlopn v] [ HAVING felt tel].
8 A parancs hat s ra a megadott oszlop azonos rt kei szerint csoportos tja a rekordokat. Amennyiben szerepel a HAVING, az azt jelenti, hogy a GROUP BY ltal kialak tott eredm nyt bl b l kiv lasztja azon sorokat, amelyek eleget tesznek a HAVING ut ni felt telnek. Fontosabb (csoport)f ggv nyek INITCAP(kifejez s) Nagy kezd bet , karakteres kifejez sekre vonatkozik LOWER(kifejez s) Kisbet s, karakteres kifejez sekre vonatkozik UPPER(kifejez s) Nagybet s, karakteres kifejez sekre vonatkozik AVG([DISTINCT|ALL] kifejez s) tlag, numerikus vonatkozik, a Null rt ket figyelmen k v l hagyja. COUNT([DISTINCT|ALL] {*|kifejez s}) Sz ml l , numerikus d tum s karakteres kifejez sre is vonatkozik, a Null rt ket figyelmen k v l hagyja. MAX([DISTINCT|ALL] kifejez s) Maximum, numerikus d tum s karakteres kifejez sre is vonatkozik.
9 MIN([DISTINCT|ALL] kifejez s) Minimum, numerikus d tum s karakteres kifejez sre is vonatkozik. SUM([DISTINCT|ALL] kifejez s) sszeg, numerikus kifejez sre vonatkozik. ABS(kifejez s) Abszol t rt k, numerikus kifejez sre vonatkozik. SQRT(kifejez s) N gyzetgy k, numerikus kifejez sre vonatkozik. N h ny p lda: SELECT reszleg_kod, COUNT(*) FROM alkamazott GROUP BY reszleg_kod;. SELECT reszleg_kod,MIN(fizetes), MAX(fizetes),SUM(fizetes),AVG(fizetes). FROM alkamazott GROUP BY reszleg_kod;. 5. Az ORDER BY alparancs Az ORDER BY alparancs az eredm nyt bla rendez s re szolg l. ltal nos alakja: ORDER BY oszlopn v [ASC/DESC][,oszlopn v [ASC/DESC]];. A parancs a megadott oszlop (vagy oszlopok) szerint rendezi az eredm nyt bl t, ASC. megad sa eset n n veked sorrendben (ez az alap rtelmez s is), DESC eset n cs kken.
10 Sorrendben. P lda: SELECT * FROM alkalmazott WHERE beosztas= Elado OR beosztas= Szerelo . ORDER BY fizetes DESC;. Virtu lis t bla l trehoz sa A virtu lis t bla l trehoz s ra a CRERATE VIEW parancs szolg l. ltal nos alakja: CREATE VIEW t blan v [oszlopn vlista] AS SELECT [WITH CHECK OPTION];. A parancs hat s ra a SELECT parancs ltal gener lt eredm nyt bl nak a VIEW ut n rt t blanevet adja az SQL s ennek a t bl nak az oszlopai az oszlopn vlist ban felsorolt oszlopok lesznek. Amennyiben nem adunk meg oszlopn vlist t, akkor az eredm nyt bla nevei lesznek a VIEW t bla oszlopnevei. Sorok bevitele a t bl ba A parancs alakja: INSERT INTO t blan v [(oszlopn v-lista )] VALUES ( rt klista)/szelekci s utas t s;. P lda: INSERT INTO auto_csop (auto_csop_nev,km_dij,napi_dij).