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