
CH4: LẬP TRÌNH TRANSACT - SQL
1
GVPT: NGUYỄN THỊ MỸ DUNG
SỐ TC: 2
SỐ TIẾT: LT: 20; TH: 20
Biên soạn: Nguyễn Thị Mỹ Dung
Chương 1: Tổng quan về SQL Server (LT: 2)
Chương 2: Tạo và quản trị CSDL (LT: 6; TH: 6)
Chương 3: Transact-SQL và truy vấn dữ liệu
(LT: 6: TH: 8)
Chương 4: Lập trình với Transact-SQL (LT: 4:
TH: 4)
Chương 5: Bảo Mật và Phân Quyền (LT: 2;
TH: 2)
Chương 6: Kết nối CSDL (Tự học)
Biên soạn: Nguyễn Thị Mỹ Dung

CH4: LẬP TRÌNH TRANSACT - SQL
2
I. Thiết kế View, Index
II. Lập trình trong T-SQL
III. Stored Procedure
IV. Trigger
Biên soạn: Nguyễn Thị Mỹ Dung
1. Thiết kế View
- Là một bảng ảo được tạo ra từ tập con của các
bảng (Table) thật khác. Đối với người dùng View là
bảng thật.
-Cũng tương tự như truy vấn dữ liệu là dùng để
xem dữ liệu từ nhiều bảng khác nhau trong CSDL.
- Làm giảm sự phức tạp của CSDL bảo vệ dữ
liệu đối với người dùng không được phép truy cập.
- Các lệnh sử dụng trên View tương tự như trên
Table trong CSDL.
-Nhược điểm của View là mất thời gian truy cập
dữ liệu từ bảng (table) gốc.
Biên soạn: Nguyễn Thị Mỹ Dung

CH4: LẬP TRÌNH TRANSACT - SQL
3
(khung nhìn):
CREATE VIEW <TÊN_VIEW>
AS
SELECT <DS_TRƯỜNG>
FROM <DS_BẢNG>
[WHERE <ĐIỀU_KIỆN>
GROUP BY <DS_TRƯỜNG>]
Biên soạn: Nguyễn Thị Mỹ Dung
Ví dụ:Tạo View Ketquadetai gồm hotensv, học
lực, điểm trung bình đề tài
USE QLDETAISV
CREATE VIEW KETQUADETAI
AS
SELECT SINHVIEN.MASV, HOCLUC,
ROUND(AVG(KQ),2) AS DIEMTBDT
FROM SINHVIEN LEFT JOIN SV_DT ON
SV_DT.MASV = SINHVIEN.MASV
GROUP BY SINHVIEN.MASV, HOCLUC
Biên soạn: Nguyễn Thị Mỹ Dung

CH4: LẬP TRÌNH TRANSACT - SQL
4
:
ALTER VIEW <TÊN_VIEW>
AS
SELECT <DS_TRƯỜNG>
FROM <DS_BẢNG>
[WHERE <ĐIỀU_KIỆN>
GROUP BY <DS_TRƯỜNG>]
:
DROP VIEW <TÊN_VIEW>
Biên soạn: Nguyễn Thị Mỹ Dung
VD1: Sửa View Ketquadetai gồm hotensv, học lực
từ 7điểm trở lên và điểm trung bình đề tài.
USE QUANLYDETAISV
ALTER VIEW KETQUADETAI
AS
SELECT SINHVIEN.MASV, HOCLUC,
ROUND(AVG(KETQUA),2)AS DIEMTBDT
FROM SINHVIEN LEFT JOIN SV_DT ON
SV_DT.MASV = SINHVIEN.MASV
GROUP BY SINHVIEN.MASV, HOCLUC
WHERE HOCLUCHOCLUC >= 7
VD2:
DROP VIEW KETQUADETAI
Biên soạn: Nguyễn Thị Mỹ Dung

CH4: LẬP TRÌNH TRANSACT - SQL
5
Lưu ý 1:
- Có thể sử dụng các câu truy vấn trên view tương
tự như trên bảng (Table)
- Có thể truy vấn trên vừa trên bảng và vừa trên
View.
Ví dụ:
SELECT MASV, HOTENSV, HOCLUC, DTBDT
FROM KETQUADETAI KQ,SINHVIEN S
WHERE KQ.MASV = S.MASV AND
DTBDT >= 8
- Khi thay đổi (xóa, thêm, sửa) dữ liệu trên View thì
dữ liệu trên bảng gốc cũng thay đổi theo.
Biên soạn: Nguyễn Thị Mỹ Dung
Lưu ý 2:
- Khi tạo View có sử dụng hàm kết tập thì không thể
thực hiện được các thao tác: Insert, Update, Delete.
VD:
CREATE VIEW KETQUADT
AS
SELECT S.MASV, HOTENSV, AVG(KQ) AS DTBDT
FROM SV_DT SD, SINHVIEN S
WHERE SD.MASV =S.MASV
GROUP BY S.MASV, HOTENSV
Biên soạn: Nguyễn Thị Mỹ Dung

