CH4: LP 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: Nguyn 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: Nguyn Thị M Dung
CH4: LP 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: Nguyn Thị M Dung
1. Thiết kế View
- 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
bảng thật.
-Cũng tương tự như truy vấn dữ liệu 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 mất thời gian truy cập
dữ liệu từ bảng (table) gốc.
Biên soạn: Nguyn Thị M Dung
CH4: LP 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: Nguyn 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: Nguyn Thị M Dung
CH4: LP 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: Nguyn Thị M Dung
VD1: Sa View Ketquadetai gồm hotensv, học lc
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: Nguyn Thị M Dung
CH4: LP TRÌNH TRANSACT - SQL
5
u ý 1:
- Có th sử dụng c u truy vấn trên view tương
t như trên bảng (Table)
- Có th truy vấn trên va trên bảng va 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, tm, sửa) dữ liu tn View t
dữ liệu trên bảng gốc ng thay đổi theo.
Biên soạn: Nguyn Thị M Dung
u ý 2:
- Khi tạo View s dụng hàm kết tp t không thể
thc 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: Nguyn Thị M Dung