SlideShare a Scribd company logo
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN TP.HCM
Khoa Hệ Thống Thông Tin Tên môn học: Cơ sở dữ liệu
I. TÓM TẮT BÀI THỰC HÀNH
Yêu cầu lý thuyết
Sinh viên đã được trang bị kiến thức:
- Ràng buộc toàn vẹn..
Nội dung
- Xây dựng được các câu RBTV bằng Trigger
II. HƯỚNG DÂN TRIGGER:
1. Giới thiệu Trigger:
- Trigger là một kỹ thuật lập trình đặc biệt trong SQL, dùng để thực hiện các loại ràng buộc toàn vẹn có
tính phức tạp, nó sẽ có hiệu lực khi chúng ta thay đổi dữ liệu trên một bảng dữ liệu cụ thể hoặc các lệnh xử lí
làm thay đổi dữ liệu của các lênh: insert, update, delete. Trong trigger có thể chừa các lệnh truy vấn từ các
bảng khác hoặc bao gồm những lệnh truy vấn phức tạp.
- Trigger chạy một cách tự động: chúng được kích hoạt ngay tức thì khi có sự thay đổi dữ liệu trên bảng dữ
liệu.
2. Cú pháp:
2.1. Lệnh tạo trigger:
Create Trigger trigger_name on table_name
For [insert,update,delete]
As
Begin
Khai báo các xử lí
End
Lưu ý: trigger sau khi đã tạo, để chỉnh sửa nội dung các khai báo xử lí thì ta thay từ khóa Create bằng từ
khóa Alter => sau đó cho thực thi lai trigger (bôi đen nhấn F5) thì nội dung đó mới có hiệu lực
2.2. Lệnh xóa trigger:
Drop Trigger trigger_name
Lưu ý: trường hợp thi chỉ muốn ngưng kiểm tra trigger thì ta sử dụng lệnh sau:
Alter table table_name Disable/Enable Trigger trigger_name
Hoặc Alter table table_name Disable/Enable Trigger ALL
3. Một số thao tác liên quan đến trigger:
3.1. Thao tác dữ liệu:
_Khi người dùng thực hiện thao tác insert dữ liệu vào trong các quan hệ thì hệ thống sẽ tự động tạo ra
bảng tạm với tên INSERTED có cấu trúc tương tự như bảng dữ liệu mà ta muốn insert dữ liệu vào.
_Khi người dùng thực hiện thao tác delete dữ liệu các quan hệ thì hệ thống sẽ tự động tạo ra bảng tạm
với tên DELETED có cấu trúc tương tự như bảng dữ liệu mà ta muốn delete dữ liệu..
_Khi người dùng thực hiện thao tác update dữ liệu các quan hệ thì hệ thống sẽ thực hiện 2 thao tác sau:
 Tạo ra bảng DELETED để chứa dữ liệu cũ
 Tạo ra bảng INSERTED để chứa dữ liệu mới
