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
Trang 1BÀI 4 THỦ TỤC THƯỜNG TRÚ VÀ
HÀM NGƯỜI DÙNG
ThS Trần Ngọc Thăng
Trang 2Lậ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à:
Trang 3Khai 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
MỤC TIÊU
Trang 4Lậ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
Trang 51 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
Trang 61 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
Trang 72 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
Trang 82 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:
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
CREATE {PROC|PROCEDURE} procedure_name
[(@parameter data_type) [= default] [OUTPUT]] [WITH ENCRYPTION]
AS <sql_statement>
EXECUTE <procedure_name>< parameters> [OUTPUT]
Trang 93 HÀM NGƯỜI DÙNG ĐỊNH NGHĨA (USER DEFINED FUNCTION)
• Scalar Functions;
• Table-valued Functions
Trang 103 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 ]
Trang 11CÂ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?
2 Muốn xoá hàm dbo.fx_order_cost Lệnh nào được dùng để xoá hàm này?
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’
Trang 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?
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
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’
Trang 13TÓ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ẽ:
• 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