You are on page 1of 9

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 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.
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

Phm Minh Qu - Database

Tng quan v ngn ng sql

tnh m ta mong mun.Khi lnh SELECT gm c ba mnh

chnh:
+SELECT:xc nh ni dung ca cc ct cn a ra.
+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;
*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).

Phm Minh Qu - Database

Tng quan v ngn ng sql

+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);
+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;
+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;
Phm Minh Qu - Database

Tng quan v ngn ng sql

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 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
(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-01-1935;
Xo b tt c cc nhn vin ta dng lnh
DELETE FROM R1;
Phm Minh Qu - Database

Tng quan v ngn ng sql

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 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));
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:
Phm Minh Qu - Database

Tng quan v ngn ng sql

+Hn ch vic truy nhp CSDL .SELECT t mt VIEW c th


hin th phn hn ch ca CSDL mt cch nhanh chng.
+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
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
Phm Minh Qu - Database

Tng quan v ngn ng sql

ALTER TABLE R1 DROP constraint NV_prim


c>Lnh DROP
-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
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 :
Phm Minh Qu
Database
+INTRODUCTION TO ORACLE :
SQL
PL/SQL AND SQL*PLUS

Tng quan v ngn ng sql

Phm Minh Qu - Database

You might also like