3.2. Thao tác lập trình:
- Sinh viên tham khảo Book Online về:
+ Khai báo biến: DECLARE
+ Xuat thong tin: PRINT,RAISE
+ Cấu trúc điều kiện: IF
+ Cấu trúc lặp: FOR
+ Con trỏ: CURSOR
+ Hủy cập nhật dữ liệu vào hệ thống bộ nhớ: ROLLBACK TRAN
III. BÀI TẬP YÊU CẦU:
Bài 1. Sinh viên làm quen với việc cài đặt trigger cho các RBTV cơ bản sau:
a) Khi thêm một khách hành thì hiển thị thông báo “Khach hang da them thanh cong”
b) Khi thêm 1 hoá đơn thì hiển thị thông báo “Hoá đơn của khách hàng <Họ tên khách hàng> đã được
thêm thành công”
c) Khi xoá một CTHD thì hiển thị thông báo “CTHD của <SoHD> đã bị xoá”
d) Khi chỉnh sửa tên sản phẩm của một sản phẩm thì cho biết sản phẩm đó của nước nào sản xuất
Hướng dẫn câu a:
CREATE TRIGGER trg_Bai1a ON KHACHHANG
FOR INSERT
AS
BEGIN
Print ‘Khach hang da them thanh cong’
END
Kiểm tra lại trigger có hoạt động?
INSERT INTO KHACHHANG(MAKH) VALUES(‘KH50’)
Hướng dẫn câu b:
CREATE TRIGGER trg_ Kiemtra_NhapHD ON HOADON
FOR INSERT
AS
BEGIN
-- Dùng từ khoá để khai báo biến
DECLARE @MAKH CHAR(4)
DECLARE @HOTEN VARCHAR(40)
--------------------------------
SELECT @MAKH=MAKH FROM INSERTED
SELECT @HOTEN=HOTEN FROM KHACHHANG
WHERE MAKH=@MAKH
PRINT 'Hoa don cua khach hang '+@HOTEN+' da duoc them thanh cong'
END
Bài 2. Sinh viên hoàn thành Phần I bài tập Quanlibanhang (từ câu 11 đến câu 15)
Hướng dẫn câu 11: Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc
bằng ngày khách hàng đó đăng ký thành viên (NGDK).
Các bước để giải một câu RBTV phức tạp:
- Xác định bối cảnh: KHACHHANG, HOADON
- Xác định bảng tầm ảnh hưởng:
+ Dấu “+” cho biết khi ta thao tác dữ liệu sẽ bị vi phạm
+ Dấu “-” cho biết khi ta thao tác dữ liệu không bị vi phạm
Thêm Xóa Sửa
KHACHHANG - - +(NGDK)
HOADON + - +(NGHD)
- Thực hiện cài đặt trigger tại những ô có dấu “+”
-- Khi thêm 1 HD sẽ vi phạm RBTV
-- Cách 1:
CREATE TRIGGER trg01_ins_HOADON ON HOADON
FOR INSERT
AS
BEGIN
-- Khai bao bien de chua du lieu tu bang INSERTED ( bang nay co cau truc tuong
tu bang HOADON) khi ta them du lieu vao bang HOADON
DECLARE @MAKH varchar(4);
DECLARE @NGHD smalldatetime;
SELECT @MAKH=MAKH,@NGHD=NGHD FROM INSERTED
-- Khai bao bien de chua du lieu tu bang KHACHHANG
DECLARE @NGDK smalldatetime;
SELECT @NGDK=NGDK FROM KHACHHANG
WHERE MAKH=@MAKH
IF (@NGDK>@NGHD)
BEGIN
PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’
ROLLBACK TRAN
END
ELSE
BEGIN
PRINT ‘HOA DON DA THEM THANH CONG’
END
END
--------------------------------------
-- Cách 2:
CREATE TRIGGER trg01_ins_HOADON ON HOADON
FOR INSERT
AS
BEGIN
IF (SELECT COUNT(*) FROM KHACHHANG K,INSERTED I
WHERE K.MAKH=I.MAKH
AND K.NGDK>I.NGHD)>0
BEGIN
PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’
ROLLBACK TRAN
END
ELSE
BEGIN
PRINT ‘HOA DON DA THEM THANH CONG’
END
END
Cài đặt tương tự cho các dấu cộg còn lại.
IV. BÀI TẬP MỞ RỘNG:
Bài 3. Sinh viên hoàn thành bài tập Quanligiaovu

More Related Content

What's hot

SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
Pix Nhox
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
Tuan Do
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
Hưởng Nguyễn
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
leemindinh
 
Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#
An Nguyen
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
Võ Phúc
 
De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006Tran Tien
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2tranquanthien
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql. .
 
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTBài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
MasterCode.vn
 
Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)realpotter
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần Mềm
Hoài Phạm
 
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTITKHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
Popping Khiem - Funky Dance Crew PTIT
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
leemindinh
 
Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1
Nguyễn Trọng
 
Giáo trình mạng máy tính
Giáo trình mạng máy tínhGiáo trình mạng máy tính
Giáo trình mạng máy tính
Hoài Phạm
 
Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05
Nhóc Nhóc
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
Thanh Hoa
 

What's hot (20)

SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#Quy tắc thiết kế giao diện và viết code C#
Quy tắc thiết kế giao diện và viết code C#
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Week04 review
Week04 reviewWeek04 review
Week04 review
 
De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006De thi qlda cntt itc vdc trac nghiem 05-2006
De thi qlda cntt itc vdc trac nghiem 05-2006
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTBài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
 
Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần Mềm
 
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTITKHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1
 
Giáo trình mạng máy tính
Giáo trình mạng máy tínhGiáo trình mạng máy tính
Giáo trình mạng máy tính
 
Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05
 
Dns
DnsDns
Dns
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 

Similar to csdl-trigger

Bai tap-thuc-hanh-he-quan-tri-csdl
Bai tap-thuc-hanh-he-quan-tri-csdlBai tap-thuc-hanh-he-quan-tri-csdl
Bai tap-thuc-hanh-he-quan-tri-csdl
giang nguyen le
 
