Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 17

Tng quan v ngn ng sql

I_Gii thiu chung v SQL


1>.SQL l g?
-SQL l vit tt ca Structure Query
Language,n l mt cng c qun l d liu
c s dng ph bin nhiu lnh vc .Hu
ht cc ngn ng bc cao u c trnh h tr
SQL nh Visual BASic,Oracle,Visual C...
Trong Oracle tt c cc chng trnh v ngi s
dng phi s dng SQL truy nhp vo d
liu trong CSDL ca Oracle. Cc chng trnh
ng dng v cc cng c Oracle cho php ngi
s dng truy nhp ti CSDL m khng cn s
dng trc tip SQL. Nhng nhng ng dng
khi chy phi s dng SQL.
2>.Lch s pht trin:
-SQL c pht trin t ngn ng SEQUEL2 bi
IBM theo m hnh Codd ti trung tm nghin
cu ca IBM California ,vo nhng nm 70
cho h thng QTCSDL ln.
-u tin SQL c s dng trong cc ngn ng
qun l CSDL v chy trn cc my n l.
Song do s pht trin nhanh chng ca nhu
cu xy dng nhng CSDL ln theo m hnh
khch ch( trong m hnh ny ton b CSDL
c tp trung trn my ch (Server)). Mi thao
tc x l d liu c thc hin trn my ch
bng cc lnh SQL my trm ch dng cp
nhp hoc ly thng tin t my ch). Ngy nay
Phm Minh Qu - Database

Tng quan v ngn ng sql

trong cc ngn ng lp trnh bc cao u c


s tr gip ca SQL. Nht l trong lnh vc pht
trin ca Internet ngn ng SQL cng ng
vai tr quan trng hn. N c s dng
nhanh chng to cc trang Web ng..
SQL c vin tiu chun quc gia M
(ANSI)v t chc tiu chun quc t (ISO)
chp nhn nh mt ngn ng chun cho CSDL
quan h .Nhng cho n nay chun ny cha
a ra 100%.Nn cc SQL nhng trong cc
ngn ng lp trnh khc nhau c b
xung m rng cho SQL chun cho ph hp vi
cc ng dng ca mnh.Do vy c s khc
nhau r rng gi cc SQL.
3>.c im ca SQL v i tng lm vic:
a>c im:
-SQL l ngn ng ta ting Anh.
-SQL l ngn ng phi th tc,N khng yu cu
ta cch thc truy nhp CSDL nh th no
Tt c cc thng bo ca SQL u rt d s
dng v t kh nng mc li .
-SQL cung cp tp lnh phong ph cho cc
cng vic hi p DL
+Chn,cp nht ,xo cc hng trong mt
quan h
+To,sa i,thm v xo cc i tng
trong ca CSDL.
+iu khin vic truy nhp ti c s d
liu v cc i tng ca CSDL m

Phm Minh Qu - Database

Tng quan v ngn ng sql

bo tnh bo mt ca c s DL
+m bo tnh nht qun v s rng
buc ca CSDL.
-Yu cu duy nht s dng cho cc hi p
l phi nm vng c cc cu trc CSDL ca
mnh.
b>i tng lm vic ca SQL:
-L cc bng ( tng qut l cc quan h )d
liu hai chi .Cc bng ny bao gm mt hoc
nhiu ct v hng.Cc ct gi l cc trng ,cc
hng gi l cc bn ghi.Ct vi tn gi v kiu
d liu (kiu dl ca mi ct l duy nht)xc
nh to nn cu trc ca bng (Ta c th dng
lnh Desc[ribe] TABLE-name xem cu trc
ca bng ,phn tu chn[] c th c b trong
Oracle).Khi bng c t chc h thng cho
mt mc ch no c mt CSDL
4>.Cc kiu d liu c bn ca SQL:
-Integer:S nguyn:-2147483648 n
2147483647
-Smallinteger:-32768 n 32767
-Number(n,p):s thp phn di ti a l n
k c p ch s thp phn(khng tnh du
chm).
-char (n):xu c dI c nh l n n<=255
-varchar(n):xu c dI bin i (0-:-n)
-long varchar :xu c di khng c
nh, di c th thay i 4Kb-:-32Kb
-Date:D liu kiu ngy.
Phm Minh Qu - Database

