Professional Documents
Culture Documents
SQL Bevezetes PDF
SQL Bevezetes PDF
Tartalomjegyzk _______________________________________________________________________________1
Virtulis tbla ltrehozsa____________________________________________________6 Sorok bevitele a tblba _____________________________________________________ 6 A tbla rekordjainak mdostsa ______________________________________________6 A tbla rekordjainak trlse __________________________________________________6
Jogosultsgok visszavonsa___________________________________________________ 8
Tblkra vonatkoz jogosultsg visszavonsa ______________________________________________________ 8 Adatbzis -jogosultsgok visszavonsa ____________________________________________________________8
Az SQL nyelv
Az SQL (Structured Query Language) 1986-ban az Amerikai Szabvnygyi Hivatal (ANSI) ltal szabvnyostott strukturlt lekrdeznyelv , mely relcis adatmodell alapjn felpl adatbzisok kezelsre kpes. Az SQL hrom rsznyelvre bonthat: SQL DDL, azaz az SQL adatdefincis nyelv; SQL DML, azaz az SQL adatmanipulcis nyelv; SQL DCL, azaz az SQL adatvezrl nyelv. A tovbbiakban a pldkat mindig az albbi adatbzisra vonatkozta tjuk:
CREATE DATABASE adatb zisnv; Adatbzis ltrehozsa SHOW DATABASE; START DATABASE adatbzisnv; STOP DATABASE; DROP DATABASE adatbzisnv ; Informci egy adatbzisrl Adatbzis megnyitsa Adatbzis bezrsa Adatbzis trlse
Tblaparancsok A tblzat ltrehozsa A tblzat definilst az SQL-ben a CREATE TABLE parancs vgzi. ltalnos alakja CREATE TABLE tblanv (oszlopnv adattpus (mret) [,oszlopnv adattpus (mret)] ); Az oszlopneveknl az adattpus mell berhat a NULL illetve a NOT NULL opci. Ez utbbi azt jelenti, hogy a definilt tblban az adott oszlop kitltse ktelez. A gyakoribb SQL adattpusokat a k vetkez tblzat tnteti fel:
Jelentse:
Egsz szm -9 999 999 999 s 99 999 999 999 kztt Egsz szm -99 999 s 999 999 kztt El jellel egytt x szmjegy, fixpontos decimlis szm y tizedesjeggyel, ahol x 1 s 19, y 0 s 18 kztti rtket vehet fel
FLOAT(x,y)
El jellel egytt x szmjegy, lebeg pontos decimlis szm y tizedesjeggyel, ahol x 1 s 20, y 0 s 18 kztti rtket vehet fel
DATE LOGICAL
A klnbz adatbzis-kezel programok SQL motorjai ltalban megengednek ms adatt pusokat is.Az Acces 97 SQL pl. megengedi a BYTE, CURRENCY tpusok hasznlatt. Lehetsges eltrs a szabvny tblakszt utaststl is. Az Access 97 SQL pldul az elsdleges kulcs kijellsre ms utastst hasznl: 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 tblzat mdostsa A tblzat mdostsra az ALTER TABLE parancs szolgl. ltalnos alakja: ALTER TABLE tblanv ADD/MODIFY (oszlopnv adattpus [, oszlopnv adattpus ]); Az Access97 SQL itt is egy kicsit ms: ALTER TABLE auto_csop ADD megjegyzes CHAR(20); ALTER TABLE auto_csop ADD COLUMN megjegyzes CHAR(20); A tbla trlse A tbla trlsre a katalgusbl a DROP TABLE parancs szolgl. Alakja: DROP TABLE tblanv; Indextbla ltrehozsa Az indexllomny egy adott tblbl kiemelt nhny rendezett oszlopbl ll. Az SQL-ben rendezett oszlopokbl ll indextblt a kvetkez alak parancs hozza ltre:
CREATE [UNIQUE] INDEX indextbla -nv ON tblanv (oszlopnv [[ASC/DESC][,oszlopnv[ASC/DESC]]..); A parancs hatsa: Az ON utn adott tbla felsorolt oszlopait rendezi (nvekeden ASC esetn s cskkenen DESC esetn) s bel lk egy az INDEX sz utn megadott nev tblt kszt. Az UNIQUE azt jelenti, hogy az oszlop rtkei egyediek, s h ez esetben ismtld rtkek is a vannak az oszlopban, a rendszer hibt jelez.
Az opertor: =; != ;< ;> ;<> ;^= ; >=; <= BETWEEN szm2; IN (lista) LIKE karakterminta szm1 AND
oszlopnv IS NULL
Nhny plda: 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 oszlopnv [,oszlopnv] [ HAVING felttel] A parancs hatsra a megadott oszlop azonos rtkei szerint csoportostja a rekordokat. Amennyiben szerepel a HAVING, az azt jelenti, hogy a GROUP BY ltal kialaktott
eredmnytblbl kivlasztja azon sorokat, amelyek eleget tesznek a HAVING utni felttelnek. Fontosabb (csoport)fggvnyek INITCAP(kifejezs) LOWER(kifejezs) UPPER(kifejezs) AVG([DISTINCT|ALL] kifejezs) COUNT([DISTINCT|ALL] {*|kifejezs}) Nagy kezdbet, karakteres kifejezsekre vonatkozik Kisbets, karakteres kifej zsekre e vonatkozik Nagybets, karakteres kifejezsekre vonatkozik tlag, numerikus vonatkozik, a Null rtket figyelmen kvl hagyja. Szmll, numerikus dtum s karakteres kifejezsre is vonatkozik, a Null rtket figyelmen kvl hagyja. Maximum, numerikus dtum s karakteres kifejezsre is vonatkozik. Minimum, numerikus dtum s karakteres kifejezsre is vonatkozik. sszeg, numerikus kifejezsre vonatkozik. Abszoltrtk, numerikus kifejezsre vonatkozik. Ngyzetgyk, numerikus kifejezsre vonatkozik.
MAX([DISTINCT|ALL] kifejezs) MIN([DISTINCT|ALL] kifejezs) SUM([DISTINCT|ALL] kifejezs) ABS(kifejezs) SQRT(kifejezs) Nhny plda:
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;
Az ORDER BY alparancs Az ORDER BY alparancs az eredmnytbla rendezsre szolgl. ltalnos alakja: ORDER BY oszlopnv [ASC/DESC][,oszlopnv [ASC/DESC]]; A parancs a megadott oszlop (vagy oszlopok) szerint rendezi az eredmnytblt, ASC megadsa esetn nveked sorrendben (ez az alaprtelmezs is), DESC esetn cskken sorrendben. Plda: SELECT * FROM alkalmazott WHERE beosztas=Elado OR beosztas=Szerelo ORDER BY fizetes DESC; Virtulis tbla ltrehozsa A virtulis tbla ltrehozsra a CRERATE VIEW parancs szolgl. ltalnos alakja: CREATE VIEW tblanv [oszlopnvlista] AS SELECT [WITH CHECK OPTION]; A parancs hatsra a SELECT parancs ltal generlt eredmnytblnak a VIEW utn rt tblanevet adja az SQL s ennek a tblnak az oszlopai az oszlopnvlistban felsorolt oszlopok lesznek. Amennyiben nem adunk meg oszlopnvlistt, akkor az eredmnytbla nevei lesznek a VIEW tbla oszlopnevei. Sorok bevitele a tblba A parancs alakja: INSERT INTO tblanv [(oszlopnv-lista )] VALUES (rtklista)/szelekcis utasts; Plda: INSERT INTO auto_csop (auto_csop_nev,km_dij,napi_dij) VALUES ("Luxus",6000,8000); A tbla rekordjainak mdostsa A parancs alakja: UPDATE tblanv SET oszlopnv=kifejezs[,oszlopnv=kifejezs] [WHERE logikai kifejezs]; Plda: UPDATE auto_csop SET napi_dij=8500 WHERE auto_csop_nev=Luxus; A tbla rekordjainak trlse A parancs alakja: DELETE FROM tblanv [WHERE felttel];
mveletekre val jogot adja a tblalistban szerepl tblkra mindenkinek (PUBLIC esetn) vagy a felhasznllistban szerepl szemlyeknek. Amennyiben a WITH GRANT OPTION szerepel, akkor az e jogokat kapk t is adhatjk ezeket a jogokat msoknak. A jogosultsglista elemeit a kvetkez tblzatban foglalhatjuk ssze: A jogosultsg neve: ALTER DELETE INDEX INSERT SELECT UPDATE A jogosultsg jelentse: Jogosultsg a tbla mdostsra Jogosultsg a tbla trlsre Jogosultsg indextbla ltrehozsra Jogosultsg j sor felvtelre a tblzatba Jogosultsg lekrdezsre Jogosultsg a tbla mdostsra
Jogosultsg adomnyozsa az adatbzison vgzett mveletekre A parancs formja: GRANT adatbzisjog TO PUBLIC /felhasznllista A parancs jogosultsgot ad az adatbzisra vonatkozan va gy mindenkinek (PUBLIC ) vagy adott felhasznlknak a felhasznllista szerint. Az adatbzisjogokat a kvetkez tblzatban foglalhatjuk ssze:
A jog neve:
A jog jelentse: - Hozzfrs a teljes adatbzishoz - Jog arra, hogy SELECT, INSERT, DE LETE, UPDATE mveleteket
CONNECT
vge zzen ms felhasznlk tblin, ha ilyen jogosultsgot kapott a tblkra vonatkoz GRANT-tal - Jog nzettblk s szinonim tblk ltrehozsra. - Minden CONNECT jogosultsg Jogosultsg tblk s indextblk ltrehozsra, jogosultsgok
DBA
Jogosultsgok visszavonsa Tblkra vonatkoz jogosultsg visszavonsa A parancs formja: REVOKE ALL [PRIVILEGES]/ jogosultsglista ON [TABLE] tblalista TO PUBLIC/felhasznllista ; A parancs hatsa: Az sszes jogosultsgot (ALL PRIVILEGES vagy csak a
jogosultsglistban felsoroltakat a megadott tblkra vonatkozan mindenkit l (PUBLIC) vagy csak a listban szerepl felhasznlktl visszavonja. Adatbzis-jogosultsgok visszavonsa A parancs formja: REVOKE adatbzisjog FROM PUBLIC/felhasznllista ; A parancs adatbzisjogokat mindenkitl (PUBLIC) vagy a listban szereplktl visszavonja;