slide_Chuong 3_ (1).ppt
slide_Chuong 3_ (1).pptslide_Chuong 3_ (1).ppt
slide_Chuong 3_ (1).ppt
23TrnhMDuynD16CNPM3
 
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderAndroid Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
Phuoc Nguyen
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Kuli An
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
khanhtoankmz
 
Trigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL ServerTrigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL Server
Nguyễn Phúc
 
Tip oracle
Tip oracleTip oracle
Tip oracle
Tích Nguyễn
 
bai in.docx
bai in.docxbai in.docx
bai in.docx
trantp
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Minh Tri Lam
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010
Nhat Linh Luong
 
Bao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DNBao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DN
laonap166
 
New microsoft word document
New microsoft word documentNew microsoft word document
New microsoft word documentphamtuan1983
 
Cap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETCap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETANHMATTROI
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Minh Tri Lam
 
Lession 2
Lession 2Lession 2
Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#
Trung Thành Nguyễn
 
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwwwHQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
DuyNguyn224958
 

Similar to csdl-trigger (20)

Bai tap-thuc-hanh-he-quan-tri-csdl
Bai tap-thuc-hanh-he-quan-tri-csdlBai tap-thuc-hanh-he-quan-tri-csdl
Bai tap-thuc-hanh-he-quan-tri-csdl
 
slide_Chuong 3_ (1).ppt
slide_Chuong 3_ (1).pptslide_Chuong 3_ (1).ppt
slide_Chuong 3_ (1).ppt
 
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderAndroid Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
 
Trigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL ServerTrigger, Cursor, Function in SQL Server
Trigger, Cursor, Function in SQL Server
 
Tip oracle
Tip oracleTip oracle
Tip oracle
 
07 trigger view
07 trigger view07 trigger view
07 trigger view
 
bai in.docx
bai in.docxbai in.docx
bai in.docx
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010
 
Bao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DNBao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DN
 
New microsoft word document
New microsoft word documentNew microsoft word document
New microsoft word document
 
Csdl61
Csdl61Csdl61
Csdl61
 
Cap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETCap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NET
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
Lession 2
Lession 2Lession 2
Lession 2
 
Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#
 
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwwwHQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
HQCSDL_ThuTucaaaaaaaaaaaaaaaaaaaâdâdáwww
 
access
accessaccess
access
 

More from kikihoho

Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
kikihoho
 
chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)
kikihoho
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
kikihoho
 
chuong 3. quan he
chuong 3. quan hechuong 3. quan he
chuong 3. quan he
kikihoho
 
chuong 2. phep dem
chuong 2. phep demchuong 2. phep dem
chuong 2. phep dem
kikihoho
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logic
kikihoho
 
Đề thi 03
Đề thi 03Đề thi 03
Đề thi 03
kikihoho
 
Đề thi 02
Đề thi 02Đề thi 02
Đề thi 02
kikihoho
 
14 đề thi thực hành
14 đề thi thực hành 14 đề thi thực hành
14 đề thi thực hành
kikihoho
 
Cây nhị phân tìm kiếm
Cây nhị phân tìm kiếmCây nhị phân tìm kiếm
Cây nhị phân tìm kiếm
kikihoho
 
Cây và cây nhị phân
Cây và cây nhị phân Cây và cây nhị phân
Cây và cây nhị phân
kikihoho
 
ctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kepctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kep
kikihoho
 
ctdl&amp;gt 04-list_don
ctdl&amp;gt 04-list_donctdl&amp;gt 04-list_don
ctdl&amp;gt 04-list_don
kikihoho
 
Cấu trúc dữ liệu động
Cấu trúc dữ liệu động Cấu trúc dữ liệu động
Cấu trúc dữ liệu động
kikihoho
 
Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nội
kikihoho
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01
kikihoho
 
csdl bai-thuchanh_02
csdl bai-thuchanh_02csdl bai-thuchanh_02
csdl bai-thuchanh_02
kikihoho
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
kikihoho
 
csdl - buoi13-14
csdl - buoi13-14csdl - buoi13-14
csdl - buoi13-14
kikihoho
 
csdl - buoi10-11-12
csdl - buoi10-11-12csdl - buoi10-11-12
csdl - buoi10-11-12
kikihoho
 

More from kikihoho (20)

Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
 
chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
chuong 3. quan he
chuong 3. quan hechuong 3. quan he
chuong 3. quan he
 
chuong 2. phep dem
chuong 2. phep demchuong 2. phep dem
chuong 2. phep dem
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logic
 