Tng quan v ngn ng sql

II_Gii thiu cc tp lnh c bn ca SQL:


-Tp lnh SELECT:y l lnh thng c dng
nhiu nht trong CSDL ,n thng c s dng
nhn d liu t CSDL.
-Tp lnh INSERT,UPDATE,DELETE:cc lnh
ny thng hay c dng vo mt hng
mi,sa i hay xo b cc hng tn ti
trong cc quan h ca CSDL.
-Tp lnh CREATE,ALTER,DROP:Ba lnh ny
dng to,thay i,xo b bt k cu trc
d liu no ca cc quan h nh bng
,VIEW,INDEX..
-Tp lnh GRANT,REVOKE:Hai lnh ny c
s dng cho php quyn truy nhp hay
khng cho php quyn truy nhp ti CSDL ca
Oracle v cu trc bn trong n.
Trong phn gii thiu cc tp lnh ny ta dng
ba bng quan h sau lm v d minh ho:
R1(Nhn vin) (#NV,Ho_tn,Nsinh,ngh
nghip,a ch,lng)
R2(Lin kt) (#NV,#MP)
R3(phong) (#Mp,Tn_phong,tel)
1>Lnh SELECT:
*Mnh SELECT tng ng vi ton t
project(php chiu ) ca i s quan h.N
c dng to danh sch cc thuc tnh m
ta mong mun.Khi lnh SELECT gm c ba
mnh chnh:
+SELECT:xc nh ni dung ca cc ct
cn a ra.
Phm Minh Qu - Database

Tng quan v ngn ng sql

+FROM:danh sch cc quan h c qut


qua
+WHERE:ng vi mt khng nh la
chn ca I s quan h.N l mt khng
nh lin quan n cc thuc tnh ca quan
h xut hin trong mnh FROM:
-Mt hi p cu SELECT thng c dng:
SELECT [distinct]*/A1..An FROM r1..rm
[WHERE p];
Trong :
Ai l cc thuc tnh
rj l cc quan h (c th l cc
TABLEs,VIEWs..)Ta c th dng cc b danh cho
cc Ai,rj.
p:l Iu kin rng buc.
y WHERE c th c hoc khng.
Dng * ch tt c cc thuc tnh ca cc
quan h c chn
-Hi p ny tong ng vi biu din sau
trong quan h:
A1..An[S p(r1..rm)]
- loi b cc b gi tr (cc hng) trng nhau
ta thm t kho Distinct vo sau SELECT (trc
y SQL thm t kho unique).
-Trong khng nh p:ta c th dng cc lin t
logic and,or,not khi kt hp nhiu iu kin
VD1: hin cc thng tin v mt nhn vin
no
gm(#,H_tn,N_sinh,Chc_v,a_ch,lng)
SELECT Distinc * FROM R1;
Phm Minh Qu - Database

Tng quan v ngn ng sql

*a ra (h_tn,Nsinh,chc_v,a_ch,lng,tn_phng) vi Iu kin lng>500.000


v ia_ch khng H ni
SELECT Ho_tn,Nsinhn,chc_v,a_ch,lng,tn_phng
FROM Nhnvin R1,Linkt
R2,Phong R3
WHERE (R1.lng>500.000) and (not
R1.a_ch=H ni) and
(R1.#NV=R2.#NV) and
(R2.#MP=R3.#MP);
-Trong lnh trn ta dng R1,R2,R3 lm b
danh cho Nhnvin, Linkt,Phong
Cc b danh ch c tc dng trong mt
cu lnh
Cc v d sau ny ta dng R1,R2,R3 thay
cho cc bng trn cho gn
C 4 ton t hay c dng vi cc kiu d
liu.Trong mnh WHERE l:
In (not In)
Between..and..(not between..)
Like(not like)
Is null (not is Null).
+Ton t In (not In):dng kim tra gi tr
trong(khng nm trong) mt danh sch c
ch ra.
V d :a ra nhng ngi c ia_ch H ni
v H ty.
SELECT * FROM R1 WHERE ia_ch in (H
ni,H ty);
Phm Minh Qu - Database

Tng quan v ngn ng sql

+Ton t Between..and..(not ..) : kim tra gi


tr nm gia (khng nm gia) mt phm vi
c ch ra.
VD :a ra nhng ngi c lng nm trong
khong (500.000-:-1.000.000).
SELECT * FROM R1 WHERE lng between
500.000 and 1.000.000;
+Ton t like (not like):dng kim tra
nhng gi tr ging (khng ging) vi gi tri
sau like,thng s dng vi xu k t v khi ta
khng bit chnh xc gi tr cn tm kim
hoc gi tr cn tm kim ging mt mu
no .Trong SQL ngi ta s dng k hiu %
cho xu con v _cho 1 k t bt k.
VD:Tm nhng ngi c tn m c k t u
tin bt k,k t tip theo l OA v tip theo l
dy k t bt k:
SELECT *FROM R1 WHERE hoten=_OA%;
+Ton t Is Null (not is Null):kim tra cho cc
gi tr rng (khng rng);
VD:a ra tt c nhng nhn vin m cp
nht a ch
SELECT *FROM R1 WHERE Dia_chi Not Is
Null;
-Cc hm hay c s dng trong mnh
SELECT:
+AVG:tnh gi tr trung bnh ca mt hoc
nhiu trng b qua cc gi tr rng.
VD:tnh lng TB ca c quan:
SELECT AVG(lng) FROM R1;
Phm Minh Qu - Database

Tng quan v ngn ng sql

+Count:c dng m cc b (hng)


VD:Im tng s bn ghi t R1 c long>500.000
SELECT count(*) FROM R1 WHERE lng>500.000
+Hm Max:tm gi tr ln nht ca biu thc:
VD:tm ngi c lng ln nht trong R1 c
a ch H Ty
SELECT Max(lng) FROM R1 WHERE
a_ch=H_ty;
+Hm Min:tm gi tr nh nht ca biu thc:
VD:tm ngi c lng nh nht trong R1 c
a ch H Ty
SELECT Min(lng) FROM R1 WHERE
a_ch=H_ty;
+Hm Sum:tnh tng gi tr b qua gi tr
rng.
VD:Tnh tng lngca c quan
SELECT Sum(lng) FROM R1;
-NgoI 3 mnh chnh trn ta cn c th :
+Tm kim theo nhm nh mnh GROUP
BYc s dng phn chia cc b thnh cc
nhm nh .
VD:a ra danh sch cc nhn vin theo nhm
a ch
SELECT *FROM R1 Group by ia_ch;
Thng i vi mnh Group by l mnh
Having by s dng ch ra nhng hn ch
ca cc nhm c hin th.Ch rng mnh
Having by ch i vi Group by v iu
Phm Minh Qu - Database

Tng quan v ngn ng sql

kin ca n ch tc ng n tng nhm


bn ghi c ch ra mnh Group by ch
khng tc ng n ton bng.
VD: a ra danh sch cc nhm nhn vin cng
chc v v c lng >500.000
SELECT * FROM R1
Group by chc_v
Having by lng>500.000
-Sp xp theo mt hoc nhiu trng ta dng
mnh
ORDER BY (colum1/[ASc|Desc] ..)
+ASc sp xp theo chiu tng (ngm
nh)
+Desc sp xp theo chiu gim
VD
Sp xp nhn vin theo chiu
gim theo lng ,nu cng mc lng th theo
sp xp theo chiu xp theo chiu tng
ho_tn
SELECT * FROM R1 ORDER BY lng/Desc,ho_tn;
2>Nhm lnh INSERT,UPDATE,DELETE:
*INSERT:
Dng chn dl vo mt quan h chng
ta c th to ra 1 b chn vo hoc mt
tp cc b t hi p SELECT chn vo
C php ca lnh: INSERT INTO R[A1..An]
VALUES(vl1..)
VD:chn 1 hng (020,Nguyn trng
Ngha,Bo v,H ni,800.000)vo R1
INSERT INTO R1 VALUES
Phm Minh Qu - Database

Tng quan v ngn ng sql

10

(020,Nguyn
trng Ngha,Bo v,H ni,800.000);
*UPDATE
Dng s i gi tr ca mt hoc
nhiu b tn ti trong quan h c php cu
lnh
UPDATE R SET..[WHERE p]
VD:-lng ca tt c cc nhn vin ca c
quan cng tng 5%
UPDATE R1 SET lng=lng*1,05
-ch tng lng ca nhng ngi c lng<500.000 v tng 10%
UPDATE R1 SET lng=lng*1,1 WHERE lng<500.000
*DELETE:
Dng xo b 1 hoc nhiu b trong
quan h
C php:
DELETE FROM R[WHERE P]
nhng b no tho mn k P th mi b hu
b khi quan h R
VD: DELETE FROM R1 WHERE ng_sinh>01-011935;
Xo b tt c cc nhn vin ta dng lnh
DELETE FROM R1;
Ch :lnh DELETE ch thao tc vi 1 quan
h.Mun hu cc b t nhiu quan h ta dng
DELETE cho mi quan h.Lnh DELETE ch
nh du cc bn ghi ch cha thc s xo hn
,ta c th khi phc li c . xo hn ta
Phm Minh Qu - Database

10

Tng quan v ngn ng sql

11

dung lnh COMMIT ,khi ra lnh ny ta


khng th khi phc li c na .Khi cha ra
lnh COMMIT ta c th khi phc li bng cch
dng lnh ROLLBACK.
3>Nhm lnh CREATE,ALTER,DROP:
a>Lnh CREATE
Lnh ny dng to ra cc quan h nh
TABLE,VIEW,INDEX
*CREATE TABLE
-Bng l mt cu trc c bn ct gi trong
h thng quan h.C khun dng hai chiu
gm c cc ct v hng.Nl yu t c bn
cho cc thao tc khc nhau.C th ni vic to
bng l bc u tin quan trng nht thit
lp CSDL.
-C php ca lnh ny:
CREATE TABLE table-name(colom_name
type(size)..)
Khi to ra bng chng ta phi ch ra kiu d
liu ca ct v mi ct ch c th c mt kiu
d li duy nht.Khi to bng ta c th a ra
cc rng buc
Cc rng buc ca cc trng c th l : primary
key,foreign ket ,unique,not null ...
VD:to bng nhn vin
CREATE TABLE NHAN_VIEN (#NV varchar(4)
constraint NV_Primary key,ho_tn
Varchar(25),Ng_sinh date,chcv
varchar(20),ia_ch varchar(30).lng
number(7));
Phm Minh Qu - Database

11

Tng quan v ngn ng sql

12

trong VD trn ta to ra mt rng buc l


#NV c nh ngha l primary key
-Ta cng c th to ra bng mi vi cu trc v
d liu t 1 bng khc.
C php:
CREATE TABLE
TABLE_name[(colum_name..)]AS
SELECT statement;
VD:to ra 1 bng mi c tn l NVN
(#NV,h_tn) t bng NHAN_VIEN
CREATE TABLE NVN AS SELECT #NV,h_tn
FROM NHAN_VIEN;
*CREATE VIEW:
-VIEWs ging nh nhng window m thng qua
nhng window ny d liu c th c xem
hoc thay i.
N c th c to ra da trn mt hay nhiu
bng trong CSDL.N l mt bng o khng tn
ti thc s trong CSDL.Nhng n c th c truy
nhp nh l cc bng thng thng.Ta c th
nhn c cc hng t VIEW vi cc lnh SELECT
v trong hu ht cc trng hp ca vic
UPDATE,INSERT,DELETE hng t CSDL thng
qua VIEW.C mt vI trng hp khng cho php
UPDATE t CSDL.
-Vic s dng VIEW c rt nhiu hu ch trong
vic:
+Hn ch vic truy nhp CSDL .SELECT t
mt VIEW c th hin th phn hn ch ca
CSDL mt cch nhanh chng.
Phm Minh Qu - Database

12

Tng quan v ngn ng sql

13

+Cho php ngi dng to ra nhng hi p


n gin nhn c kt qu t nhng hi
p phc tp m khng cn bit cch thc ni
cc bng nh th no.
+Cung cp cc phn t d liu c lp
cho ngi s dng v cc chong trnh vit ng
dng dn n m bo cho vic bo mt d
liu ,che du d liu no khi mt user
no .
C php : CREATE [or REPLACE/FORCE] VIEW
view_name [colum..]
AS Query,[with check option]
-OR REPLACE:cho php mt VIEW c to ra
thm ch nu mt VIEW tn ti c cng tn
nh vy.Do n s thay th VIEW c.
-FORCE:cho php to ra VIEW thm ch cc
bng c s cha tn ti nhng cc bng phi tn
ti trc khi VIEW c s dng
-Mnh WITH CHECK OPTION:ch ra rng
vic INSERT,UPDATE thc hin thng qua VIEW
l khng cho php.
VD: To VIEW c tn NV_phong t R1,R2,R3
gm cc trng H_tn,phng
CREATE VIEW NV_phong AS SELECT
hotn,tnphong FROM R1,R2,R3 WHERE
(R1.#NV=R2.#NV)and (R2.#MP=R3.#MP) with
check option;
*CREATE INDEX

Phm Minh Qu - Database

13

Tng quan v ngn ng sql

14

Bng ch s l mt i tng c bit c


to ra cung cp cho vic truy nhp ti bng
trong CSDL mt cch nhanh chng
C php:
CREATE INDEX index_name ON
table(colum)
VD: CREATE INDEX Nhn _ vien_id ON
NHAN_VIEN (H_tn);
b>
Lnh ALTER
-Dng hoc l thm mt hay nhiu trng
vo bng hoc sa i mt ct hin
ti.SQL ANSI chun khng cho php hu b
cc ct.
-C php:
ALTER TABLE TABLE_name ADD | MODIFY |
DROP option (colum Datatype..)
+ADD:thm ct mi
+MODIFY:sa i ct
+DROP option xo b cc rng buc
VD1:thm trng gia nh kiu char(1) vo R1
ALTER TABLE R1 ADD gia nh char(1);
VD2:Thay i trng a_ch Varchar(30)
trong R1 thnh a_Ch(20):
ALTER TABLE R1 MODIFY a_Ch
varchar(20);
VD3:Hu b rng buc trng kho #NV trong
R1
ALTER TABLE R1 DROP constraint
NV_prim
c>Lnh DROP
Phm Minh Qu - Database

14

Tng quan v ngn ng sql

15

-Dng xo b mt quan h,khi ta xo b


mt bng c s th tt c cc VIEW,INDEX c
nh ngha trn bng s b xo b .
C phap:
DROP TABLE/VIEW/INDEX Name;
VD:Xa b Nhn_vin_id;
DROP INDEX Nhn_vin_id;
4>Tp lnh GRANT,REVOKE:
* kim tra quyn truy nhp CSDL dng lnh
GRANT
C php:
GRANT privileges ON object TO
(user/public)[WITH GRANT OPTION]
-cc quyn (privileges) truy nhp CSDL:
+Read(c)
+SELECT(chn)
+write(ghi)
+INSERT(b sung)
+UPDATE(sa i)
+DELETE,run.
-i tng (object) :l tn cc quan h hoc tn
cc chng trnh.
-Tn ngui s dng:Tn ca mt ngi ,mt
nhm ngi hoc danh sch ngi
public:cho tt c mi ngi cng c s dng.
-T kho :with grant OPTION:m bo ngi
s dng c th tip tc trao quyn s dng
cho ngi khc.
VD:cho php SELECT,INSERT,UPDATE trn bng
R1 cho Ngha,Khi
Phm Minh Qu - Database

15

Tng quan v ngn ng sql

16

GRANT SELECT,INSERT,UPDATE ON R1 TO
Ngha,Khi with grant option;
Ngha,Khi c th trao quyn trn cho ngi
khc.
* hu b quyn truy nhp
C php:REVOKE privileges ON object FROM
user
VD: hu b quyn UPDATE t Ngha:
REVOKE UPDATE ON R1 FROM Ngha;
Li kt thc:
Trong bi ny ti mun trnh by vi cc bn
v ngn ng SQL chun cc nhm khc c
th tham kho .Nhng do ti liu v SQL chun
khng c ,m ti ch tham kho cc ti liu
v SQL s dng cho truy nhp CSDL ca
ORACLE cho nn trong khi trnh by c khi "
Lm dng" v SQL s dng trong ORACLE . Rt
mong cc bn gp kin!

Ngi trnh by : Phm Minh


Qu_K40B
Ti liu tham kho :
+INTRODUCTION TO ORACLE :
SQL
PL/SQL AND SQL*PLUS

Phm Minh Qu - Database

16

Tng quan v ngn ng sql

17

Phm Minh Qu - Database

17

You might also like