Professional Documents
Culture Documents
- HCNHN
Bin tp bi:
T HTTT i hc Cng nghip H Ni
MC LC
1. Tng quan v DBMS v SQL sever
2. Ngn ng nh ngha d liu
3. Ngn ng thao tc d liu
3.1. Ngn ng thao tc d liu
3.2. Php ni
4. Lm vic vi View ( khung nhn )
5. Bo mt trong SQL
6. Th tc lu tr , hm v trigger
6.1. Th tc lu tr
6.2. Hm v trigger
7. Giao dch SQL
8. Ph lc Giao trinh He quan tri CSDL-SQL
Tham gia ng gp
1/143
php qun l v tng tc vi CSDL. Trn ngi dng c th nh ngha, thao tc,
v x l d liu trong mt CSDL xut ra nhng thng tin c ngha.
V d 1-5 : mt DBMS c th qun tr c s d liu ca mt trng i hc cng nh
nhng c s d liu c ngha khc nh : c s d liu phc v tng thu nhp quc gia,
mt c s d liu lin hp quc v d liu a l th gii,v..v
- Mt h c s d liu (HCSDL/ DBS: DataBase System) l mt phn mm cho php
xy dng mt HQTCSDL.
Cc vn cn x l ca h c s d liu
3/143
Tnh bt thng trong truy xut cnh tranh : Mt h thng cho php nhiu ngi
s dng cp nht d liu ng thi, c th dn n kt qu l d liu khng nht qun.
iu ny i hi mt s gim st. H thng x l file thng thng khng cung cp
chc nng ny.
Vn an ton (Security problems): mt ngi s dng h c s d liu khng cn
thit v cng khng c quyn truy xut tt c cc d liu. Vn ny i hi h thng
phi m bo c tnh phn quyn, chng truy xut tri php ... Cc bt li nu trn
gi m s pht trin cc DBMS. Phn sau ca gio trnh s cp n cc quan nim
v cc thut ton c s dng pht trin mt h c s d liu nhm gii quyt cc
vn nu trn .
Hu ht cc h qun tr CSDL u thc hin cc chc nng sau :
Lu tr d liu
To ra v duy trCSDL
Cho php nhiungi dngtruy xut ngthi
H tr tnh bo mt v ring t
Cho php xem v x l d liu lu tr
Cho php cp nht v lu tr d liu sau khi cp nht
Cung cp mt c ch ch mc (index) hiu qu truy cp nhanh cc d liu la chn
Cung cp tnh nht qun gia cc bn ghi khc nhau
Bo v d liu khi mt mt bng cc qu trnh sao lu (backup) v phc hi (recovery).
Tng quan v c s d liu quan h
M hnh d liu quan h
M hnh d liu quan h c Codd xut nm 1970 v n nay tr thnh m hnh
c s dng ph bin trong cc h qun tr c s d liu thng mi. Ni mt cch
n gin, mt c s d liu quan h l mt c s d liu trong tt c d liu c t
chc trong cc bng c mi quan h vi nhau. Mi mt bng bao gm cc dng v cc
ct: mi mt dng c gi l mt bn ghi (b) v mi mt ct l mt trng (thuc
tnh). Hai hay nhiu bng c th c lin kt nu chng c mt hay nhiu trng chung)
Hnh 1.1 minh ho cho ta thy c 3 bng trong mt c s d liu
4/143
Bng (Table)
Nh ni trn, trong c s d liu quan h, bng l i tng c s dng t
chc v lu tr d liu. Mt c s d liu bao gm nhiu bng v mi bng c xc
nh duy nht bi tn bng. Mt bng bao gm mt tp cc dng v cc ct: mi mt
dng trong bng biu din cho mt thc th (trong hnh 1.1, mi mt dng trong bng
SINHVIEN tng ng vi mt sinh vin), v mi mt ct biu din cho mt tnh cht
ca thc th (chng hn ct NGAYSINH trong bng SINHVIEN biu din cho ngy
sinh ca cc sinh vin c lu tr trong bng).
Nh vy, lin quan n mi mt bng bao gm cc yu t sau:
Tn ca bng: c s dng xc nh duy nht mi bngn trong c s d liu.
Cu trc ca bng: Tp cc ct trong bng. Mi mtct trong bng c xc nh bi
mt tn ct v phi c mt kiu d liu no (chng hn ct NGAYSINH trong bng
SINHVIEN hnh 1.1 c kiu l DATETIME). Kiu d liu ca mi ct qui nh gi
tr d liu c th c chp nhn trn ct .
D liu ca bng: Tp cc dng (bn ghi) hin c trong bng.
5/143
Kho ca bng
Trong mt c sd liu c thit k tt, mi mt bng phi c mt hoc mt tp cc
ct m gi tr d liu ca n xc nh duy nht mt dng trong mt tp cc dng ca
bng.
Tp mt hoc nhiu ct c tnh cht ny c gi l kho ca bng.
Vic chn kho ca bng c vai tr quan trng trong vic thit k v ci t cc c s
d liu quan h. Cc dng d liu trong mt bng phi c gi tr khc nhau trn kho.
Bng MONHOC trong hnh di y c kho l ct MAMONHOC
6/143
7/143
8/143
cp d liu (access data) trong SQL Server. Tuy nhin ta nn chn Mixed Mode d
dng cho vic hc tp.
Sau khi install bn s thy mt icon nm gc phi bn di mn hnh, y chnh l
Service Manager. C th Start, Stop cc SQL Server services d dng bng cch doubleclick vo icon ny.
Mt cht kin thc v cc Version ca SQL Server
SQL Server ca Microsoft c th trng chp nhn rng ri k t version 6.5. Sau
Microsoft ci tin v hu nh vit li mt engine mi cho SQL Server 7.0. Cho
nn c th ni t version 6.5 ln version 7.0 l mt bc nhy vt. C mt s c tnh
ca SQL Server 7.0 khng tng thch vi version 6.5. Trong khi t Version 7.0 ln
version 8.0 (SQL Server 2000) th nhng ci tin ch yu l m rng cc tnh nng v
web v lm cho SQL Server 2000 ng tin cy hn.
Mt im c bit ng lu version 2000 l Multiple-Instance. Ni cho d hiu l
bn c th install version 2000 chung vi cc version trc m khng cn phi uninstall
chng. Ngha l bn c th chy song song version 6.5 hoc 7.0 vi version 2000 trn
cng mt my (iu ny khng th xy ra vi cc version trc y). Khi version
c trn my bn l Default Instance cn version 2000 mi va install s l Named
Instance.
Cc thnh phn quan trng trong SQL Server 2000
SQL Server 2000 c cu to bi nhiu thnh phn nh Relational Database Engine,
Analysis Service v English Query.... Cc thnh phn ny khi phi hp vi nhau to
thnh mt gii php hon chnh gip cho vic lu tr v phn tch d liu mt cch d
dng
Relational Database Engine - Ci li ca SQL Server:
y l mt engine c kh nng cha data cc quy m khc nhau di dng table v
support tt c cc kiu kt ni (data connection) thng dng ca Microsoft nh ActiveX
Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC). Ngoi ra
n cn c kh nng t iu chnh (tune up) v d nh s dng thm cc ti nguyn
(resource) ca my khi cn v tr li ti nguyn cho h iu hnh khi mt user log off.
Replication - C ch to bn sao (Replica):
Gi s bn c mt database dng cha d liu c cc ng dng thng xuyn cp
nht. Khi bn mun c mt database ging ht nh th trn mt server khc chy bo
co (report database) (cch lm ny thng dng trnh nh hng n performance
ca server chnh). Vn l report server ca bn cng cn phi c cp nht thng
9/143
10/143
c tnh ca SQL Server 7.0 khng tng thch vi version 6.5. Trong khi t Version
7.0 ln version 8.0 (SQL Server 2000) th nhng ci tin ch yu l m rng cc tnh
nng v web v lm cho SQL Server 2000 ng tin cy hn.
Mt im c bit ng lu version 2000 l Multiple-Instance. Ni cho d hiu
l bn c th install version 2000 chung vi cc version trc m khng cn phi
uninstall chng. Ngha l bn c th chy song song version 6.5 hoc 7.0 vi version
2000 trn cng mt my (iu ny khng th xy ra vi cc version trc y). Khi
version c trn my bn l DefaultInstance cn version 2000 mi va install s l
NamedInstance.
S lc v SQL
Tng quan v T- SQL
Bn thn SQL khng phi l mt h qun tr c s d liu, n khng th tn ti c lp.
SQL thc s l mt phn ca h qun tr c s d liu, n xut hin trong cc h qun
tr c s d liu vi vai tr ngn ng v l cng c giao tip gia ngi s dng v h
qun tr c s d liu.
Trong hu ht cc h qun tr c s d liu quan h, SQL c nhng vai tr nh sau:
SQL l ngn ng hi c tnh tng tc: Ngi s dng c th d dng thng qua cc
trnh tin ch gi cc yu cu di dng cc cu lnh SQL n c s d liu v nhn
kt qu tr v t c s d liu
SQL l ngn ng lp trnh c s d liu: Cc lp trnh vin c th nhng cc cu
lnh SQL vo trong cc ngn ng lp trnh xy dng nn cc chng trnh ng dng
giao tip vi c s d liu
SQL l ngn ng qun tr c s d liu : Thng qua SQL, ngi qun tr c s d
liu c th qun l c c s d liu, nh ngha cc cu trc lu tr d liu, iu khin
truy cp c s d liu,...
SQL l ngn ng cho cc h thng khch/ch (client/server): Trong cc h thng
c s d liu khch/ch, SQL c s dng nh l cng c giao tip gia cc trnh
ng dng pha my khch vi my ch c s d liu.
SQL l ngn ng truy cp d liu trn Internet : Cho n nay, hu ht cc my ch
Web cng nh cc my ch trn Internet s dng SQL vi vai tr l ngn ng tng
tc vi d liu trong cc c s d liu.
13/143
INSERT
B sung d diu
UPDATE
Cp nht d liu
DELETE
Xo d liu
TRUNCATE
Cu l nh nh ngha d liu C h c n n g
CREATE TABLE
To bng
DROP TABLE
Xo bng
ALTER TABLE
Sa i bng
CREATE VIEW
To khung nhn
ALTER VIEW
Sa i khung nhn
DROP VIEW
Xo khung nhn
CREATE INDEX
To ch mc
DROP INDEX
Xo ch mc
CREATE SCHEMA
To lc c s d liu
DROP SCHEMA
Xo lc c s d liu
14/143
CREATE PROCEDURE
To th tc lu tr
ALTER PROCEDURE
Sa i th tc lu tr
DROP PROCEDURE
Xo th tc lu tr
CREATE FUNCTION
ALTER FUNCTION
Sa i hm
DROP FUNCTION
Xo hm
CREATE TRIGGER
To trigger
ALTER TRIGGER
Sa i trigger
DROP TRIGGER
Xo trigger
Cu l nh iu khin truy cp C h c n n g
GRANT
REVOKE
ROLLBACK
SAVE TRANSACTION
Cu l nh lp trnh C h c n n g
DECLARE
OPEN
FETCH
CLOSE
ng mt con tr
EXECUTE
15/143
Cu lnh:
SELECT masv,hodem,ten FROM sinhvien WHERE malop=C24102
dng truy xut d liu trong bng SINHVIEN c bt u bi t lnh SELECT,
trong cu lnh bao gm hai mnh : mnh FROM ch nh tn ca bng cn truy
xut d liu v mnh WHERE ch nh iu kin truy vn d liu.
Qui tc s dng tn trong SQL
Cc i tng trong c s d liu da trn SQL c xc nh thng qua tn ca i
tng. Tn ca cc i tng l duy nht trong mi c s d liu. Tn c s dng
nhiu nht trong cc truy vn SQL v c xem l nn tng trong c s d liu quan h
l tn bng v tn ct.
Trong cc c s d liu ln vi nhiu ngi s dng, khi ta ch nh tn ca mt bng
no trong cu lnh SQL, h qun tr c s d liu hiu l tn ca bng do ta s
hu (tc l bng do ta to ra). Thng thng, trong cc h qun tr c s d liu ny cho
php nhng ngi dng khc nhau to ra nhng bng trng tn vi nhau m khng gy
ra xung t v tn. Nu trong mt cu lnh SQL ta cn ch n mt bng do mt ngi
dng khc s hu (hin nhin l phi c php) th tn ca bng phi c vit sau tn
ca ngi s hu v phn cch vi tn ngi s hu bi du chm:
tn_ngi_s_hu.tn_bng
Mt s i tng c s d liu khc (nh khung nhn, th tc, hm), vic s dng tn
cng tng t nh i vi bng.
Ta c th s dng tn ct mt cch bnh thng trong cc cu lnh SQL bng cch ch
cn ch nh tn ca ct trong bng. Tuy nhin, nu trong cu lnh c lin quan n hai
ct tr ln c cng tn trong cc bng khc nhau th bt buc phi ch nh thm tn
bng trc tn ct; tn bng v tn ct c phn cch nhau bi du chm.
V d di y minh ho cho ta thy vic s dng tn bng v tn ct trong cu lnh
SQL
SELECT masv,hodem,ten,sinhvien.malop,tenlop FROM
dbo.sinhvien,dbo.lop WHERE sinhvien.malop = lop.malop
Kiu d liu
Chun ANSI/ISO SQL cung cp cc kiu d liu khc nhau s dng trong cc c s
d liu da trn SQL v trong ngn ng SQL. Da trn c s cc kiu d liu do chun
ANSI/ISO SQL cung cp, cc h qun tr c s d liu thng mi hin nay c th s
16/143
dng cc dng d liu khc nhau trong sn phm ca mnh. Bng 1.2 di y lit k
mt s kiu d liu thng dng c s dng trong SQL.
Mt s kiu d liu thng dng trong SQL
Tn kiu
M t
CHAR (n)
Kiu chui vi di c nh
NCHAR (n)
VARCHAR (n)
NVARCHAR (n)
INTEGER
INT
Nh kiu Integer
TINYTINT
S nguyn c gi tr t 0 n 255.
SMALLINT
BIGINT
NUMERIC (p,s)
DECIMAL (p,s)
FLOAT
REAL
MONEY
Kiu tin t
BIT
DATETIME
VARBINARY
IMAGE
TEXT
NTEXT
17/143
18/143
19/143
20/143
Kch thc ban u(Initial size) : l kch thc khi to ca tp tin d liu khi c s d
liu mi c to lp. n v tnh l MegaByte (MB). Thng thng kch thc ban u
ca mt c s d liu mi ti thiu phi bng vi kch thc ca c s d liu Model,
bi v Microsoft SQL Server s ly c s d liu Model lm khun dng mu khi hnh
thnh mt c s d liu mi.
Vic tng trng kch thc tp tin d liu (File growth) : l cc qui nh cho vic
tng trng t ng kch thc tp tin d liu, bi v cc d liu s c lu tr ngy
cng nhiu hn so vi kch thc ban u khi to lp. Vic tng trng s t ng lm
tng kch thc tp tin d liu theo tng MB hoc theo t l phn trm (by percent) ca
kch thc hin hnh khi cc d liu bn trong Microsoft SQL Server lu tr gn y so
vi kch thc tp tin vt l hin thi. Mc nh kch thc tp tin d liu s c tng
t ng 10% khi d liu lu tr gn y.
Kch thc ti a tp tin d liu (Maximum file size) : l vic qui nh s tng trng
t ng kch thc ca cc tp tin d liu nhng c gii hn (restrict file growth) n
MB no hoc l khng c gii hn (un-restrict file growth). Trong trng hp nu
cc bn chn c gii hn kch thc ca tp tin d liu th chng ta phi bit t thm
vo cc tp tin d liu mi khi d liu lu tr bng vi kch thc ti a ca tp
tin d liu. Cc tp tin d liu mi ny chnh l loi tp tin th yu (Secondary data
file) v chng ta c th lu tr cc tp tin vt l ny ti cc a cng khc c bn trong
Microsoft SQL Server. y cng l mt trong nt c trng ca m hnh c s d liu
phn tn (distributed database). i vi cc CSDL thc t, vic xc nh cc tham s v
kch thc ban u rt quan trng v nhiu l do. m bo c khng gian lu tr
d liu, bn cn dnh trc cho CSDL phng khi nhng ng hay CSDL khc s dng
ht a cng. CSDL c kch thc nh cng s nh hng ti tc do SQL Server cn
phi thc hin nhiu ln thao tc m rng kch thc tp tin CSDL khi c d liu thm
mi. Ngoi ra, a s cc d liu trong CSDL thc t theo thi gian khng th xo b m
cn phi lu tr (backup) li trc. Vic lu tr v phc hi (restore) d liu cng nh
hng bi kch thc cc tp tin do chng phi nh lu trn cc a CD- ROM
hay bng t. Cc bc m chng ti m t bn di s gip cc bn to ra mt c s d
liu mi bng tin ch Enterprise Manager.
Bc1: Khi ng ng dng Enterprise Manager, chn mt (1) Microsoft SQL Server
c ng k qun tr trc . Chn chc nng New Database... trong thc n tt
sau khi nhn chut phi trn i tng Database
22/143
23/143
24/143
25/143
Xo c s d liu c
Mt c s d liu sau khi to xong sau mt thi gian di m cc bn khng cn khai
thc d liu bn trong th cc bn c th hy b lm cho dung lng a trng
c tng ln. Tuy nhin phi chc rng cc thng tin d liu trong c s d liu m cc
bn d nh xa s khng cn hu ch v sau na. Bi v chng ta khng th khi phc
khi xa. hy b c s d liu trong Microsoft SQL Server chng ta c nhiu cch
thc hin: s dng cu lnh DROP DATABASE, nhn phm Delete hoc nhn chut
trn biu tng Delete v xc nh ng hy b c s d liu chn trong tin ch
Enterprise Manager. hy b c s d liu QLBanHang, thc hin cu lnh DROP
DATABSE nh sau: DROP DATABASE QLBanHang
Hoc nhn phm Delete trn tn ca c s d liu ny trong tin ch Enterprise Manager
v xc nhn l ng (chn Yes) hy b c s d liu QLBanHang. H thng
Microsoft SQL Server khng cho ngi s dng c th hy b cc c s d liu h thng
nh l: Master, Model, Tempdb bi v cc c s d liu lun c h thng Microsoft
SQL Server s dng. Ngoi ra hy b mt c s d liu thnh cng th phi m bo
khng cn ngi s dng no ang truy cp vo c s d liu . Trong trng hp khi
thc hin hy b c s d liu ang cn ngi s dng truy cp th h thng s hin th
thng bo bn di.
Ch
26/143
27/143
Nhng trng no s tham gia vo kha chnh ca bng. Bng c quan h vi nhng
bng khc hay khng v nu c th quan h nh th no.
Trn cc trng ca bng c tn ti nhng rng buc v khun dng, iu kin hp l
ca d liu hay khng; nu c th s dng u v nh th no.
To cu trc bng d liu bng EM
Sau khi xem xt v hiu c cc thuc tnh lin quan n cu trc ca bng, trong
phn ny chng ti s hng dn cc bn cc cch to cu trc bng d liu mi.
to cu trc bng chng ti hng dn cc bn hai (2) cch thc hin. u tin l to
cu trc bng bng tin ch Enterprise Manager. K t by gi chng ti xem nh cc
bn ng k qun tr mt Microsoft SQL Server v bn trong Microsoft SQL Server
ny, c s d liu qun l bn hng (QLBanHang) c to lp. Cc bng d liu v
nhng i tng khc cc phn trnh by k tip s c to ra bn trong c s d liu
QLBanHang ny. Cc bc thc hin vic to bng d liu trong Enterprise Manager
nh sau:
Bc 1:Trong ng dng Enterprise Manager, m rng c s d liu thy cc i
tng bn trong. Nhn chut phi trn i tng Tables, chn chc nng New Table...
trong thc n tt.
To bng d liu
28/143
Mn hnh ch nh tn bng mi
29/143
30/143
Quy nh khun dng hay gi tr d liu c cho php trn ct (chng hn qui nh tui
ca mt hc sinh phi ln hn 6 v nh hn 20, s in thoi phi l mt chui bao gm
6 ch s,...). Nhng rng buc kiu ny c gi l rng buc CHECK
m bo tnh ton vn d liu trong mt bng v ton vn tham chiu gia cc bng
trong c s d liu. Nhng loi rng buc ny nhm m bo tnh ng ca d liu nh:
s chng minh nhn dn ca mi mt ngi phi duy nht, nu sinh vin hc mt lp
no th lp phi tn ti,... Lin quan n nhng loi rng buc ny bao gm cc
rng buc PRIMARY KEY (kho chnh), UNIQUE (kha d tuyn) v FOREIGN KEY
(kho ngoi)
Cc loi rng buc ny s c trnh by chi tit hn phn sau.
Cu lnh di y nh ngha bng NHANVIEN vi cc trng MANV (m nhn vin),
HOTEN (h v tn), NGAYSINH (ngy sinh ca nhn vin), DIENTHOAI (in thoi)
v HSLUONG (h s lng)
CREATE TABLE nhanvien ( manv NVARCHAR(10) NOT NULL, hoten
NVARCHAR(50) NOT NULL, ngaysinh DATETIME NULL, dienthoai
NVARCHAR(10) NULL, hsluong DECIMAL(3,2) DEFAULT (1.92) )
Trong cu lnh trn, trng MANV v HOTEN ca bng NHANVIEN khng c
NULL (tc l bt buc phi c d liu), trng NGAYSINH v DIENTHOAI s nhn
gi tr NULL nu ta khng nhp d liu cho chng cn trng HSLUONG s nhn gi
tr mc nh l 1.92 nu khng c nhp d liu.
Nu ta thc hin cc cu lnh di y sau khi thc hin cu lnh trn b sung d
liu cho bng NHANVIEN
INSERT INTO nhanvien VALUES('NV01','Le Van A','2/4/
75','886963',2.14) INSERT INTO
nhanvien(manv,hoten)VALUES('NV02','Mai Thi B') INSERT INTO
nhanvien(manv,hoten,dienthoai) VALUES('NV03','Tran Thi
C','849290')
Ta s c c d liu trong bng NHANVIEN nh sau:
31/143
33/143
34/143
35/143
36/143
Sa i nh ngha bng
Mt bng sau khi c nh ngha bng cu lnh CREATE TABLE c th c sa
i thng qua cu lnh ALTER TABLE. Cu lnh ny cho php chng ta thc hin c
cc thao tc sau:
B sung mt ct vo bng.
Xo mt ct khi bng.
Thay i nh ngha ca mt ct trong bng.
Xo b hoc b sung cc rng buc cho bng C php ca cu lnh ALTER TABLE
nh sau: ALTER TABLE tn_bng
ADD nh_ngha_ct | ALTER COLUMN tn_ct kiu_d_liu
[NULL | NOT NULL] | DROP COLUMN tn_ct | ADD CONSTRAINT
tn_rng_buc nh_ngha_rng_buc | DROP CONSTRAINT
tn_rng_buc
Cc v d di y minh ho cho ta cch s dng cu lnh ALTER TABLE trong cc
trng hp.
Gi s ta c hai bng DONVI v NHANVIEN vi nh ngha nh sau:
37/143
L u :
Nu b sung thm mt ct vo bng v trong bng c t nht mt bn ghi th ct
mi cn b sung phi cho php chp nhn gi tr NULL hoc phi c gi tr mc nh.
Mun xo mt ct ang c rng buc bi mt rng buc hoc ang c tham chiu
bi mt kho ngoi, ta phi xo rng buc hoc kho ngoi trc sao cho trn ct khng
cn bt k mt rng buc v khng cn c tham chiu bi bt k kho ngoi no.
Nu b sung thm rng buc cho mt bng c d liu v rng buc cn b sung
khng c tho mn bi cc bn ghi c trong bng th cu lnh ALTER TABLE
khng thc hin c.
Xo bng
Khi mt bng khng cn cn thit , ta c th xo n ra khi c s d liu bng cu lnh
DROP TABLE. Cu lnh ny cng ng thi xo tt c nhng rng buc, ch
mc, trigger lin quan n bng .
Cu lnh c c php nh sau:
DROP TABLE tn_bng
Trong cc h qun tr c s d liu, khi xo mt bng bng lnh DROP TABLE, ta
khng th khi phc li bng cng nh d liu ca n. Do , cn phi cn thn khi s
dng cu lnh ny.
Cu lnh DROP TABLE khng th thc hin c nu bng cn xo ang c tham
chiu bi mt rng buc FOREIGN KEY. Trong trng hp ny, rng buc FOREIGN
KEY ang tham chiu hoc bng ang tham chiu n bng cn xo phi c xo
trc.
Khi mt bng b xo, tt c cc rng buc, ch mc v trigger lin quan n bng cng
ng thi b xa theo. Do , nu ta to li bng th cng phi to li cc i tng ny.
Gi s ct MADV trong bng DONVI ang c tham chiu bi kho ngoi
fk_nhanvien_madvtrong bng NHANVIEN. xo bng DONVI ra khi c s d liu,
ta thc hin hai cu lnh sau:
Xo b rng buc fk_nhanvien_madv khi bng NHANVIEN:
ALTER TABLE nhanvien DROP CONSTRAINT fk_nhanvien_madv
39/143
Xo bng DONVI:
DROP TABLE donvi
40/143
Mnh FROM
Mnh FROM trong cu lnh SELECT c s dung nhm ch nh cc bng v
khung nhn cn truy xut d liu. Sau FROM l danh sch tn ca cc bng v khung
nhn tham gia vo truy vn, tn ca cc bng v khung nhn c phn cch nhau bi
du phy.
Cu lnh di y hin th danh sch cc khoa trong trng
SELECT * FROM khoa
kt qu cu lnh nh sau:
42/143
Ta c th s dng cc b danh cho cc bng hay khung nhn trong cu lnh SELECT. B
danh c gn trong mnh FROM bng cch ch nh b danh ngay sau tn bng.
Cu lnh sau gn b danh l cho bng khoa
SELECT * FROM khoa a
43/143
Thay i tiu cc ct
Trong kt qu truy vn, tiu ca cc ct mc nh s l tn ca cc trng tng ng
trong bng. Tuy nhin, cc tiu tr nn thn thin hn, ta c th i tn cc tiu
ca cc ct. t tiu cho mt ct no , ta s dng cch vit:
tiu__ct = tn_trng
hoc
tn_trng AS tiu__ct
hoc
tn_trngtiu__ct
Cu lnh di y:
SELECT 'M lp'= malop,tenlop 'Tn lp',khoa AS 'Kho'
FROM lop
cho bit m lp, tn lp v kho hc ca cc lp trong trng. Kt qu ca cu lnh nh
sau:
45/143
hoc
CASE WHEN iu_kin THEN kt_qu [ ... ] [ELSE
kt_qu_ca_else] END
hin th m, h tn v gii tnh (nam hoc n) ca cc sinh vin, ta s dng cu lnh
SELECT masv,hodem,ten,CASE gioitinh WHEN 1 THEN Nam ELSE
N' END AS gioitinh FROM sinhvien
hoc
SELECT masv,hodem,ten, CASE WHEN gioitinh=1 THEN 'Nam'
ELSE 'N' END AS gioitinh FROM sinhvien
Kt qu ca hai cu lnh trn u c dng nh sau
46/143
47/143
48/143
Bng
>
Ln hn
<
Nh hn
>=
Ln hn hoc bng
<=
Nh hn hoc bng
<>
khc
!>
Khng ln hn
!<
Khng nh hn
Cu lnh:
49/143
n g h a
a gi_tr b
50/143
n g h a
K t n bt k
[]
[^]
Cu lnh di y
SELECT hodem,ten FROM sinhvien WHERE hodem LIKE 'L%'
cho bit h tn ca cc sinh vin c h l L v c kt qu nh sau
Cu lnh:
SELECT hodem,ten FROM sinhvien WHERE hodem LIKE 'L%' AND
ten LIKE '[AB]%'
51/143
C kt qu l:
Gi tr NULL
D liu trong mt ct cho php NULL s nhn gi tr NULL trong cc trng hp sau:
Nu khng c d liu c nhp cho ct v khng c mc nh cho ct hay kiu d
liu trn ct .
Ngi s dng trc tip a gi tr NULL vo cho ct .
Mt ct c kiu d liu l kiu s s cha gi tr NULL nu gi tr c ch nh gy
trn s.
Trong mnh WHERE, kim tra gi tr ca mt ct c gi tr NULL hay khng, ta
s dng cch vit:
WHEREtn_ctIS NULL
Hoc :
WHERE tn_ct IS NOT NULL
52/143
Lu :Nu trong danh sch chn c cc biu thc th nhng biu thc ny phi c
t tiu .
Sp xp kt qu truy vn
Mc nh, cc dng d liu trong kt qu ca cu truy vn tun theo th t ca chng
trong bng d liu hoc c sp xp theo ch mc (nu trn bng c ch mc). Trong
trng hp mun d liu c sp xp theo chiu tng hoc gim ca gi tr ca mt
hoc nhiu trng, ta s dng thm mnh ORDER BY trong cu lnh SELECT; Sau
ORDER BY l danh sch cc ct cn sp xp (ti a l 16 ct). D liu c sp xp c
th theo chiu tng (ASC) hoc gim (DESC), mc nh l sp xp theo chiu tng.
Cu lnh di y hin th danh sch cc mn hc v sp xp theo chiu gim dn ca
s n v hc trnh
SELECT * FROM monhoc ORDER BY sodvht DESC
53/143
Php hp
Php hp c s dng trong trng hp ta cn gp kt qu ca hai hay nhiu truy vn
thnh mt tp kt qu duy nht. SQL cung cp ton t UNION thc hin php hp.
C php nh sau
Cu_lnh_1 UNION [ALL] Cu_lnh_2 [UNION [ALL] Cu_lnh_3]
...
[UNION [ALL] Cu_lnh_n] [ORDER BY ct_sp_xp] [COMPUTE
danh_sch_hm_gp [BY danh_sch_ct]]
Trong
Cu_lnh_1 c dng
SELECTdanh_sch_ct [INTO tn_bng_mi] [FROM
danh_sch_bng|khung_nhn] [WHERE iu_kin] [GROUP BY
danh_sch_ct] [HAVING iu_kin]
v
Cu_lnh_i (i = 2,..,n) c dng
SELECT danh_sch_ct [FROM danh_sch_bng|khung_nhn]
[WHERE iu_kin] [GROUP BY danh_sch_ct] [HAVING
iu_kin]
54/143
cu lnh
SELECT A,B FROM Table1 UNION SELECT D,E FROM table2
Cho kt qu nh sau:
Mc nh, nu trong cc truy vn thnh phn ca php hp xut hin nhng dng d liu
ging nhau th trong kt qu truy vn ch gi li mt dng. Nu mun gi li cc dng
ny, ta phi s dng thm t kho ALL trong truy vn thnh phn.
Cu lnh
SELECT A,B FROM Talbe1 UNION ALL SELECT D,E FROM table2
Cho kt qu nh sau
55/143
Khi s dng ton t UNION thc hin php hp, ta cn ch cc nguyn tc sau:
Danh sch ct trong cc truy vn thnh phn phi c cng s lng.
Cc ct tng ng trong tt c cc bng, hoc tp con bt k cc ct c s dng
trong bn thn mi truy vn thnh phn phi cng kiu d liu.
Cc ct tng ng trong bn thn tng truy vn thnh phn ca mt cu lnh UNION
phi xut hin theo th t nh nhau. Nguyn nhn l do php hp so snh cc ct tng
ct mt theo th t c cho trong mi truy vn.
Khi cc kiu d liu khc nhau c kt hp vi nhau trong cu lnh UNION, chng
s c chuyn sang kiu d liu cao hn (nu c th c).
Tiu ct trong kt qu ca php hp s l tiu ct c ch nh trong truy vn
u tin.
Truy vn thnh phn u tin c th c INTO to mi mt bng t kt qu ca chnh
php hp.
Mnh ORDER BY v COMPUTE dng sp xp kt qu truy vn hoc tnh ton
cc gi tr thng k ch c s dng cui cu lnh UNION. Chng khng c s
dng trong bt k truy vn thnh phn no.
Mnh GROUP BY v HAVING ch c th c s dng trong bn thn tng truy
vn thnh phn. Chng khng c php s dng tc ng ln kt qu chung ca
php hp.
Php ton UNION c th c s dng bn trong cu lnh INSERT.
Php ton UNION khng c s dng trong cu lnh CREATE VIEW.
56/143
Php ni
Khi cn thc hin mt yu cu truy vn d liu t hai hay nhiu bng, ta phi s dng
n php ni. Mt cu lnh ni kt hp cc dng d liu trong cc bng khc nhau li
theo mt hoc nhiu iu kin no v hin th chng trong kt qu truy vn.
Xt hai bng sau y:
Bng KHOA
Bng LOP
57/143
Nh vy, thc hin c yu cu truy vn d liu trn, ta phi thc hin php ni
gia hai bng KHOA v LOP vi iu kin ni l MAKHOA ca KHOA bng vi
MAKHOA ca LOP. Cu lnh s c vit nh sau:
SELECT malop,tenlop FROM khoa,lop WHERE khoa.makhoa =
lop.makhoa AND tenkhoa='Khoa Cng ngh Thng tin'
S dng php ni
Php ni l c s thc hin cc yu cu truy vn d liu lin quan n nhiu bng.
Mt cu lnh ni thc hin ly cc dng d liu trong cc bng tham gia truy vn, so
snh gi tr ca cc dng ny trn mt hoc nhiu ct c ch nh trong iu kin ni
v kt hp cc dng tho mn iu kin thnh nhng dng trong kt qu truy vn.
thc hin c mt php ni, cn phi xc nh c nhng yu t sau:
Nhng ct no cn hin th trong kt qu truy vn
Nhng bng no c tham gia vo truy vn.
iu kin thc hin php ni gia cc bng d liu l g
Trong cc yu t k trn, vic xc nh chnh xc iu kin thc hin php ni gia
cc bng ng vai tr quan trng nht. Trong a s cc trng hp, iu kin ca php
ni c xc nh nh vo mi quan h gia cc bng cn phi truy xut d liu. Thng
thng, l iu kin bng nhau gia kho chnh v kho ngoi ca hai bng c mi
58/143
Bng
>
Ln hn
59/143
<
Nh hn
>=
Ln hn hoc bng
<=
Nh hn hoc bng
<>
khc
!>
Khng ln hn
!<
Khng nh hn
Cu lnh di y hin th danh sch cc sinh vin vi cc thng tin: m sinh vin, h
v tn, m lp, tn lp v tn khoa
SELECT masv,hodem,ten,sinhvien.malop,tenlop,tenkhoa FROM
sinhvien,lop,khoa WHERE sinhvien.malop = lop.malop AND
lop.makhoa=khoa.makhoa
rong cu lnh trn, cc bng tham gia vo truy vn bao gm SINHVIEN, LOP v
KHOA. iu kin thc hin php ni gia cc bng bao gm hai iu kin:
sinhvien.malop = lop.malop vlop.malop = khoa.malop
iu kin ni gia cc bng trong cu lnh trn l iu kin bng gia kho ngoi v
kho chnh ca cc bng c mi quan h vi nhau. Hay ni cch khc, iu kin ca
php ni c xc nh da vo mi quan h gia cc bng trong c s d liu.
60/143
Php ni
Cc loi php ni
Php ni bng v php ni t nhin
Mt php ni bng(equi-join) l mt php ni trong gi tr ca cc ct c s dng
ni c so snh vi nhau da trn tiu chun bng v tt c cc ct trong cc bng
tham gia ni u c a ra trong kt qu.
Cu lnh di y thc hin php ni bng gia hai bng LOP v KHOA
SELECT * FROM lop,khoa WHERE lop.makhoa=khoa.makhoa
Trong kt qu ca cu lnh trn, ct makhoa (m khoa) xut hin hai ln trong kt qu
php ni (ct makhoa ca bng khoa v ct makhoa ca bng lop) v nh vy l khng
cn thit. Ta c th loi b bt i nhng ct trng tn trong kt qu truy vn bng cch
ch nh danh sch ct cn c hin th trong danh sch chn ca cu lnh.
Mt dng c bit ca php ni bng c s dng nhiu l php ni t nhin (naturaljoin). Trong php ni t nhin, iu kin ni gia hai bng chnh l iu kin bng gia
kho ngoi v kho chnh ca hai bng. V trong danh sch chn ca cu lnh ch gi
li mt ct trong hai ct tham gia vo iu kin ca php ni
thc hin php ni t nhin, cu lnh trong v d 2.25 c vit li nh sau
SELECT malop,tenlop,khoa,hedaotao,namnhaphoc,
siso,lop.makhoa,tenkhoa,dienthoai FROM lop,khoa WHERE
lop.makhoa=khoa.makhoa
hoc vit di dng ngn gn hn:
SELECT lop.*,tenkhoa,dienthoai FROM lop,khoa WHERE
lop.makhoa=khoa.makhoa
Php ni vi cc iu kin b sung
Trong cc cu lnh ni, ngoi iu kin ca php ni c ch nh trong mnh
WHERE cn c th ch nh cc iu kin tm kim d liu khc (iu kin chn) .
Thng thng, cc iu kin ny c kt hp vi iu kin ni thng qua ton t AND.
61/143
Cu lnh di y hin th h tn v ngy sinh ca cc sinh vin Khoa Cng ngh Thng
tin
SELECT hodem,ten,ngaysinh FROM sinhvien,lop,khoa WHERE
tenkhoa='Khoa Cng ngh Thng tin' AND sinhvien.malop =
lop.malop AND lop.makhoa = khoa.makhoa
Php t ni v cc b danh
Php t ni l php ni m trong iu kin ni c ch nh lin quan n cc ct
ca cng mt bng. Trong trng hp ny, s c s xut hin tn ca cng mt bng
hiu ln trong mnh FROM v do cc bng cn phi c t b danh.
bit c h tn v ngy sinh ca cc sinh vin c cng ngy sinh vi sinh vin Trn
Th Kim Anh, ta phi thc hin php t ni ngay trn chnh bng sinhvien.
Trong cu lnh ni, bng sinhvien xut hin trong mnh FROM vi b danh l a v b
. Bng sinhvien vi b danh l a s dng chn ra sinh vin c h tn l Trn Th Kim
Anh v bng sinhvien vi b danh l b s dng xc nh cc sinh vin trng ngy sinh
vi sinh vin Trn Th Kim Anh.
Cu lnh c vit nh sau:
SELECT b.hodem,b.ten,b.ngaysinh FROM sinhvien a, sinhvien
b WHERE a.hodem='Trn Th Kim' AND a.ten='Anh' AND
a.ngaysinh=b.ngaysinh AND a.masv<>b.masv
Php ni khng da trn tiu chun bng
Trong php ni ny, iu kin thc hin php ni gia cc bng d liu khng phi
l iu kin so snh bng gia cc ct. Loi php ni ny trong thc t thng t c
s dng.
Php ni ngoi (outer-join)
Trong cc php ni cp trn, ch nhng dng c gi tr trong cc ct c ch
nh tho mn iu kin kt ni mi c hin th trong kt qu truy vn, v c gi
l php ni trong (inner join) Theo mt ngha no , nhng php ni ny loi b thng
tin cha trong nhng dng khng tho mn iu kin ni. Tuy nhin, i khi ta cng
cn gi li nhng thng tin ny bng cch cho php nhng dng khng tho mn iu
kin ni c mt trong kt qu ca php ni. lm iu ny, ta c th s dng php ni
ngoi .
62/143
Cu lnh:
SELECT * FROM nhanvien,donvi WHERE
nhanvien.madv=donvi.madv
c kt qu l:
Nu thc hin php ni ngoi tri gia bng NHANVIEN v bng DONVI:
SELECT * FROM nhanvien,donvi WHERE
nhanvien.madv*=donvi.madv
63/143
kt qu ca cu lnh s l:
Php ni v cc gi tr NULL
Nu trong cc ct ca cc bng tham gia vo iu kin ca php ni c cc gi tr NULL
th cc gi tr NULL c xem nh l khng bng nhau.
Gi s ta c hai bng TABLE1 v TABLE2 nh sau:
A
b1
NULL b2
4
b3
NULL d1
64/143
d2
Cu lnh:
SELECT * FROM table1, table2 WHERE A *= C
C kt qu l:
A
B C
b1 NULL NULL
b3 4
d2
65/143
Php ni ngoi tri gia hai bng NHANVIEN v DONVI c biu din bi cu lnh:
SELECT * FROM nhanvien LEFT OUTER JOIN donvi ON
nhanvien.madv=donvi.madv
c kt qu l:
66/143
Cu lnh:
SELECT * FROM nhanvien RIGHT OUTER JOIN donvi ON
nhanvien.madv=donvi.madv
thc hin php ni ngoi phi gia hai bng NHANVIEN v DONVI, v c kt qu l:
Nu php ni ngoi tri (tng ng phi) hin th trong kt qu truy vn c nhng dng
d liu khng tho iu kin ni ca bng bn tri (tng ng phi) trong php ni th
php ni ngoi y hin th trong kt qu truy vn c nhng dng d liu khng tho
iu kin ni ca c hai bng tham gia vo php ni.
Vi hai bng NHANVIEN v DONVI nh trn, cu lnh
SELECT * FROM nhanvien FULL OUTER JOIN donvi ON
nhanvien.madv=donvi.madv
cho kt qu l:
67/143
68/143
SELECT hoc xut hin trong mnh HAVING, nhng khng c php xut hin
trong mnh WHERE
SQL cung cp cc hm gp di y:
Hm gp
Chcnng
m s cc dng c chn
MAX(biu_thc)
Tnh gi tr ln nht
MIN(biu_thc)
Tnh gi tr nh nht
Trong :
Hm SUM v AVG ch lm vic vi cc biu thc s.
Hm SUM, AVG, COUNT, MIN v MAX b qua cc gi tr NULL khi tnh ton.
Hm COUNT(*) khng b qua cc gi tr NULL.
Mc nh, cc hm gp thc hin tnh ton thng k trn ton b d liu. Trong trng
hp cn loi b bt cc gi tr trng nhau (ch gi li mt gi tr), ta ch nh thm t
kho DISTINCT trc biu thc l i s ca hm.
Thng k trn ton b d liu
Khi cn tnh ton gi tr thng k trn ton b d liu, ta s dng cc hm gp trong
danh sch chn ca cu lnh SELECT. Trong trng hp ny, trong danh sch chn
khng c s dng bt k mt tn ct hay biu thc no ngoi cc hm gp.
thng k trung bnh im ln 1 ca tt c cc mn hc, ta s dng cu lnh nh sau:
SELECT AVG(diemlan1) FROM diemthi
cn cu lnh di y cho bit tui ln nht, tui nh nht v tui trung bnh ca tt
c cc sinh vin sinh ti Hu:
69/143
SELECT MAX(YEAR(GETDATE())-YEAR(ngaysinh)),
MIN(YEAR(GETDATE())-YEAR(ngaysinh)), AVG(YEAR(GETDATE())YEAR(ngaysinh)) FROM sinhvien WHERE noisinh=Hu
Thng k d liu trn cc nhm
Trong trng hp cn thc hin tnh ton cc gi tr thng k trn cc nhm d liu, ta
s dng mnh GROUP BY phn hoch d liu vo trong cc nhm. Cc hm gp
c s dng s thc hin thao tc tnh ton trn mi nhm v cho bit gi tr thng k
theo cc nhm d liu.
Cu lnh di y cho bit s s (s lng sinh vin) ca mi lp
SELECT lop.malop,tenlop,COUNT(masv) AS siso FROM
lop,sinhvien WHERE lop.malop=sinhvien.malop GROUP BY
lop.malop,tenlop
v c kt qu l
cn cu lnh:
SELECT sinhvien.masv,hodem,ten,
sum(diemlan1*sodvht)/sum(sodvht) FROM
sinhvien,diemthi,monhoc WHERE sinhvien.masv=diemthi.masv
AND diemthi.mamonhoc=monhoc.mamonhoc GROUP BY
sinhvien.masv,hodem,ten
cho bit trung bnh im thi ln 1 cc mn hc ca cc sinh vin
70/143
71/143
MALOP TENLOP
DHT01
DHT01
72/143
DHT01
CNT : 3
MAKHOA TENKHOA
MALOP TENLOP
DHT02
DHT02
DHT02
CNT : 3
DHT03
CNT : 2
MAKHOA TENKHOA
MALOP TENLOP
DHT05
DHT05
CNT : 2
73/143
Sau COMPUTE c th s dng nhiu hm gp, khi cc hm phi phn cch nhau
bi du phy.
Cc ct s dng trong cc hm gp xut hin trong mnh COMPUTE phi c mt
trong danh sch chn.
Khng s dng SELECT INTO trong mt cu lnh SELECT c s dng COMPUTE.
Nu s dng mnh COMPUTE ... BY th cng phi s dng mnh ORDER BY.
Cc ct lit k trong COMPUTE BY phi ging ht hay l mt tp con ca nhng g
c lit k sau ORDER BY. Chng phi c cng th t t tri qua phi, bt u vi
cng mt biu thc v khng b qua bt k mt biu thc no.
Chng hn nu mnh ORDER BY c dng:
ORDER BY a, b, c
Th mnh COMPUTE BY vi hm gp F trn ct X theo mt trong cc cch di
y l hp l:
V cc cch s dng di y l sai:
COMPUTE F(X) BY b, c COMPUTE F(X) BY a, c COMPUTE F(X) BY
c
Phi s dng mt tn ct hoc mt biu thc trong mnh ORDER BY, vic sp xp
khng c thc hin da trn tiu ct.
Trong trng hp s dng COMPUTE m khng c BY th c th khng cn s dng
ORDER BY, khi phm vi tnh ton ca hm gp l trn ton b d liu.
Cu lnh di y hin th danh sch cc lp v tng s lp hin c:
SELECT malop,tenlop,hedaotao FROM lop ORDER BY makhoa
COMPUTE COUNT(malop)
kt qu ca cu lnh nh sau:
MALOP TENLOP HEDAOTAO
C24101 Ton K24 Chnh quy
C25101 Ton K25 Chnh quy
74/143
Chnh quy
Chnh quy
Chnh quy
C24103 L K24
Chnh quy
C25103 L K25
Chnh quy
C th thc hin vic tnh ton hm gp dng trn cc nhm lng nhau bng
cch s dng nhiu mnh COMPUTE BY trong cng mt cu lnh SELECT
Cu lnh:
SELECT khoa.makhoa,tenkhoa,malop,tenlop FROM khoa,lop
WHERE khoa.makhoa=lop.makhoa ORDER BY khoa.makhoa COMPUTE
COUNT(malop) BY khoa.makhoa COMPUTE COUNT(malop)
Cho bit danh sch cc lp ca mi khoa, tng s lp theo mi khoa v tng s lp hin
c vi kt qu nh sau:
MAKHOA TENKHOA
MALOP TENLOP
DHT01
DHT01
DHT01
MAKHOA TENKHOA
MALOP TENLOP
DHT02
DHT02
75/143
DHT02
DHT03
MAKHOA TENKHOA
MALOP TENLOP
DHT05
DHT05
76/143
77/143
78/143
79/143
80/143
81/143
82/143
83/143
Bi tp chng 3
C s d liu di y c s dng qun l cng tc giao hng trong mt cng ty
kinh doanh. Cc bng trong c s d liu ny c biu din trong s di y:
84/143
Trong :
Bng NHACUNGCAP lu tr d liu v cc i tc cung cp hng cho cng ty.
Bng MATHANG lu tr d liu v cc mt hng hin c trong cng ty.
Bng LOAIHANG phn loi cc mt hng hin c.
Bng NHANVIEN c d liu l thng tin v cc nhn vin lm vic trong cng ty.
Bng KHACHHANG c s dng lu gi thng tin v cc khch hng ca cng
ty.
Khch hng t hng cho cng ty thng qua cc n t hng. Thng tin chung v cc
n t hng c lu tr trong bng DONDATHANG (Mi mt n t hng phi do
mt nhn vin ca cng ty lp v do bng ny c quan h vi bng NHANVIEN)
85/143
86/143
87/143
2.31 - Hy cho bit mi mt loi hng bao gm nhng mt hng no, tng s lng
hng ca mi loi v tng s lng ca tt c cc mt hng hin c trong cng ty l bao
nhiu?
2. 32 - Thng k xem trong nm 2003, mi mt mt hng trong mi thng v trong c
nm bn c vi s lng bao nhiu
Yucu:Kt qu c hin th di dng bng, hai ct ct u l m hng v tn hng,
cc ct cn li tng ng vi cc thng t 1 n 12 v c nm. Nh vy mi dng trong
kt qu cho bit s l ng hng bn c mi thng v trong c nm ca mi mt hng.
S dng cu lnh UPDATE thc hin cc yu cu sau
2. 33 - Cp nht li gi tr trng NGAYCHUYENHANG ca nhng bn ghi c
NGAYCHUYENHANG cha xc nh (NULL) trong bng DONDATHANG bng vi
gi tr ca trng NGAYDATHANG.
2. 34 - Tng s lng hng ca nhng mt hng do cng ty VINAMILK cung cp ln
gp i.
2. 35 - Cp nht gi tr ca trng NOIGIAOHANG trong bng DONDATHANG bng
a ch ca khch hng i vi nhng n t hng cha xc nh c ni giao hng
(gi tr trng NOIGIAOHANG bng NULL).
2. 36 - Cp nht li d liu trong bng KHACHHANG sao cho nu tn cng ty v tn
giao dch ca khch hng trng vi tn cng ty v tn giao dch ca mt nh cung cp
no th a ch, in thoi, fax v e-mail phi ging nhau.
2. 37 - Tng lng ln gp ri cho nhng nhn vin bn c s lng hng nhiu hn
100 trong nm 2003.
2. 38 - Tng ph cp ln bng 50% lng cho nhng nhn vin bn c hng nhiu
nht.
2. 39 - Gim 25%lng ca nh ng nhn v i n n n t hng no.n trong nm 2003
khng lp c bt k
2. 40 - Gi s trong bng DONDATHANG c thm trng SOTIEN cho bit s tin m
khch hng phi tr trong mi n t hng. Hy tnh gi tr cho trng ny. Thc hin
cc yu cu di y bng cu lnh DELETE.
2. 41 - Xo khi bng NHANVIEN nhng nhn vin lm vic trong cng ty qu 40
nm.
88/143
89/143
90/143
To khung nhn
Cu lnh CREATE VIEW c s dng to ra khung nhn v c c php nh sau:
CREATE VIEW tn_khung_nhn[(danh_sch_tn_ct)] AS
cu_lnh_SELECT
Cu lnh di y to khung nhn c tn DSSV t cu lnh SELECT truy vn d liu t
hai bng SINHVIEN v LOP
CREATE VIEW dssv AS SELECT masv,hodem,ten,
DATEDIFF(YY,ngaysinh,GETDATE()) AS tuoi,tenlop FROM
sinhvien,lop WHERE sinhvien.malop=lop.malop
v nu thc hin cu lnh:
SELECT * FROM dssv
ta c c kt qu nh sau:
92/143
93/143
Bng DONVI
94/143
Bng NHANVIEN
Cu lnh di y nh ngha khung nhn NV1 cung cp cc thng tin v m nhn vin,
h tn v m n v nhn vin lm vic:
CREATE VIEW nv1 AS SELECT manv,hoten,madv FROM nhanvien
Nu ta thc hin cu lnh INSERT INTO nv1
VALUES('NV04','Le Thi D',1)
Mt bn ghi mi s c b sung vo bng NHANVIEN v d liu trong bng ny s
l:
Thng qua khung nhn ny, ta cng c th thc hin thao tc cp nht v xo d liu.
Chng hn, nu ta thc hin cu lnh:
DELETE FROM nv1 WHERE manv='NV04'
Th bn ghi tng ng vi nhn vin c m NV04 s b xo khi bng NHANVIEN
Nu trong danh sch chn ca cu lnh SELECT c s xut hin ca biu thc tnh ton
n gin, thao tc b sung d liu thng qua khung nhn khng th thc hin c. Tuy
nhin, trong trng hp ny thao tc cp nht v xo d liu vn c th c kh nng
thc hin c (hin nhin khng th cp nht d liu i vi mt ct c c t mt
biu thc tnh ton).
Xt khung nhn NV2 c nh ngha nh sau:
CREATE VIEW nv2 AS SELECT manv,hoten,YEAR(ngaysinh) AS
namsinh,madv FROM nhanvien
95/143
i vi khung nhn NV2, ta khng th thc hin thao tc b sung d liu nhng c th
cp nht hoc xo d liu trn bng thng qua khung nhn ny. Cu lnh di y l
khng th thc hin c trn khung nhn NV2
INSERT INTO nv2(manv,hoten,madv) VALUES('NV05','Le Van
E',1)
Nhng cu lnh:
UPDATE nv2 SET hoten='Le Thi X' WHERE manv='NV04'
hoc cu lnh
DELETE FROM nv2 WHERE manv='NV04'
li c th thc hin c v c tc ng i vi d liu trong bng NHANVIEN.
Trong trng hp khung nhn c to ra t mt php ni (trong hoc ngoi) trn nhiu
bng, ta c th thc hin c thao tc b sung hoc cp nht d liu nu thao tc ny
ch c tc ng n ng mt bng c s (cu lnh DELETE khng th thc hin c
trong trng hp ny).
Vi khung nhn c nh ngha nh sau:
96/143
Sa i khung nhn
Cu lnh ALTER VIEW c s dng nh ngha li khung nhn hin c nhng
khng lm thay i cc quyn c cp pht cho ngi s dng trc . Cu lnh
ny s dng tng t nh cu lnh CREATE VIEW v c c php nh sau:
ALTER VIEW tn_khung_nhn [(danh_sch_tn_ct)] AS
Cu_lnh_SELECT
Ta nh ngha khung nhn nh sau:
CREATE VIEW viewlop AS SELECT malop,tenlop,tenkhoa FROM
lop INNER JOIN khoa ON lop.makhoa=khoa.makhoa WHERE
tenkhoa='Khoa Vt l
v c th nh ngha li khung nhn trn bng cu lnh:
ALTER VIEW view_lop AS SELECT malop,tenlop,hedaotao FROM
lop INNER JOIN khoa ON lop.makhoa=khoa.makhoa WHERE
tenkhoa=Khoa Cng ngh thng tin'
Xo khung nhn
Khi mt khung nhn khng cn s dng, ta c th xo n ra khi c s d liu thng qua
cu lnh:
DROP VIEW tn_khung_nhn
Nu mt khung nhn b xo, ton b nhng quyn cp pht cho ngi s dng trn
khung nhn cng ng thi b xo. Do , nu ta to li khung nhn th phi tin hnh
cp pht li quyn cho ngi s dng.
Cu lnh di y xo khung nhn VIEW_LOP ra khi c s d liu
DROP VIEW view_lop
Bi tp chng 3
3.1 S dng cu lnh CREATE TABLE to cc bng trong c s d liu nh
s di y (bn t la chn kiu d liu cho ph hp)
97/143
ngaydathang,ngaygiaohang,ngaychuyenhang,
noigiaohang,mahang, giaban,soluong,mucgiamgia FROM
dondathang INNER JOIN chitietdathang ON
dondathang.sohoadon = chitietdathang.sohoadon
a. C th thng qua khung nhn ny b sung d liu cho bng
DONDATHANG c khng?
b. C th thng qua khung nhn ny b sung d liu cho bngCHITIETDATHANG
c khng?
3.7 Vi khung nhn c nh ngha nh sau:
CREATE VIEW view_donhang AS SELECT
dondathang.sohoadon,makhachhang,manhanvien,
ngaydathang,ngaygiaohang,ngaychuyenhang,
noigiaohang,mahang,giaban*soluong as thanhtien,mucgiamgia
FROM dondathang INNER JOIN chitietdathang ON
dondathang.sohoadon = chitietdathang.sohoadon
a. C th thng qua khung nhn ny xo hay cp nht d liu trong
bngDONDATHANG c khng?
Li gii
3.1 To cc bng d liu:
CREATE TABLE nhacungcap ( macongty NVARCHAR(10)
NOT NULL
CONSTRAINT pk_nhacungcap PRIMARY KEY(macongty), tencongty
NVARCHAR(40)
NOT NULL, tengiaodich NVARCHAR(30)
NULL,
diachi NVARCHAR(60)
NULL, dienthoai
NVARCHAR(20)
NULL, fax NVARCHAR(20)
NULL, email
NVARCHAR(50)
NULL ) CREATE TABLE loaihang ( maloaihang
INT NOT NULL CONSTRAINT pk_loaihang
PRIMARY KEY(maloaihang), tenloaihang
NVARCHAR(15)
NOT NULL ) CREATE TABLE mathang ( mahang
NVARCHAR(10) NOT NULL CONSTRAINT pk_mathang
PRIMARY KEY(mahang), tenhang NVARCHAR(50)
NOT NULL,
macongty NVARCHAR(10)
NULL , maloaihang INT NULL ,
soluong
INT
NULL, donvitinh
NVARCHAR(20)
NULL , giahang
MONEY
NULL )
99/143
100/143
3.2
ALTER TABLE chitietdathang ADD CONSTRAINT
df_chitietdathang_soluong DEFAULT(1) FOR soluong,
CONSTRAINT df_chitietdathang_mucgiamgia DEFAULT(0) FOR
Mucgiamgia
3.3
ALTER TABLE dondathang ADD
CONSTRAINT chk_dondathang_ngay
CHECK (ngaygiaohang>=ngaydathang AND
ngaychuyenhang>=ngaydathang)
3.4
ALTER TABLE nhanvien ADD
CONSTRAINT chk_nhanvien_ngaylamviec
CHECK (datediff(yy,ngaysinh,ngaylamviec)
BETWEEN 18 AND 60)
3.5 Cu lnh khng thc hin c do bng cn xo ang c tham chiu bi bng
MATHANG
3.6
a. Khng.
b. Khng
3.7
a.C th cp nht nhng khng th xo b.
C th c
101/143
Bo mt trong SQL
Bo mt trong SQL
Cc khi nim
Bo mt l mt trong nhng yu t ng vai tr quan trng i vi s sng cn ca c
s d liu. Hu ht cc h qun tr c s d liu thng mi hin nay u cung cp kh
nng bo mt c s d liu vi nhng chc nng nh:
Cp pht quyn truy cp c s d liu cho ngi dng v cc nhm ngi dng, pht
hin v ngn chn nhng thao tc tri php ca ngi s dng trn c s d liu.
Cp pht quyn s dng cc cu lnh, cc i tng c s d liu i vi ngi dng.
Thu hi (hu b) quyn ca ngi dng.
Bo mt d liu trong SQL c thc hin da trn ba khi nim chnh sau y:
Ngi dng c s d liu (Database user) : L i tng s dng c s d liu, thc
thi cc thao tc trn c s d liu nh to bng, truy xut d liu,... Mi mt ngi dng
trong c s d liu c xc nh thng qua tn ngi dng (User ID). Mt tp nhiu
ngi dng c th c t chc trong mt nhm v c gi l nhm ngi dng (User
Group). Chnh sch bo mt c s d liu c th c p dng cho mi ngi dng hoc
cho cc nhm ngi dng.
Cc i tng c s d liu (Database objects): Tp hp cc i tng, cc cu trc
lu tr c s dng trong c s d liu nh bng, khung nhn, th tc, hm c gi l
cc i tng c s d liu. y l nhng i tng cn c bo v trong chnh sch
bo mt ca c s d liu.
c quyn (Privileges): L tp nhng thao tc c cp pht cho ngi dng trn cc
i tng c s d liu. Chng hn mt ngi dng c th truy xut d liu trn mt
bng bng cu lnh SELECT nhng c th khng th thc hin cc cu lnh INSERT,
UPDATE hay DELETE trn bng .
SQL cung cp hai cu lnh cho php chng ta thit lp cc chnh sch bo mt
trong c s d liu
Lnh GRANT: S dng cp pht quyn cho ngi s dng trn cc i tng c s
d liu hoc quyn s dng cc cu lnh SQL trong c s d liu.
102/143
103/143
104/143
105/143
106/143
108/143
Th tc lu tr , hm v trigger
Th tc lu tr
Th tc lu tr (stored procedure)
Cc khi nim
Nh cp cc chng trc, SQL c thit k v ci t nh l mt ngn ng
thc hin cc thao tc trn c s d liu nh to lp cc cu trc trong c s d liu,
b sung, cp nht, xo v truy vn d liu trong c s d liu. Cc cu lnh SQL c
ngi s dng vit v yu cu h qun tr c s d liu thc hin theo ch tng tc.
Cc cu lnh SQL c th c nhng vo trong cc ngn ng lp trnh, thng qua
chui cc thao tc trn c s d liu c xc nh v thc thi nh vo cc cu lnh, cc
cu trc iu khin ca bn thn ngn ng lp trnh c s dng.
Vi th tc lu tr, mt phn no kh nng ca ngn ng lp trnh c a vo
trong ngn ng SQL. Mt th tc l mt i tng trong c s d liu bao gm mt tp
nhiu cu lnh SQL c nhm li vi nhau thnh mt nhm vi nhng kh nng sau:
Cc cu trc iu khin (IF, WHILE, FOR) c th c s dng trong th tc.
Bn trong th tc lu tr c th s dng cc bin nh trong ngn ng lp trnh nhm
lu gi cc gi tr tnh ton c, cc gi tr c truy xut c t c s d liu.
Mt tp cc cu lnh SQL c kt hp li vi nhau thnh mt khi lnh bn trong mt
th tc. Mt th tc c th nhn cc tham s truyn vo cng nh c th tr v cc gi
tr thng qua cc tham s (nh trong cc ngn ng lp trnh). Khi mt th tc lu tr
c nh ngha, n c th c gi thng qua tn th tc, nhn cc tham s truyn vo,
thc thi cc cu lnh SQL bn trong th tc v c th tr v cc gi tr sau khi thc hin
xong.
S dng cc th tc lu tr trong c s d liu s gip tng hiu nng ca c s d liu,
mang li cc li ch sau:
n gin ho cc thao tc trn c s d liu nh vo kh nng module ho cc thao
tc ny.
109/143
110/143
Xt cu lnh sau y
CREATE PROCEDURE sp_Conghaiso(@aINT,@b INT, @c INT)
ASSELECT @c=@a+@b
Nu sau khi to th tc vi cu lnh trn, ta thc thi mt tp cc cu lnh nh sau:
DECLARE @tong INT SELECT @tong=0 EXECUTE sp_Conghaiso
100,200,@tong SELECT @tong
Cu lnh SELECT @tong cui cng trong lot cc cu lnh trn s cho kt qu l: 0
Trong trng hp cn phi gi li gi tr ca i s sau khi kt thc th tc, ta phi khai
bo tham s ca th tc theo c php nh sau:
@tn_tham_skiu_d_liuOUTPUT @tn_tham_skiu_d_liuOUT
hoc v trong li gi th tc, sau i s c truyn cho th tc, ta cng phi ch nh
thm t kho OUTPUT (hoc OUT)
Ta nh ngha li th tc v d trn nh sau:
CREATE PROCEDURE sp_Conghaiso(@aINT, @bINT, @cINT OUTPUT)
AS SELECT @c=@a+@b
v thc hin li gi th tc trong mt tp cc cu lnh nh sau:
DECLARE @tong INT SELECT @tong=0 EXECUTE sp_Conghaiso
100,200,@tong OUTPUT SELECT @tong
th cu lnh SELECT @tong s cho kt qu l: 300
Tham s vi gi tr mc nh
Cc tham s c khai bo trong th tc c th nhn cc gi tr mc nh. Gi tr mc
nh s c gn cho tham s trong trng hp khng truyn i s cho tham s khi c
li gi n th tc.
Tham s vi gi tr mc nh c khai bo theo c php nh sau:
@tn_tham_s kiu_d_liu = gi_tr_mc_nh
Trong cu lnh di y:
113/143
114/143
Xo th tc
xo mt th tc c, ta s dng cu lnh DROP PROCEDURE vi c php nh
sau:
DROP PROCEDURE tn_th_tc
Khi xo mt th tc, tt c cc quyn cp cho ngi s dng trn th tc cng
ng thi b xo b. Do , nu to li th tc, ta phi tin hnh cp pht li cc quyn
trn th tc .
115/143
Hm v trigger
Hm do ngi dng nh ngha
Hm l i tng c s d liu tng t nh th tc. im khc bit gia hm v th
tc l hm tr v mt gi tr thng qua tn hm cn th tc th khng. iu ny cho php
ta s dng hm nh l mt thnh phn ca mt biu thc (chng hn trong danh sch
chn ca cu lnh SELECT).
Ngoi nhng hm do h qun tr c s d liu cung cp sn, ngi s dng c th nh
ngha thm cc hm nhm phc v cho mc ch ring ca mnh.
nh ngha v s dng hm
Hm c nh ngha thng qua cu lnh CREATE FUNCTION vi c php nh sau:
CREATE FUNCTION tn_hm ([danh_sch_tham_s]) RETURNS
(kiu_tr_v_ca_hm) AS BEGIN cc_cu_lnh_ca_hm END
Cu lnh di y nh ngha hm tnh ngy trong tun (th trong tun) ca mt gi tr
kiu ngy
CREATE FUNCTION thu(@ngay
DATETIME) RETURNS NVARCHAR(10)ASBEGIN DECLARE @st
NVARCHAR(10) SELECT @st=CASE DATEPART(DW,@ngay) WHEN 1
THEN 'Chu nht' WHEN 2 THEN 'Th hai' WHEN 3 THEN 'Th ba'
WHEN 4 THEN 'Th t' WHEN 5 THEN 'Th nm' WHEN 6 THEN
'Th su' ELSE 'Th by' ENDRETURN (@st) /* Tr tr v ca
hm */ END
Mt hm khi c nh ngha c th c s dng nh cc hm do h qun tr c s
d liu cung cp (thng thng trc tn hm ta phi ch nh thm tn ca ngi s
hu hm)
Cu lnh SELECT di y s dng hm c nh ngha v d trc:
SELECT masv,hodem,ten,dbo.thu(ngaysinh),ngaysinh FROM
sinhvien WHERE malop=C24102
c kt qu l:
116/143
117/143
118/143
Cn cu lnh:
SELECT * FROM dbo.func_TongSV(0)
119/143
Trigger
Trong chng 4, ta bit cc rng buc c s dng m bo tnh ton vn d liu
trong c s d liu. Mt i tng khc cng thng c s dng trong cc c s d
liu cng vi mc ch ny l cc trigger. Cng tng t nh th tc lu tr, mt trigger
l mt i tng cha mt tp cc cu lnh SQL v tp cc cu lnh ny s c thc
thi khi trigger c gi. im khc bit gia th tc lu tr v trigger l: cc th tc lu
tr c thc thi khi ngi s dng c li gi n chng cn cc trigger li c gi
t ng khi xy ra nhng giao dch lm thay i d liu trong cc bng.
Mi mt trigger c to ra v gn lin vi mt bng no trong c s d liu. Khi
d liu trong bng b thay i (tc l khi bng chu tc ng ca cc cu lnh INSERT,
UPDATE hay DELETE) th trigger s c t ng kch hot.
S dng trigger mt cch hp l trong c s d liu s c tc ng rt ln trong vic
tng hiu nng ca c s d liu. Cc trigger thc s hu dng vi nhng kh nng sau:
Mt trigger c th nhn bit, ngn chn v hu b c nhng thao tc lm thay i
tri php d liu trong c s d liu.
Cc thao tc trn d liu (xo, cp nht v b sung) c th c trigger pht hin ra v
t ng thc hin mt lot cc thao tc khc trn c s d liu nhm m bo tnh hp
l ca d liu.
Thng qua trigger, ta c th to v kim tra c nhng mi quan h phc tp hn
gia cc bng trong c s d liu m bn thn cc rng buc khng th thc hin c.
nh ngha trigger
Mt trigger l mt i tng gn lin vi mt bng v c t ng kch hot khi xy
ra nhng giao dch lm thay i d liu trong bng. nh ngha mt trigger bao gm cc
yu t sau:
Trigger s c p dng i vi bng no?
Trigger c kch hot khi cu lnh no c thc thi trn bng: INSERT, UPDATE,
DELETE?
Trigger s lm g khi c kch hot?
120/143
121/143
INSERT INTO
nhatkybanhang(ngay,nguoimua,mahang,soluong,giaban)
VALUES('5/5/2004','Tran Ngoc Thanh','H1',10,5200)
d liu trong bng MATHANG s nh sau:
122/143
124/143
125/143
Bng MATHANG
Bng NHATKYBANHANG
Bng MATHANG
Bng NHATKYBANHANG
126/143
127/143
WHERE mahang=@mahang
FETCH NEXT FROM contro INTO @mahang,@soluong END
CLOSE contro DEALLOCATE contro END END
Bi tp chng 5
Da trn c s d liu bi tp chng 2, thc hin cc yu cu sau:
5.1 To th tc lu tr thng qua th tc ny c th b sung thm mt bn ghi mi
cho bng MATHANG (th tc phi thc hin kim tra tnh hp l ca d liu cn b
sung: khng trng kho chnh v m bo ton vn tham chiu)
5.2 To th tc lu tr c chc nng thng k tng s lng hng bn c ca mt mt
hng c m bt k (m mt hng cn thng k l tham s ca th tc).
5.3 Vit hm tr v mt bng trong cho bit tng s lng hng bn c ca mi
mt hng. S dng hm ny thng k xem tng s lng hng (hin c v bn)
ca mi mt hng l bao nhiu.
5.4 Vit trigger cho bng CHITIETDATHANG theo yu cu sau:
Khi mt bn ghi mi c b sung vo bng ny th gim s lng hng hin c nu
s lng hng hin c ln hn hoc bng s lng hng c bn ra. Ngc li th hu
b thao tc b sung.
Khi cp nht li s lng hng c bn, kim tra s lng hng c cp nht li c
ph hp hay khng (s lng hng bn ra khng c vt qu s lng hng hin c
v khng c nh hn 1). Nu d liu hp l th gim (hoc tng) s lng hng hin
c trong cng ty, ngc li th hu b thao tc cp nht.
5.5 Vit trigger cho bng CHITIETDATHANG sao cho ch chp nhn gi hng bn
ra phi nh hn hoc bng gi gc (gi ca mt hng trong bng MATHANG)
5.6 qun l cc bn tin trong mt Website, ngi ta s dng hai bng sau:
Bng LOAIBANTIN (loi bn tin)
CREATE TABLE loaibantin ( maphanloai INT
NOT NULL PRIMARY KEY, tenphanloai
NVARCHAR(100) NOT NULL , bantinmoinhat INT DEFAULT(0) )
Bng BANTIN (bn tin)
129/143
130/143
mathang.mahang=chitietdathang.mahang WHERE
mathang.mahang=@mahang GROUP BY mathang.mahang,tenhang
5.3 nh ngha hm
CREATE FUNCTION func_banhang() RETURNS TABLE AS RETURN
(SELECT mathang.mahang,tenhang, CASE WHEN
sum(chitietdathang.soluong) IS NULL THEN 0 ELSE
sum(chitietdathang.soluong) END AS tongsl FROM mathang
LEFT OUTER JOIN chitietdathang ON mathang.mahang =
chitietdathang.mahang GROUP BY mathang.mahang,tenhang)
S dng hm nh ngha
SELECT a.mahang,a.tenhang,soluong+tongsl FROM mathang AS a
INNER JOIN dbo.func_banhang() AS b ON a.mahang=b.mahang
5.4 nh ngha hm
CREATE TRIGGER trg_chitietdathang_insert ON chitietdathang
FOR INSERT AS BEGIN DECLARE @mahang NVARCHAR(100) DECLARE
@soluongban INT DECLARE @soluongcon INT SELECT
@mahang=mahang,@soluongban=soluong FROM inserted SELECT
@soluongcon=soluong FROM mathang WHERE mahang=@mahang IF
@soluongcon>=@soluongban UPDATE mathang SET
soluong=soluong@soluongban WHERE mahang=@mahang ELSE
ROLLBACK TRANSACTION END CREATE TRIGGER
trg_chitietdathang_update_soluong ON chitietdathang FOR
UPDATE AS IF UPDATE(soluong) BEGIN IF EXISTS SELECT
sohoadon FROM inserted WHERE soluong 0 ROLLBACK
TRANSACTION ELSE BEGIN UPDATE mathang SET soluong=soluong
(SELECT SUM(inserted.soluong ,deleted.soluong) FROM
inserted INNER JOIN deleted ON
inserted.sohoadon=deleted.sohoadon AND
inserted.mahang=deleted.mahang WHERE
inserted.mahang=mathang.mahang GROUP BY inserted.mahang)
WHERE mahang IN (SELECT DISTINCT mahang FROM inserted) IF
EXISTS SELECT mahang FROM mathang WHERE soluong 0 ROLLBACK
TRANSACTION END END
5.5
131/143
132/143
133/143
Tnh bn vng (Durability):Sau khi mt giao dch thc hin thnh cng,
mi tc dng m n to ra phi tn ti bn vng trong c s d liu, chod
l h thng c b li i chng na.
M hnh giao dch trong SQL
Giao dch SQL c nh ngha da trn cc cu lnh x l giao dch sau y:
BEGIN TRANSACTION: Bt u mt giao dch
SAVE TRANSACTION: nh du mt v tr trong giao dch (gi l im nh du).
ROLLBACK TRANSACTION: Quay lui tr li u giao dch hoc mt im nh du
trc trong giao dch.
COMMIT TRANSACTION: nh du im kt thc mt giao dch. Khi cu lnh ny
thc thi cng c ngha l giao dch thc hin thnh cng.
ROLLBACK [WORK]: Quay lui tr li u giao dch.
COMMIT [WORK]: nh du kt thc giao dch.
Mt giao dch trong SQL c bt u bi cu lnh BEGIN TRANSACTION. Cu lnh
ny nh du im bt u ca mt giao dch v c c php nh sau:
BEGIN TRANSACTION [tn_giao_tc]
Mt giao dch s kt thc trong cc trng hp sau
Cu lnh COMMIT TRANSACTION (hoc COMMIT WORK) c thc thi. Cu
lnh ny bo hiu s kt thc thnh cng ca mt giao dch. Sau cu lnh ny,
mt giao dch mi s c bt u.
Khi cu lnh ROLLBACK TRANSACTION (hoc ROLLBACK WORK) c
thc thi hu b mt giao dch v a c s d liu v trng thi nh trc
khi giao dch bt u. Mt giao dch mi s bt u sau khi cu lnh
ROLLBACK c thc thi.
Mt giao dch cng s kt thc nu trong qu trnh thc hin gp li (chng hn
h thng gp li, kt ni mng b t,...). Trong trng hp ny, h thng s
t ng phc hi li trng thi c s d liu nh trc khi giao dch bt u
(tng t nh khi cu lnh ROLLBACK c thc thi hu b mt giao dch).
Tuy nhin, trong trng hp ny s khng c giao dch mi c bt u.
134/143
135/143
136/143
138/143
139/143
140/143
Tham gia ng gp
Ti liu: Gio trnh h qun tr c s d liu SQL - HCNHN
Bin tp bi: T HTTT i hc Cng nghip H Ni
URL: http://voer.edu.vn/c/0351a5c3
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Tng quan v DBMS v SQL sever
Cc tc gi: T HTTT i hc Cng nghip H Ni
URL: http://www.voer.edu.vn/m/df67417f
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Ngn ng nh ngha d liu
Cc tc gi: T HTTT i hc Cng nghip H Ni
URL: http://www.voer.edu.vn/m/a61dadee
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Ngn ng thao tc d liu
Cc tc gi: T HTTT i hc Cng nghip H Ni
URL: http://www.voer.edu.vn/m/d6a4172b
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Php ni
Cc tc gi: T HTTT i hc Cng nghip H Ni
URL: http://www.voer.edu.vn/m/67d8246a
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Lm vic vi View ( khung nhn )
Cc tc gi: T HTTT i hc Cng nghip H Ni
URL: http://www.voer.edu.vn/m/3d2ab5b9
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Bo mt trong SQL
Cc tc gi: T HTTT i hc Cng nghip H Ni
URL: http://www.voer.edu.vn/m/ac9d8195
141/143
142/143
143/143