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

PRINT

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 ệ

10