You are on page 1of 5

Ti liu hng dn thc hnh mn hc TKCSDL

Hng dn thc hnh mn TKCSDL


Mc ch:
- n li vic to bng, khai bo cc rng buc kha chnh, kha ngoi.
- Thc hin to Default
- Thc hin khai bo rng buc ton vn (RBTV) trn min gi tr s dng Rule v
-

Check Constraint
Bi tp thc hnh: QLSV (cc mc 1,2,3.1 -> 3.10)

Hng dn:
- c file QLSV.pdf, xem qua cc RBTV s phi ci t.
- Xc nh kiu d liu cho cc thuc tnh trong bng da vo cc RBTV.
- Thc hin to cc bng, s dng SQL Query Analyzer
CREATE TABLE CHUONGTRINH (
MaCT char(3) NOT NULL ,
TenCT nvarchar(30) NOT NULL
)

Thc hin khai bo kha chnh


ALTER TABLE CHUONGTRINH ADD
CONSTRAINT PK_CHUONGTRINH PRIMARY KEY(MaCT)

Thc hin khai bo kha ngoi


ALTER TABLE GIANGKHOA ADD
CONSTRAINT FK_GIANGKHOA_CHUONGTRINH FOREIGN KEY
(MACT) REFERENCES CHUONGTRINH(MaCT)

1. Thc hin to default (gi tr mc nh)


o To default ngay khi to bng
Khai bo ngay trong script to bng :
create table T (
col1 int
, col2 int default 1
)

V d :
drop table T
go
create table T (
col1 int
, col2 int default 1
)
go
insert into T(col1) values (2)
go

B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin TpHCM

Ti liu hng dn thc hnh mn hc TKCSDL

select * from T

o To default sau khi to bng


B1: to default
create default def_SttLop
as 0

B2: Gn default vo mt thuc tnh ca bng. Khi thc hin bt buc default phi
c to trc.
Sp_bindefault def_SttLop, Lop.SoThuTuLop
/*
Khi do: insert Lop(KhoaHoc,Khoa,ChuongTrinh) values(1,1,1)
tng ng vi
insert Lop(KhoaHoc,Khoa,ChuongTrinh,SoThuTuLop)
values (1,1,1,0)
Gia tri mac dinh SoThuTuLop la 0
*/

G b default khi thuc tnh ca bng.

Hy default. Khi dng bt buc default phi c g b khi tt c cc thuc


tnh ca bng m n c gn vo.

Sp_Unbindefault 'Lop.SoThuTuLop'

Drop default def_SttLop

2. Thc hin khai bo rng buc ton vn min gi tr


s dng check constraint
ALTER TABLE CHUONGTRINH
ADD Constraint c_MaCT check (MaCT in ('CT1','CT2'))

G b check constraint
alter table ChuongTrinh
drop constraint c_MaCT

3. Thc hin khai bo rng buc ton vn min gi tr


s dng rule
B1: To rule
Create rule r_MACT
AS @MaCT in ('CT1','CT2')

B2: Gn rule vo mt thuc tnh ca bng. Khi thc hin bt buc rule phi c
to trc.

B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin TpHCM

Ti liu hng dn thc hnh mn hc TKCSDL


Sp_bindrule 'r_MaCT', 'ChuongTrinh.MaCT'

thc hin ng thi B1 v B2. Thm GO vo gia.


Create rule r_MACT
AS @MaCT in ('CT1','CT2')
GO
Sp_bindrule 'r_MaCT', 'ChuongTrinh.MaCT'

G b rule khi thuc tnh ca bng.

Hy rule.
Khi dng bt buc rule phi c g b khi tt c cc thuc tnh ca bng m
n c gn vo.

Sp_Unbindrule 'ChuongTrinh.MaCT'

Drop Rule r_MACT

4. So snh vic dng rule v check constraint


o Constraint gn c th vi mt thuc tnh c th ca mt bng
o Rule c th p dng cho nhiu thuc tnh ca nhiu bng khc nhau c
cng RBTV v min gi tr S dng Rule khi c nhiu RBTV v min
gi tr ging nhau trong CSDL.
Create rule r_SoTietToiDa
AS @SoTiet <= 120
GO
Sp_bindrule 'r_SoTietToiDa', 'GiangKhoa.SoTiet_LT'
GO
Sp_bindrule 'r_SoTietToiDa', 'GiangKhoa.SoTiet_TH'

Thc hin khai bo cc RBTV t 3.1 -> 3.9 tng t. Mt s hng dn:
o 3.7: S dng cc hm CEILING, FLOOR(lm trn nguyn), hm ROUND
(lm trn thc), ton t % (modulo), hm CAST (p kiu)
o 3.9: S dng hm getdate (ly ngy hin hnh), hm year (ly nm t mt
ngy).

Khi gp cc vn mi, cc li khng r nguyn nhn, s dng SQL Server


Books Online (nhn shift-F1 trong SQL Query Analyzer) tm hiu v d nh:
o Tm cc hm ton hc ( lm trn): nh Mathematical Function trong
Index hay Search (tng t cho DateTime function)
o Xem c php CreateRule, Check Constraint,
o Xem s dng Rule, Check Constraint thng qua Enterprise Manager:
nh Wizard trong Search.

Bi tp nh:
- Thc hin RBTV min gi tr s dng Rule v CheckConstraint trn bi Qun l
hng ha.

B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin TpHCM

Ti liu hng dn thc hnh mn hc TKCSDL

Tm hiu cch s dng rule, check constraint, default thng qua SQL Enterprise
Manager.
Default

Check Constraint

Rule

B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin TpHCM

Ti liu hng dn thc hnh mn hc TKCSDL

B mn H thng thng tin Khoa Cng ngh thng tin i hc Khoa hc t nhin TpHCM

You might also like