END, MAVTU, TENVTU, DVTINH FROM VATTU... ELSE 'R t l i' END, TENVTU, DVTINH, PHANTRAM FROM VATTU ORDER BY PHANTRAM... PRINT 'Danh sách các hàng hóa bán v i s l ng > 4' SELECT CTPX.MAVTU
Trang 1HỆ QUẢN TRỊ
(SQL Server)
I H C TƠN C TH NG PHỊNG TRUNG C P CHUYÊN NGHI P & D Y NGH
_oOo_
Trang 2Ch ng 1
T NG QUAN
Trang 3Khái ni m v c u trúc v t lý
̈ Máy ch (Server):
̈ Máy tr m (Client): là các máy tính đ c phép truy
xu t các tài nguyên đã đ c chia s trên m ng
̈ Dây cáp m ng (Cable ho c Media): là m t h th ng dây cáp n i k t v t lý các máy tính, máy in l i v i
Trang 4Khái ni m v các x lý
̈ Các x lý trong m t ng d ng có th chia làm hai lo i
x lý trên máy tr m và x lý trên máy ch
Trang 6L ch s ra đ i Microsoft SQL Server
̈ 1970: IBM gi i thi u ngôn ng SEQUEL
̈ 1987: IBM tích h p ph n m m qu n tr CSDL vào h đi u hành OS2
̈ 1988: H qu n tr CSDL Ashton-Tate đ c MS
k t h p v i Sybase gi i thi u
̈ MS b t đ u phát tri n SQL Server trên n n
Ashton-Tate và đ a vào WinNT Server sau đó
̈ Các phiên b n đ c s d ng c a SQL Server: 4.2, 4.21, 6.0, 6.5, 7.0, 2000, 2005
Trang 7Cài đ t c s d li u SQL Server Desktop
̈ Hai phiên b n chính c a SQL Server
̈ Express
̈ Enterprise
̈ Demo: Cài đ t SQL Server
̈ Demo: ng ký qu n tr SQL Server
Trang 9Ti n ích Client network Utility
̈ C u hình các giao th c k t n i m ng
mà Client có th s d ng
Trang 11Ti n ích Import and Export Data
Trang 13Ti n ích Query Analyzer
̈ Vi t & th c hi n các script
̈ Ki m soát các đ i t ng trong CSDL
̈ Phát sinh các m u câu l nh script chu n
̈ Xem k ho ch th c hi n câu truy v n, th t c n i
Trang 14Ti n ích Server Network Utility
̈ Ch đ nh các th vi n mà máy ch SQL Server dùng khi
Trang 16nh ngh a n i k t vào SQL Server
̈ T o server alias b ng SQL Server Client
Network Utilities
̈ ng ký qu n tr SQL Server b ng Enterprise Manager
Trang 17N i k t t Query Analyzer vào SQL
̈ K t n i v i SQL Server t ng t nh m t client bình
th ng
̈ Cung c p User name, Password
̈ Quá trình t ng tác gi a SQL Server và Query Analyzer (client) khi th c hi n m t l nh
Trang 18Ch ng 2
CÁC L NH V
Trang 20Khái ni m v mô hình quan h d li u
Trang 21Các t p tin v t lý l u tr c s d li u
̈ M t database bao g m t i thi u hai file
̈ mdf: l u tr các đ i t ng trong database nh table,
Trang 25T o c u trúc b ng đ n gi n
CREATE TABLE Tên_b ng
(
Tên_c t1 Ki u_d _li u [NOT NULL] ,
Tên_c t2 Ki u_d _li u [NOT NULL] [, ]
)
̈ T khóa NOT NULL ch đ nh không cho
phép d li u t i c t b b tr ng
Trang 26̈ Ch s t ng: s c ng lên đ c p phát cho nh ng m u tin k ti p M c đ nh là 1.
Trang 28Thêm m t c t m i trong b ng
ALTER TABLE Tên_b ng
ADD Tên_c t Ki u_d _li u [, ]
̈ Tên c t: tên c a c t m i đ c thêm vào
b ng.
̈ Ki u d li u: ki u d li u t ng ng c a c t
m i
ALTER TABLE DONDH
ADD Ngaydknh DATETIME
Trang 29H y b c t hi n có bên trong b ng
ALTER TABLE Tên_b ng
DROP COLUMN Tên_c t [, ]
̈ Tên c t: tên c t s b h y b ra kh i
b ng
ALTER TABLE DONDH
DROP COLUMN Ngaydknh
Trang 30S a đ i ki u d li u c a c t
ALTER TABLE Tên_b ng
ALTER COLUMN Tên_c t Ki u_d _li u_m i
ALTER TABLE VATTU
ALTER COLUMN Dvtinh VARCHAR(20)
Trang 31i tên c t, tên b ng d li u
EXEC sp_rename 'Tên_b ng[.Tên_c t]', 'Tên_m i'
[,'COLUMN']
̈ EXEC: dùng đ th c thi các th t c n i t i c a SQL Server
̈ Tên b ng: tên b ng s đ i tên ho c ch a tên
c t mu n đ i tên
̈ Tên c t: tên c t mu n đ i tên
̈ Tên m i: tên m i c a c t ho c b ng sau khi
đ i
̈ COLUMN: s d ng khi thay đ i tên c t
Trang 33T o ki u d li u ng i dùng đ nh ngh a
̈ Có th t o b ng Enterprise Manager
̈ Cú pháp l nh
EXEC sp_addtype Tên_ki u_dl_m i, 'Ki u_dl_c _s '
[,NULL | NOT NULL]
EXEC sp_addtype uddt_Soluong, 'Decimal(15,2)',
'NOT NULL'
Trang 34Xóa ki u d li u ng i dùng đ nh ngh a
EXEC sp_droptype Tên_ki u_dl
̈ Tên ki u d li u:
̈ tên ki u d li u do ng i dùng đ nh ngh a
EXEC sp_droptype uddt_Soluong
Server: Msg 15180, Level 16, State 1, Line 0
Cannot drop The data type is being used
Trang 35̈ Danh sách các giá tr mà chúng ta đ a vào
ph i theo đúng th t c a các c t bên trong
b ng
Trang 36L nh INSERT INTO SELECT
INSERT [INTO] Tên_b ng [ (Danh_sách_c t) ]
Trang 39Ch ng 3
Trang 40Các quy đ nh c a công vi c trong th c t
̈ Trong th c t m i công vi c đ u có nh ng quy đ nh
ph i tuân theo
̈ M i quy đ nh tr thành m t hay nhi u ràng bu c trong CSDL
̈ M t s quy đ nh đ n gi n, m c nhiên th y c ng ph i mô t trong CSDL
̈ Ví d qu n lý đ n đ t hàng
̈ S l ng đ t hàng ph i l n h n 0
̈ Các s hoá đ n giao hàng không đ c trùng nhau
̈ Ngày d ki n nh n hàng ph i sau ngày đ t hàng
Trang 42S d ng constraint đ ki m tra toàn v n d li u
̈ M t constraint luôn g n v i m t b ng
̈ T o constraint ngay khi t o b ng
̈ T o constraint b ng l nh ALTER TABLE
UNIQUE
CREATE TABLE CTDONDH(
Sodh CHAR(4) , Mavtu CHAR(4) , SlDat SMALLINT
PRIMARY KEY (Sodh, Mavtu) ,
FOREIGN KEY (Sodh) REFERENCES DONDH (Sodh),
CHECK (SlDat BETWEEN 10 AND 50))
ALTER TABLE NHACC
ADD CONSTRAINT UNQ_NHACC_DIACHI UNIQUE (Diachi),
CONSTRAINT DEF_NHACC_DIENTHOAI
DEFAULT 'Ch a có' FOR Dienthoai
Trang 43nhi u c t gi ng nhau trong nhi u b ng
̈ n gi n hoá vi c thay đ i quy t c ki m
tra khi th c t thay đ i
Trang 44̈ S d ng m t bi n đ i di n cho c t s ki m tra
̈ Mô t đi u ki n ki m tra d li u d a trên bi n
̈ H n ch
̈ Không th mô t ràng bu c trên hai c t
CREATE RULE Tên_qui_t c
AS Bi u_th c
CREATE RULE rule_Soluong_Duong
AS
@Soluong>0
Trang 45Áp d ng quy t c ki m tra mi n giá tr
̈ Rule sau khi t o m i ph i đ c k t n i
Trang 46Xóa quy t c ki m tra mi n giá tr
̈ G b quy t c ki m tra kh i b ng
̈ S d ng Enterprise Manager
̈ EXEC sp_unbindrule Tên_đ i_t ng
̈ Xoá quy t c ki m tra
̈ Ph i g b quy t c ki m tra ra kh i t t c các b ng
tr c khi xoá
DROP RULE Tên_qui_t c
DROP RULE rule_Soluong_Duong
Trang 49Liên k t giá tr m c đ nh vào c t d li u
̈ T ng t nh Rule, giá tr m c đ nh sau khi
Trang 50DROP DEFAULT
Tên_gt_m c_ đ nh [, ]
DROP DEFAULT def_Dienthoai
Trang 51Ch ng 4
Trang 55̈ SUBSTRING (Chu i ngu n,V _trí,S _kt )
̈ Hàm c t kho ng tr ng, t o chu i kho ng tr ng
̈ LTRIM (Chu i), RTRIM (Chu i), SPACE (N)
̈ Hàm t o chu i l p
̈ REPLICATE (Chu i_l p, N)
̈ Chi u dài chu i
̈ LEN (Chu i)
̈ REVERSE (Chu i)
Trang 56Ch ng 5
Trang 58WHERE SODH='D007'
Trang 60Toán t lu n lý
̈ S d ng các toán t thông th ng AND,
OR, NOT v n dùng trong các câu SQL
SELECT * FROM VATTU
WHERE (DVTINH='B ' AND PHANTRAM>10)
OR (DVTINH='Cái' AND PHANTRAM>20)
Trang 63̈ IN, ALL, ANY
SELECT TENNHACC, DIENTHOAI
Trang 64Bi u th c CASE d ng đ n gi n
CASE Bi u_th c
WHEN Giá_tr _1 THEN Bi u_th c_k t_qu _1
[WHEN Giá_tr _2 THEN Bi u_th c_k t_qu _2
Trang 65END, MAVTU, TENVTU, DVTINH FROM VATTU
Trang 66Bi u th c CASE d ng tìm ki m
CASE
WHEN Bt_logic_1 THEN Bi u_th c_k t_qu _1
[WHEN Bt_logic_2 THEN Bi u_th c_k t_qu _2
̈ Bi u th c k t qu 1, bi u th c k t qu 2
̈ Bi u th c s đ c tr v khi m t trong các
bi u th c lu n lý so sánh có k t qu là đúng.
Trang 67ELSE 'R t l i' END,
TENVTU, DVTINH, PHANTRAM
FROM VATTU
ORDER BY PHANTRAM
Trang 68Ch ng 6
VIEW
Trang 70T o b ng o b ng Enterprise Manager
̈ n gi n, công c t đ ng phát sinh câu l nh
̈ Có th chuy n v d ng vi t l nh SQL
Trang 71Xem và c p nh t d li u trên VIEW
̈ Làm vi c nh m t b ng thông th ng
̈ S d ng câu SELECT đ xem d li u
Select * From vw_DonDH
̈ S d ng INSERT/UPDATE đ c p nh t d li u
̈ Ch có th c p nh t vào m t b ng
̈ INSERT d li u vào b ng, view ph i th a mãn
các yêu c u v khóa, ràng bu c khóa ng ai, các c t NOT NULL, các c t tính toán, order by, group by,
distinct
̈ S d ng Delete đ xoá d li u
Trang 73T o m i view b ng CREATE VIEW
CREATE VIEW Tên_b ng_ o
[(Tên_các_c t)]
[WITH ENCRYPTION]
AS Câu_l nh_SELECT
[WITH CHECK OPTION]
̈ Tên các c t: s d ng trong b ng o khi tham chi u đ n các
c t
̈ WITH ENCRYPTION: mã hóa n i dung câu l nh SELECT
̈ WITH CHECK OPTION: không cho c p nh t d li u không
tho đi u ki n c a m nh đ WHERE trong câu l nh SELECT
Trang 75VD: thêm d li u vào view
̈ V i view đ c t o nh sau:
CREATE VIEW vSinhVien AS
SELECT MASV, TENSV, PHAI, DIACHI,
SV.MALOP AS LOP, L.MALOP, TENLOPFROM SINHVIEN SV INNER JOIN LOP L ON
SV.MALOP=L.MALOP
̈ L nh
INSERT INTO vSinhVien (MASV, TENSV, PHAI,
DIACHI, LOP) VALUES (1,’AAA’,’NU’,’123’,’A1’)
Trang 76Ch ng 7
L P TRÌNH TRONG
SQL SERVER
Trang 78Gán giá tr cho bi n
̈ S d ng l nh SET ho c SELECT
SET @Bi n = Giá_tr
SET @a = 5
Select @Bi n = Tên_C t From Tên_B ng
Select @TRPHG=TRPHG FROM PHONGBAN WHERE
MAPB=‘P1’
Trang 79Print ‘Giá tr c a @A ‘ + cast(@A as char(4))
Trang 80Ph m vi ho t đ ng c a bi n
̈ M t bi n ch có ph m vi ho t đ ng c c b
̈ Trong m t Batch
̈ Trong m t Stored Procedure hay Trigger
DECLARE @Ngaydhgn DATETIME
Trang 83PRINT 'Danh sách các hàng hóa bán v i s l ng > 4' SELECT CTPX.MAVTU, TENVTU, SLXUAT
FROM CTPXUAT CTPX INNER JOIN VATTU VT
ON VT.MAVTU=CTPX.MAVTU WHERE SLXUAT>4
Trang 84WHERE SLXUAT>4
END
ELSE
Trang 86Ch ng 8
CURSOR
Trang 88Các b c s d ng ki u d li u cursor
̈ nh ngh a bi n ki u cursor b ng l nh DECLARE
̈ Có hai lo i cursor: Local, Global
̈ Cách di chuy n m u tin trong cursor: Forward only, scroll
̈ Cách qu n lý d li u c a cursor: static, dynamic,
̈ óng cursor l i b ng l nh CLOSE và DEALLOCATE
̈ Sau khi close, có th m l i
Deallocate: h y cursor kh i b nh
Trang 89FOR Câu_l nh_SELECT
[FOR UPDATE [OF Danh_sách_c t_c p_nh t]]
DECLARE cur_Vattu CURSOR
DYNAMIC
Trang 92Ví d hoàn ch nh
1 Khai báo bi n cursor
DECLARE cur_Vattu CURSOR KEYSET
FOR
SELECT * FROM VATTU WHERE MAVTU LIKE 'TV%' ORDER BY MAVTU
4 óng cursor
CLOSE cur_Vattu
DEALLOCATE cur_Vattu
Trang 93Bài t p
̈ S d ng CURSOR th c hi n các yêu c u sau:
̈ m s l ng sinh viên
̈ m s l ng môn h c có trên 2 sinh viên
̈ Li t kê và đ m s l ng sinh viên có TB >= 5
̈ C p nh t giá tr cho thu c tính DTB trên table SinhVien
Trang 94Ch ng 9
STORED PROCEDURE
(TH T C N I T I)
Trang 97Các l i ích khi s d ng th t c n i t i
̈ T c đ x lý
̈ Nhanh vì n i dung c a th t c đ c l u tr và th c
hi n ngay t i máy ch
̈ D li u c ng đ c l u tr trên máy ch nên không
m t th i gian truy n d li u qua h th ng m ng
̈ T ch c, phân chia các x lý t i máy ch ho c t i máy
Trang 101H y b th t c n i t i
̈ S d ng Enterprise Manager
̈ S d ng script
DROP PROC[EDURE] Tên_th _t c
DROP PROC spud_MaxSLVattu_200201
Trang 102Tham s đ u vào
̈ Cho phép truy n vào các thông tin c n cho
nh ng x lý bên trong m t th t c
CREATE PROC[EDURE] Tên_th _t c
@Tên_tham_s Ki u_d _li u [=Giá_tr ] [, ]
Trang 103+ CAST(@sSopx AS CHAR(4)) PRINT 'Là : '
+ CAST(@nTongTG AS VARCHAR(15))
GO
Trang 104Tham s đ u ra
̈ Giúp nh n các k t qu x lý mà th t c tr
v
CREATE PROC[EDURE] Tên_th _t c
@Tên_tham_s Ki u_d _li u OUTPUT [, ]
Trang 105Ví d
ALTER PROC spud_TinhSLDat
@sSodh CHAR(4), @sMavtu CHAR(4), @nSldat INT OUTPUT
Trang 106Mã hóa n i dung th t c
CREATE|ALTER PROC[EDURE] Tên_th _t c
[@Tên_tham_s Ki u_d _li u [OUTPUT] [, ] ]
WITH ENCRYPTION
…
̈ B o m t n i dung x lý c a th t c
̈ Sau khi mã hoá, không th xem l i n i dung
c a th t c b ng Enterprise Manager hay b t
c l nh nào
Trang 107Biên d ch th t c
CREATE|ALTER PROC[EDURE] Tên_th _t c
[@Tên_tham_s Ki u_d _li u OUTPUT [, ] ]
WITH RECOMPILE [ ENCRYPTION ]
Trang 110Ví d
CREATE PROC spud_TinhTongSLdat
@sManhacc CHAR(3) , @sMavtu
CHAR(4) , @nTongSLdat INT
OUTPUT
AS
IF NOT EXISTS(SELECT * FROM
VATTU WHERE MAVTU=@sMavtu)
RETURN 1
IF NOT EXISTS(SELECT * FROM
NHACC WHERE MANHACC=@sManhacc)
RETURN 2
SELECT @nTongSLdat=SUM(SLDAT)
FROM DONDH DH INNER JOIN
CTDONDH CTDH ON DH.SODH=CTDH.SODH WHERE
MANHACC=@sManhacc AND MAVTU=@sMavtu
IF @nTongSLdat IS NULL
SET @nTongSLdat=0
G i th c hi n th t c DECLARE @nTongSLdat INT, @nKetqua INT
EXEC @nKetqua=spud_TinhTongSLdat 'C02', 'TV14', @nTongSLdat OUTPUT
IF @nKetqua=1
PRINT 'Mã v t t không đúng' ELSE
IF @nKetqua=2 PRINT 'Mã nhà cung c p không đúng'
ELSE PRINT 'T ng s l ng đ t là: ' + CAST(@nTongSLdat AS VARCHAR(10))
Trang 112Tham s ki u cursor bên trong th t c
Trang 113Ví d
CREATE PROC spud_TinhDsoban
@sNamThang CHAR(6), @cur_Dsvtu CURSOR
VARYING OUTPUT
AS
T o b ng t m tính ra t ng s l ng bán
SELECT CTX.MAVTU, SUM(SLXUAT) AS
TONGSLBAN INTO #tab_TongSLBan
FROM CTPXUAT CTX INNER JOIN VATTU VT ON
VT.MAVTU = CTX.MAVTU INNER JOIN PXUAT PX
ON PX.SOPX = CTX.SOPX WHERE
WHERE TONGSLBAN = ( SELECT MAX(TONGSLBAN) FROM
#tab_TongSLBan)
B2: M cursor ra
OPEN @cur_Dsvtu DROP TABLE #tab_TongSLBan RETURN 0
END
Trang 114FETCH NEXT FROM @cur_Dsvt
INTO @sMavtu, @nTongslBan
Trang 115̈ Có th g i th c hi n t các ngôn ng l p trình khác nhau (client) đ x lý các c p nh t d li u
ph c t p
Trang 117Ch ng 10
TRANSACTION
(GIAO TÁC)
Trang 119Giao tác không t ng minh
̈ SQL Server chia các câu l nh th c hi n làm hai lo i
̈ Giao tác t ng minh
̈ Giao tác không t ng minh
̈ M c đ nh, SQL Server th c hi n các l nh
ch đ giao tác không t ng minh
̈ M i câu l nh coi nh m t transaction: INSERT, UPDATE, DELETE,…
Trang 120Giao tác t ng minh
̈ Giao tác t ng minh là giao tác ph i khai báo tr c
̈ S d ng t khoá Begin Tran
̈ Các l nh theo sau thu c vào giao tác đã khai báo
̈ Tác d ng thay đ i d li u đ c c p nh t ngay vào CSDL nh ng
̈ Các giao tác khác không th y đ c thay đ i này
̈ S b h y b khi phiên làm vi c gi a client – server ch m d t
Trang 122Ch ng 11
USER DEFINE FUNCTION(HÀM DO NG I DÙNG T NH NGH A)
Trang 123̈ Tr v giá tr thay đ i trong nh ng l n g i khác
nhau dù giá tr tham s truy n vào gi ng nhau
Trang 124̈ Hàm t o b ng (Multi-statement table UDF): đ nh ngh a c u
Trang 129Các gi i h n khi xây d ng UDF
̈ Không th g i m t stored procedure
̈ Không th s d ng các hàm lo i không xác
đ nh đ c xây d ng s n trong SQL Server
̈ Getdate, Rand, …
̈ Vi c s d ng RAISERROR và @@ERROR là hoàn toàn không h p l
̈ UDF không th đ c s d ng đ s a đ i
Trang 130̈ Thay đ i n i dung hàm
̈ ALTER FUNCTION
̈ Xoá hàm
̈ DROP FUNCTION
Trang 131̈ SET c a câu UPDATE
̈ VALUES c a câu INSERT
̈ Mô t CHECK constraint
Trang 132SELECT * FROM DM_KHACH_HANG
WHERE dbo.ChuanChuoi(Ten_KHG)='Tran Toan'
UPDATE DM_KHACH_HANG
SET Ten_KHG=dbo.ChuanChuoi(Ten_KHG)
Declare @HoTen varchar(50)
SET @HoTen=' tran tHi mai'
INSERT DM_KHACH_HANG
VALUES('KHG05',dbo.ChuanChuoi(@HoTen))
Trang 134̈ Vi c s d ng UDF đã xây d ng trên có th
g i th c hi n nh sau:
SELECT * FROM dbo.LocDSKhachHang('T')
Trang 135S d ng các UDF thu c lo i t o b ng
̈ S d ng t ng t nh hàm đ c b ng, tuy nhiên hàm t o b ng giúp tr
v nh ng b giá tr ph c t p c n nhi u tính toán
CREATE FUNCTION F_DSHangHoa
(@LoaiHH varchar(50), @PhanTram numeric)
RETURNS @DSHangHoa Table(Ma_HH varchar(50),Ten_HH
varchar(50),DonGiaKhuyenMai numeric)
Begin
Insert Into @DSHangHoa(Ma_HH,Ten_HH,DonGiaKhuyenMai)
Select ID_HH,Ten_HH,DonGiaHienHanh
From DM_HANG_HOA where IDLoai_HH=@LoaiHH
Update @DSHangHoa Set
Trang 136DonGiaKhuyenMai=DonGiaKhuyenMai-Ch ng 12
TRIGGER
Trang 138Các x lý bên trong trigger
̈ n gi n hoá vi c xây d ng ng d ng
̈ Ch đ nh các b y l i d hi u
̈ T ng tính thân thi n c a ng d ng
̈ D dàng nh n ra các l i khi l p trình
Trang 139Các h n ch trên trigger
̈ Không đ c t o và tham chi u b ng t m
̈ Không t o hay thay đ i, xoá c u trúc các
đ i t ng s n có trong CSDL
̈ CREATE/ALTER/DROP
̈ Không gán, c p quy n cho ng i dùng
̈ GRANT/REVOKE
Trang 140Các lo i trigger
̈ SQL Server có hai lo i trigger
̈ Trigger thông th ng: AFTER (FOR) trigger
Trang 141Các b ng trung gian Inserted và Deleted
Trang 142T o m i trigger
̈ T o m i b ng Enterprise Manager
̈ T o m i b ng script
CREATE TRIGGER Tên_Trigger ON Tên_b ng
{ [ INSTEAD OF ] | [ FOR | AFTER ] }
{ [ INSERT [, UPDATE [,DELETE ] ] ] }
AS
[DECLARE Bi n_c c_b ]
Các_l nh
Trang 143Mô t
̈ Tên b ng
̈ Tên b ng mà trigger t o m i s liên k t
̈ INSTEAD OF: ch đ nh đây là trigger lo i
Trang 144Xóa trigger
̈ Xoá trigger b ng Enterprise Manager
̈ Xoá b ng script
DROP TRIGGER Tên_trigger
̈ Áp d ng cho database trên server khác khi c n
̈ Qu n lý đ c quá trình thay đ i c a các đ i
t ng liên k t v i b ng
Trang 145S a n i dung trigger
̈ S a n i dung b ng Enterprise Manager
̈ S a n i dung b ng script
ALTER TRIGGER Tên_Trigger ON Tên_b ng
FOR INSERT [, UPDATE [,DELETE ]]
Trang 146̈ C u hình cho phép trigger l ng nhau
̈ EXEC sp_configure 'nested triggers', [0 | 1]
Trang 147Khi thêm m i m u tin
̈ Th ng dùng đ ki m tra
̈ Khóa ngo i, Mi n giá tr , Liên thu c tính trong cùng
m t b ng
̈ Liên thu c tính c a nhi u b ng khác nhau
̈ 3 lo i đ u tiên, ch dùng trigger n u mu n cung c p các báo l i c th b ng ti ng Vi t
̈ N u đã khai báo các ràng bu c này b ng constraint
̈ Các c u trúc l nh th ng dùng khi ki m tra
̈ If Else