9/5/2016
CƠ SỞ DỮ LIỆU
MÃ KỊCH BẢN, HÀM VÀ THỦ TỤC
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
MÃ KỊCH BẢN
i
Mã kịch bản
l
ữ d
ở s
ơ c
Các câu lệnh SQL riêng lẻ
u ệ
Nhóm câu lệnh 1 GO
…
t
…
Gom thành các nhóm lệnh (batch)
…
…
…
…
T
i
l
g n ố h ệ h n a u q g n ổ – u ệ
Nhóm câu lệnh n GO
ữ d
ở s
Mỗi nhóm câu lệnh kết thúc bởi lệnh GO
ơ C
Mỗi nhóm câu lệnh được biên dịch như một lệnh đơn
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
1
9/5/2016
MÃ KỊCH BẢN
i
l
Các câu lệnh xử lý mã kịch bản
ữ d
ở s
u ệ
Từ khóa
Mô tả
ơ c
g n ố h
USE
t
Thay đổi cơ sở dữ liệu hiện thời thành cơ sở dữ liệu được chỉ định trong câu lệnh
ệ h
Trả về thông báo tới client
n a u q g n ổ
DECLARE Định nghĩa biến cục bộ
T
i
l
– u ệ
SET
ữ d
ở s
EXEC
Gán giá trị cho biến cục bộ hoặc biến theo phiên làm việc Thực thi câu lệnh SQL hoặc stored procedure động
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
MÃ KỊCH BẢN
i
l
Các câu lệnh điều khiển luồng thực thi
ữ d
u ệ
Từ khóa
Mô tả
ở s
ơ c
IF…ELSE
Điều khiển luồng thực thi dựa vào điều kiện
t
g n ố h
BEGIN…END Định nghĩa khối câu lệnh
ệ h
WHILE
Lặp lại các câu lệnh chừng nào điều kiện được chỉ định là đúng
n a u q g n ổ
BREAK
Thoát khỏi vòng lặp WHILE trong cùng
T
–
CONTINUE
Quay về điểm bắt đầu vòng lặp WHILE
i
l
u ệ
TRY…CATCH Điều khiển luồng thực thi khi có lỗi xảy ra
ữ d
GOTO
Thay đổi luồng thực thi vô điều kiện
ở s
ơ C
RETURN
Thoát vô điều kiện
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
VÍ DỤ (1)
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
2
9/5/2016
MÃ KỊCH BẢN
i
l
ữ d
Lưu trữ giá trị trong mã kịch bản
ở s
ơ c
u ệ
t
Biến vô hướng
Biến bảng
Bảng tạm
T
Giá trị đơn (giá trị dữ liệu chuẩn)
Tập kết quả (dữ liệu bảng)
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
BẢNG TẠM
i
l
ữ d
Dùng để lưu trữ một tập kết quả trả về (dữ liệu dưới dạng bảng) từ một câu lệnh SELECT
ở s
ơ c
Hai loại bảng tạm Bảng tạm cục bộ
u ệ
t
Tên bắt đầu bằng dấu # Tồn tại trong phiên làm việc hiện tại. Trong phạm vi cửa sổ
soạn thảo truy vấn tạo ra bảng đó
Bảng tạm toàn cục
T
i
l
ữ d
Tên bắt đầu bằng dấu ## Tồn tại trong tất cả các phiên làm việc Bảng tạm được lưu trong CSDL tempdb Để xóa một bảng tạm, sử dụng lệnh DROP TABLE
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
VÍ DỤ (2)
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
3
9/5/2016
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
THỦ TỤC (PROCEDURE)
i
l
ữ d
ở s
ơ c
Procedure là một tập các câu lệnh Thực hiện một nhiệm vụ cụ thể Được đặt tên và lưu trữ dưới dạng đã biên
u ệ
dịch
t
Các thành phần
T
i
l
Biến Cấu trúc điều khiển Tên tối đa 128 ký tự
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
4
9/5/2016
THỦ TỤC (PROCEDURE)
i
l
ữ d
u ệ
CREATE PROCEDURE
[]
ở s
ơ c
t
g n ố h
[WITH [RECOMPILE] [, ENCRYPTION]
[, ]]
AS
ệ h n a u q
ALTER PROCEDURE
[]
T
i
l
ữ d
g n ổ – u ệ
[WITH [RECOMPILE] [, ENCRYPTION]
[, ]]
AS
ở s
ơ C
DROP PROCEDURE
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
THỦ TỤC (PROCEDURE)
i
l
Hai loại tham số
ữ d
ở s
ơ c
Tham số đầu vào Tham số bắt buộc Tham số tùy chọn
u ệ
t
Tham số đầu ra
Truyền trị cho tham số
T
i
l
ữ d
Truyền theo tên Truyền theo vị trí
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
5
9/5/2016
THỦ TỤC (PROCEDURE)
i
l
Làm việc với giá trị trả về
ữ d
Sử dụng tham số OUTPUT để trả về giá trị có
ở s
ơ c
kiểu dữ liệu bất kì
u ệ
Sử dụng hàm RETURN để trả về giá trị số
t
nguyên
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
6
9/5/2016
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
HÀM (FUNCTION)
i
l
ữ d
ở s
ơ c
Function là một tập các câu lệnh Thực hiện một nhiệm vụ cụ thể Được đặt tên và lưu trữ dưới dạng đã biên
u ệ
dịch
t
Trả về kết quả là một giá trị (lệnh return)
Các thành phần
T
i
l
ữ d
Biến Cấu trúc điều khiển Tên tối đa 128 ký tự
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
7
9/5/2016
HÀM (FUNCTION)
i
l
Chú ý
ữ d
ở s
ơ c
u ệ
Không có tham số đầu ra (output) Không chứa các lệnh Insert, Update, Delete liên quan đến bảng (khung nhìn) có sẵn
t
Có thể tạo bảng, bảng tạm, biến bảng
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
HÀM (FUNCTION)
i
l
ữ d
Hàm giá trị vô hướng Trả về giá trị đơn
ở s
ơ c
Hàm giá trị bảng đơn giản
u ệ
t
Trả về bảng, kết quả của một câu lệnh
SELECT đơn
Hàm giá trị bảng phức tạp
T
Trả về bảng, kết quả của nhiều câu lệnh
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
HÀM GIÁ TRỊ VÔ HƯỚNG
i
l
ữ d
ở s
ơ c
u ệ
CREATE FUNCTION [.]
([@ [= ]] [, …])
RETURNS
[WITH [ENCRYPTION] [, SCHEMABINDING] [, ]]
[AS]
t
g n ố h
BEGIN
ệ h
[]
RETURN
n a u q
END
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ổ – u ệ
8
9/5/2016
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
HÀM GIÁ TRỊ BẢNG ĐƠN GIẢN
i
l
ữ d
ở s
ơ c
u ệ
t
g n ố h
CREATE FUNCTION [.]
([@ [= ]] [, …])
RETURNS TABLE
[WITH {ENCRYPTION|SCHEMABINDING|ENCRYPTION,SCHEMABINDING}]
[AS]
RETURN [(] [)]
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
ệ h n a u q g n ổ – u ệ
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ
9
9/5/2016
HÀM GIÁ TRỊ BẢNG PHỨC TẠP
i
l
u ệ
CREATE FUNCTION []
ữ d
ở s
ơ c
t
g n ố h ệ h
([@ [= ]] [,…])
RETURNS @ TABLE
( []
[, []]…)
[WITH [ENCRYPTION] [, SCHEMABINDING] [, ]]
[AS]
n a u q
BEGIN
T
g n ổ
RETURN
–
END
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
u ệ
VÍ DỤ
i
l
ữ d
ở s
ơ c
u ệ
t
T
i
l
ữ d
ở s
ơ C
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn
g n ố h ệ h n a u q g n ổ – u ệ