BÀI 4 THỦ TỤC THƯỜNG TRÚ VÀ HÀM NGƯỜI DÙNG - topica

13
B1_2011.11.26 BÀI 4 THỦ TỤC THƯỜNG TRÚ VÀ HÀM NGƯỜI DÙNG ThS. Trần Ngọc Thăng 1

Transcript of BÀI 4 THỦ TỤC THƯỜNG TRÚ VÀ HÀM NGƯỜI DÙNG - topica

B1_2011.11.26

BÀI 4THỦ TỤC THƯỜNG TRÚ VÀ

HÀM NGƯỜI DÙNG

ThS. Trần Ngọc Thăng

1

B1_2011.11.26

Lập trình cơ sở dữ liệu như thế nào?

SQL Server cung cấp một ngôn ngữ lập trình cơ sở dữ liệu T-SQL không chỉ cho phép

thực hiện truy vấn dữ liệu mà còn định nghĩa, cập nhật dữ liệu... Cũng như đối với các

ngôn ngữ lập trình như: Pascal, C, VB, C#,… ta thường xuyên phải dùng lại một nhóm

các câu lệnh truy vấn được gọi là hàm hay thủ tục. Một chuyên viên quản trị cơ sở dữ

liệu thường xuyên phải dùng ngôn ngữ T-SQL để xây dựng các hàm và thủ tục để thao

tác với cơ sở dữ liệu.

TÌNH HUỐNG DẪN NHẬP

Câu hỏi đặt ra là:Làm thế nào để lập trình một hàm hay thủ tục bằng ngôn ngữ lập trình cơsở dữ liệu T-SQL?

2

B1_2011.11.26

Khai báo và sử dụng các biến trong SQL.

Tạo va sư dụng được Stored Procedure.

Tạo va sư dụng được các hàm người dùng tư định nghĩa.

Sử dụng các thủ tục và hàm hệ thống.

MỤC TIÊU

3

B1_2011.11.26

Lập trình với T-SQL

Hàm thủ tục thường trú (Stored Procedure)

Hàm người dùng định nghĩa (User Defined Function)

NỘI DUNG

1

2

3

4

B1_2011.11.26

1. LẬP TRÌNH VỚI T-SQL

5

1.1. Khái niệm cơ bản

• Định danh IDENTIFIERS;

• Tham chiếu đến các đối tượng trong SQL Server;

• Kiểu dữ liệu (DATA TYPE);

• Batch;

• Kịch bản – SCRIPT.

1.2. Biến

1.3. Cấu trúc điều khiển

• Cấu trúc IF … ELSE;

• Biểu thức CASE;

• Vòng lặp WHILE.

B1_2011.11.26

1. LẬP TRÌNH VỚI T-SQL (tiếp theo)

6

• Một số tính năng chính của Transact-SQL.

• Biến, kiểu dữ liệu, chú thích trong Transact-SQL.

• Các hàm thống kê, biểu thức trong Transact-SQL.

• Giải thích ngôn ngữ định nghĩa dữ liệu và các lệnh của ngôn ngữ định nghĩa dữ liệu.

• Giải thích ngôn ngữ thao tác dữ liệu và các lệnh của ngôn ngữ thao tác dữ liệu.

• Giải thích ngôn ngữ điều khiển dữ liệu và các lệnh của ngôn ngữ điều khiển dữ liệu.

• Giải thích cách thực thi câu lệnh Transact-SQL:

Một câu lệnh đơn lẻ;

Tập lệnh;

Scripts.

• Liệt kê và giải thích những tính năng nâng cao của Transact-SQL.

B1_2011.11.26

2. HÀM THỦ TỤC THƯỜNG TRÚ (STORED PROCEDURE)

7

• Giới thiệu Store Procedures;

• Tạo, thực thi, hiệu chỉnh, xóa stored procedures;

• Tham số và biến trong Stored procedures.

B1_2011.11.26

2. HÀM THỦ TỤC THƯỜNG TRÚ (STORED PROCEDURE) (tiếp theo)

8

• Stored procedure (thủ tục) là một tập các lệnh T-SQL và một số cấu trúc điềukiển, được lưu với một tên và được thực thi như là một đơn vị công việc đơn (singleunit of work).

Cấu trúc câu lệnh tạo mới thủ tục:

Thực thi thủ tục:

Tham số và biến là phần cơ bản để tạo nên sự uyển chuyển của thủ tục.