Đề thi 03
Đề thi 03Đề thi 03
Đề thi 03
 
Đề thi 02
Đề thi 02Đề thi 02
Đề thi 02
 
14 đề thi thực hành
14 đề thi thực hành 14 đề thi thực hành
14 đề thi thực hành
 
Cây nhị phân tìm kiếm
Cây nhị phân tìm kiếmCây nhị phân tìm kiếm
Cây nhị phân tìm kiếm
 
Cây và cây nhị phân
Cây và cây nhị phân Cây và cây nhị phân
Cây và cây nhị phân
 
ctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kepctdl&amp;gt 05-list_kep
ctdl&amp;gt 05-list_kep
 
ctdl&amp;gt 04-list_don
ctdl&amp;gt 04-list_donctdl&amp;gt 04-list_don
ctdl&amp;gt 04-list_don
 
Cấu trúc dữ liệu động
Cấu trúc dữ liệu động Cấu trúc dữ liệu động
Cấu trúc dữ liệu động
 
Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nội
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01
 
csdl bai-thuchanh_02
csdl bai-thuchanh_02csdl bai-thuchanh_02
csdl bai-thuchanh_02
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
 
csdl - buoi13-14
csdl - buoi13-14csdl - buoi13-14
csdl - buoi13-14
 
csdl - buoi10-11-12
csdl - buoi10-11-12csdl - buoi10-11-12
csdl - buoi10-11-12
 

Recently uploaded

30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTUChuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
nvlinhchi1612
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
https://www.facebook.com/garmentspace
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
duykhoacao
 
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docxHỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
giangnguyen312210254
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
Điện Lạnh Bách Khoa Hà Nội
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
Qucbo964093
 
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
nhanviet247
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
nvlinhchi1612
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Nguyen Thanh Tu Collection
 

Recently uploaded (12)

30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTUChuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
 
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docxHỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
 
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 

