Tải bản đầy đủ (.pdf) (13 trang)

IT209 bai 4 thu tuc thuong tru va ham nguoi dung ver2012 05

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.61 MB, 13 trang )

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

ThS. Trần Ngọc Thăng

1
B1_2011.11.26


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

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.



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


MỤC TIÊU



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

Tạo và sử dụng được Stored Procedure.

Tạo và 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.

3
B1_2011.11.26


NỘI DUNG

1

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

2

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

3

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

4
B1_2011.11.26



1. LẬP TRÌNH VỚI T-SQL
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.

5
B1_2011.11.26


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


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.

6
B1_2011.11.26


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


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.

7
B1_2011.11.26


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


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ều
kiể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 (single
unit of work).
 Cấu trúc câu lệnh tạo mới thủ tục:
CREATE {PROC|PROCEDURE} procedure_name
[(@parameter data_type) [= default] [OUTPUT]] [WITH ENCRYPTION]
AS <sql_statement>

 Thực thi thủ tục:
EXECUTE < parameters> [OUTPUT]

 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.

8
B1_2011.11.26


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


Scalar Functions;



Table-valued Functions.

9
B1_2011.11.26


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


Hàm thực sự tương tự như Stored procedure của SQl Server, nội dung bao gồm các
phá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 đơn
vị độ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

10


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_helptext
c. 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 DELETE
c. Hàm EDIT
d. Hàm REMOVE
3. Đoạn mã nguồn sau trả về kết quả nào?
1- DECLARE @TotalHours INT
2- SET TotalHours = 10
3- DECLARE @WagesPerHour INT =20
4- DECLARE @TotalWages INT = @TotalHours * @WagesPerHour
5- SELECT @TotalWates AS ‘TotalWages’
a. TotalWages = 200
b. Lỗi ở dòng lệnh thứ 3
c. Lỗi ở dòng lệnh thứ 4
d. Lỗi ở cả hai dòng lệnh thứ 3 và thứ 4

11
B1_2011.11.26


ĐÁ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_helptext
c. 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 DELETE
c. Hàm EDIT
d. Hàm REMOVE
3. Đoạn mã nguồn sau trả về kết quả nào?
1 - DECLARE @TotalHours INT
2- SET TotalHours = 10
3- DECLARE @WagesPerHour INT =20
4- DECLARE @TotalWages INT = @TotalHours * @WagesPerHour
5- SELECT @TotalWates AS ‘TotalWages’
a. TotalWages = 200
b. Lỗi ở dòng lệnh thứ 3
c. Lỗi ở dòng lệnh thứ 4
d. Lỗi ở cả hai dòng lệnh thứ 3 và thứ 4

12
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 và sử dụng được các hàm người dùng tự định nghĩa.




Đã tạo và sử dụng được Stored Procedure.



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

13
B1_2011.11.26



×