• Input parameter: Tham số nhập, đưa giá trị của tham số để thông báo cho thủtục nên làm gì trong CSDL.

• Output parameter: Tham số xuất chứa giá trị trả về của thủ tục.

CREATE {PROC|PROCEDURE} procedure_name[(@parameter data_type) [= default] [OUTPUT]] [WITH ENCRYPTION]AS <sql_statement>

EXECUTE <procedure_name>< parameters> [OUTPUT]

B1_2011.11.26

3. HÀM NGƯỜI DÙNG ĐỊNH NGHĨA (USER DEFINED FUNCTION)

9

• Scalar Functions;

• Table-valued Functions.

B1_2011.11.26

3. HÀM NGƯỜI DÙNG ĐỊNH NGHĨA (USER DEFINED FUNCTION) (tiếptheo)

10

• Hàm thực sự tương tự như Stored procedure của SQl Server, nội dung bao gồm cácphát biểu T-SQL kết hợp tạo thành hàm, có thể gọi thực thi các hàm như là một đơnvị độc lập.

• Hàm được dùng trong:

Danh sách chọn của một câu lệnh Select để cho ra một giá trị;

Một điều kiện tìm kiếm của mệnh đề Where trong các câu lệnh T-SQL.

• Cấu trúc câu lệnh tạo mới hàm người dùng (dạng Scalar và Table-Valued Functions):

CREATE FUNCTION [ owner_name. ] function_name ([ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [,...n ] ]) RETURNS scalar_return_data_type[ WITH < function_option> [ [,] ...n] ] [ AS ] BEGIN function_body RETURN scalar_expression END

CREATE FUNCTION [ owner_name. ] function_name ([ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [,...n ] ]) RETURNS TABLE [ WITH < function_option > [ [,] ...n ] ] [ AS ] RETURN [ (] select-stmt [) ]

B1_2011.11.26

11

CÂU HỎI TRẮC NGHIỆM

1. Thủ tục hệ thống (system-stored procedure) nào dùng để cung cấp thông tin vềcác đối tượng Db hay loại dữ liệu của người dùng?

a. sp_droptype b. Sp_helptextc. Sp_help d. Sp_bindrule

2. Muốn xoá hàm dbo.fx_order_cost. Lệnh nào được dùng để xoá hàm này?a. Hàm DROP b. Hàm DELETEc. Hàm EDIT d. Hàm REMOVE

3. Đoạn mã nguồn sau trả về kết quả nào?1- DECLARE @TotalHours INT2- SET TotalHours = 103- DECLARE @WagesPerHour INT =204- DECLARE @TotalWages INT = @TotalHours * @WagesPerHour5- SELECT @TotalWates AS ‘TotalWages’

a. TotalWages = 200 b. Lỗi ở dòng lệnh thứ 3c. Lỗi ở dòng lệnh thứ 4 d. Lỗi ở cả hai dòng lệnh thứ 3 và thứ 4

B1_2011.11.26

12

ĐÁP ÁN TRẮC NGHIỆM

1. Thủ tục hệ thống (system-stored procedure) nào dùng để cung cấp thông tin về cácđối tượng Db hay loại dữ liệu của người dùng?

a. sp_droptype b. Sp_helptextc. Sp_help d. Sp_bindrule

2. Muốn xoá hàm dbo.fx_order_cost. Lệnh nào được dùng để xoá hàm này?a. Hàm DROP b. Hàm DELETEc. Hàm EDIT d. Hàm REMOVE

3. Đoạn mã nguồn sau trả về kết quả nào?1 - DECLARE @TotalHours INT2- SET TotalHours = 103- DECLARE @WagesPerHour INT =204- DECLARE @TotalWages INT = @TotalHours * @WagesPerHour5- SELECT @TotalWates AS ‘TotalWages’

a. TotalWages = 200 b. Lỗi ở dòng lệnh thứ 3c. Lỗi ở dòng lệnh thứ 4 d. Lỗi ở cả hai dòng lệnh thứ 3 và thứ 4

B1_2011.11.26

TÓM LƯỢC CUỐI BÀI

Sau khi học xong Bài 4. Thủ tục thường trú và hàm người dùng, học viên

sẽ:

• Khai báo và sử dụng các biến trong SQL.

• Tạo va sư dụng được các hàm người dùng tư định nghĩa.

• Đã tạo va sư dụng được Stored Procedure.

• Sử dụng các thủ tục và hàm hệ thống.

13