SQL Bevezetes PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Tartalomjegyzk

Tartalomjegyzk _______________________________________________________________________________1

Az SQL nyelv_______________________________________________________________ 1
Az SQL DDL alapjai_________________________________________________________ 2
Adatbzis parancsok ________________________________________________________2
Tblaparancsok ___________________________________________________________ 2
A tblzat ltrehozsa___________________________________________________________________________ 2
A tblzat mdostsa___________________________________________________________________________ 3
A tbla trlse _________________________________________________________________________________3
Indextbla ltrehozsa __________________________________________________________________________3

Az SQL DML alapjai ________________________________________________________4


A SELECT ... FROM alparancs ________________________________________________4
A WHERE alparancs ___________________________________________________________________________ 4
A GROUP BY alparancs ________________________________________________________________________ 5
Fontosabb (csoport)fggvnyek __________________________________________________________________5
Az ORDER BY alparancs _______________________________________________________________________6

Virtulis tbla ltrehozsa____________________________________________________6


Sorok bevitele a tblba _____________________________________________________ 6
A tbla rekordjainak mdostsa ______________________________________________6
A tbla rekordjainak trlse __________________________________________________6

Az SQL DCL nyelv alapjai ____________________________________________________7


Hozzfrsi jogok adomnyozsa ______________________________________________7
A tblkra vonatkoz jogosultsg adomnyozsa ___________________________________________________ 7
Jogosultsg adomnyozsa az adatbzison vgzett mveletekre ______________________________________ 7

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:

Az SQL DDL alapjai


Adatbzis parancsok
Az adatbzis -parancsokat az albbi tblzatban foglalhatjuk ssze:
A parancs alakja:

A parancs funkcija:

CREATE DATABASE adatb zisnv; Adatbzis ltrehozsa


SHOW DATABASE;

Informci egy adatbzisrl

START DATABASE adatbzisnv;

Adatbzis megnyitsa

STOP DATABASE;

Adatbzis bezrsa

DROP DATABASE adatbzisnv ;

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 kvetkez tblzat tnteti fel:

Adattpus neve:

Jelentse:

CHAR(n)

N hosszsg string

INTEGER

Egsz szm -9 999 999 999 s 99 999 999 999 kztt

SMALLINT

Egsz szm -99 999 s 999 999 kztt

DECIMAL(x,y)

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, lebegpontos decimlis szm y tizedesjeggyel, ahol x 1 s 20, y 0 s 18 kztti rtket vehet fel

DATE

Dtum tpus

LOGICAL

Logikai tpus, rtke .T. s .F. lehet

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 ha ez esetben ismtld rtkek is
vannak az oszlopban, a rendszer hibt jelez.

Az SQL DML alapjai


Az SQL lekrdezparancsa a SELECT parancs sszetett parancs, tbb rszparancsbl ll.
A SELECT ... FROM alparancs
A SELECT ... FROM alparancs a projekci megvalstsra alkalmas. ltalnos alakja:
SELECT [DISTINCT] oszlopnv-lista FROM [ tblanv];
A SELECT parancs hatsra egy ideiglenes eredmnytbla keletkezik. Amennyiben a
DISTINCT szerepel, gy az azonos rtkek kzl csak egyet vlaszt ki az adott oszlopba. Az
oszlopnv-lista elemei nemcsak oszlopnevek, hanem oszlopokbl ll kifejezsek, aggregl
(egyest) fggvnyek, s ms kifejezsek is lehetnek.
A WHERE alparancs
A WHERE alparancs a szelekcit valstja meg. ltalnos alakja:
WHERE felttel
A parancs hatsra az eredmnytblban a SELECT utn felsorolt oszlopokba azoknak a
soroknak az rtkei kerlnek, amelyekre teljesl a felttel. A felttelre vonatkoz szablyokat
az albbi tblzattal foglalhatjuk ssze:

A felttel tpusa:

A felttel alakja:

Egyszer sszehasonlts
sszehasonlts

oszlopnv opertor kifejezs

egy oszlopnv opertor halmazdef.

halmaz eleme ivel

Az opertor:
=; != ;< ;> ;<> ;^= ; >=; <=
BETWEEN

szm1

AND

szm2;
IN (lista)
LIKE karakterminta

sszehasonlts

oszlopnv IS NULL

NULL rtkkel
sszetett keressi felttel felttel1 opertor felttel2

AND; OR; NOT

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})

MAX([DISTINCT|ALL] kifejezs)
MIN([DISTINCT|ALL] kifejezs)
SUM([DISTINCT|ALL] kifejezs)
ABS(kifejezs)
SQRT(kifejezs)

Nagy kezdbet, karakteres kifejezsekre


vonatkozik
Kisbets,
karakteres
kifejezsekre
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.

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];

Az SQL DCL nyelv alapjai


Hozzfrsi jogok adomnyozsa
A tblkra vonatkoz jogosultsg adomnyozsa
A parancs formja:
GRANT ALL [PRIVILEGES]/ jogosultsglista ON [TABLE] tblalista
TO PUBLIC /felhasznllista [WITH GRANT OPTION];
A parancs minden jogot (ALL

PRIVILEGES) vagy a jogosultsglistban szerepl

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:

A jogosultsg jelentse:

ALTER

Jogosultsg a tbla mdostsra

DELETE

Jogosultsg a tbla trlsre

INDEX

Jogosultsg indextbla ltrehozsra

INSERT

Jogosultsg j sor felvtelre a tblzatba

SELECT

Jogosultsg lekrdezsre

UPDATE

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

indextblk

ltrehozsra,

jogosultsgok

RESOURCE adomnyozsa ezekre a tblkra

DBA

-Teljes adatbzis-adminisztrtori jogkr

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;

You might also like