csdl-trigger

  • 1. TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN TP.HCM Khoa Hệ Thống Thông Tin Tên môn học: Cơ sở dữ liệu I. TÓM TẮT BÀI THỰC HÀNH Yêu cầu lý thuyết Sinh viên đã được trang bị kiến thức: - Ràng buộc toàn vẹn.. Nội dung - Xây dựng được các câu RBTV bằng Trigger II. HƯỚNG DÂN TRIGGER: 1. Giới thiệu Trigger: - Trigger là một kỹ thuật lập trình đặc biệt trong SQL, dùng để thực hiện các loại ràng buộc toàn vẹn có tính phức tạp, nó sẽ có hiệu lực khi chúng ta thay đổi dữ liệu trên một bảng dữ liệu cụ thể hoặc các lệnh xử lí làm thay đổi dữ liệu của các lênh: insert, update, delete. Trong trigger có thể chừa các lệnh truy vấn từ các bảng khác hoặc bao gồm những lệnh truy vấn phức tạp. - Trigger chạy một cách tự động: chúng được kích hoạt ngay tức thì khi có sự thay đổi dữ liệu trên bảng dữ liệu. 2. Cú pháp: 2.1. Lệnh tạo trigger: Create Trigger trigger_name on table_name For [insert,update,delete] As Begin Khai báo các xử lí End Lưu ý: trigger sau khi đã tạo, để chỉnh sửa nội dung các khai báo xử lí thì ta thay từ khóa Create bằng từ khóa Alter => sau đó cho thực thi lai trigger (bôi đen nhấn F5) thì nội dung đó mới có hiệu lực 2.2. Lệnh xóa trigger: Drop Trigger trigger_name Lưu ý: trường hợp thi chỉ muốn ngưng kiểm tra trigger thì ta sử dụng lệnh sau: Alter table table_name Disable/Enable Trigger trigger_name Hoặc Alter table table_name Disable/Enable Trigger ALL 3. Một số thao tác liên quan đến trigger:
  • 2. 3.1. Thao tác dữ liệu: _Khi người dùng thực hiện thao tác insert dữ liệu vào trong các quan hệ thì hệ thống sẽ tự động tạo ra bảng tạm với tên INSERTED có cấu trúc tương tự như bảng dữ liệu mà ta muốn insert dữ liệu vào. _Khi người dùng thực hiện thao tác delete dữ liệu các quan hệ thì hệ thống sẽ tự động tạo ra bảng tạm với tên DELETED có cấu trúc tương tự như bảng dữ liệu mà ta muốn delete dữ liệu.. _Khi người dùng thực hiện thao tác update dữ liệu các quan hệ thì hệ thống sẽ thực hiện 2 thao tác sau:  Tạo ra bảng DELETED để chứa dữ liệu cũ  Tạo ra bảng INSERTED để chứa dữ liệu mới 3.2. Thao tác lập trình: - Sinh viên tham khảo Book Online về: + Khai báo biến: DECLARE + Xuat thong tin: PRINT,RAISE + Cấu trúc điều kiện: IF + Cấu trúc lặp: FOR + Con trỏ: CURSOR + Hủy cập nhật dữ liệu vào hệ thống bộ nhớ: ROLLBACK TRAN III. BÀI TẬP YÊU CẦU: Bài 1. Sinh viên làm quen với việc cài đặt trigger cho các RBTV cơ bản sau: a) Khi thêm một khách hành thì hiển thị thông báo “Khach hang da them thanh cong” b) Khi thêm 1 hoá đơn thì hiển thị thông báo “Hoá đơn của khách hàng <Họ tên khách hàng> đã được thêm thành công” c) Khi xoá một CTHD thì hiển thị thông báo “CTHD của <SoHD> đã bị xoá” d) Khi chỉnh sửa tên sản phẩm của một sản phẩm thì cho biết sản phẩm đó của nước nào sản xuất Hướng dẫn câu a: CREATE TRIGGER trg_Bai1a ON KHACHHANG FOR INSERT AS BEGIN Print ‘Khach hang da them thanh cong’ END Kiểm tra lại trigger có hoạt động? INSERT INTO KHACHHANG(MAKH) VALUES(‘KH50’) Hướng dẫn câu b: CREATE TRIGGER trg_ Kiemtra_NhapHD ON HOADON FOR INSERT AS BEGIN -- Dùng từ khoá để khai báo biến DECLARE @MAKH CHAR(4) DECLARE @HOTEN VARCHAR(40) -------------------------------- SELECT @MAKH=MAKH FROM INSERTED SELECT @HOTEN=HOTEN FROM KHACHHANG WHERE MAKH=@MAKH PRINT 'Hoa don cua khach hang '+@HOTEN+' da duoc them thanh cong' END Bài 2. Sinh viên hoàn thành Phần I bài tập Quanlibanhang (từ câu 11 đến câu 15)
  • 3. Hướng dẫn câu 11: Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên (NGDK). Các bước để giải một câu RBTV phức tạp: - Xác định bối cảnh: KHACHHANG, HOADON - Xác định bảng tầm ảnh hưởng: + Dấu “+” cho biết khi ta thao tác dữ liệu sẽ bị vi phạm + Dấu “-” cho biết khi ta thao tác dữ liệu không bị vi phạm Thêm Xóa Sửa KHACHHANG - - +(NGDK) HOADON + - +(NGHD) - Thực hiện cài đặt trigger tại những ô có dấu “+” -- Khi thêm 1 HD sẽ vi phạm RBTV -- Cách 1: CREATE TRIGGER trg01_ins_HOADON ON HOADON FOR INSERT AS BEGIN -- Khai bao bien de chua du lieu tu bang INSERTED ( bang nay co cau truc tuong tu bang HOADON) khi ta them du lieu vao bang HOADON DECLARE @MAKH varchar(4); DECLARE @NGHD smalldatetime; SELECT @MAKH=MAKH,@NGHD=NGHD FROM INSERTED -- Khai bao bien de chua du lieu tu bang KHACHHANG DECLARE @NGDK smalldatetime; SELECT @NGDK=NGDK FROM KHACHHANG WHERE MAKH=@MAKH IF (@NGDK>@NGHD) BEGIN PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’ ROLLBACK TRAN END ELSE BEGIN PRINT ‘HOA DON DA THEM THANH CONG’ END END -------------------------------------- -- Cách 2: CREATE TRIGGER trg01_ins_HOADON ON HOADON FOR INSERT AS BEGIN IF (SELECT COUNT(*) FROM KHACHHANG K,INSERTED I WHERE K.MAKH=I.MAKH AND K.NGDK>I.NGHD)>0 BEGIN PRINT ‘ERROR: ngay dang ky phai < ngay hoa don ’ ROLLBACK TRAN END ELSE BEGIN
  • 4. PRINT ‘HOA DON DA THEM THANH CONG’ END END Cài đặt tương tự cho các dấu cộg còn lại. IV. BÀI TẬP MỞ RỘNG: Bài 3. Sinh viên hoàn thành bài tập Quanligiaovu