Bài giảng Hệ quản trị cơ sở dữ liệu (Database Management Systems) - Bài 10: Hàm do người dùng định nghĩa (UDF – User Defined Function)
lượt xem 4
download
Bài giảng Hệ quản trị cơ sở dữ liệu (Database Management Systems) - Bài 10: Hàm do người dùng định nghĩa (UDF – User Defined Function). Nội dung chính trong bài giảng này gồm có: Khái niệm, tạo mới hàm, quản lý hàm, gọi thực hiện hàm, hàm đệ quy. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ quản trị cơ sở dữ liệu (Database Management Systems) - Bài 10: Hàm do người dùng định nghĩa (UDF – User Defined Function)
- Khái niệm n Là một chương trình con: - Nhận các giá trị đầu vào Bài 10: Hàm do người dùng định nghĩa - Trả về một giá trị (UDF – User Defined Function) n 2 nhóm hàm: - Hàm xác định (deterministic) - Hàm không xác định (non - deterministic) 2/8/2018 Microsoft SQL Server 2005 1 2/8/2018 Microsoft SQL Server 2005 2 Tạo mới hàm Tạo mới hàm nCú pháp: n Ví dụ về tạo hàm đơn trị: Tạo hàm chuyển chuỗi Create Function Tên_Function (các_tham_số) ngày tháng năm sang xâu ký tự theo mã 112 Returns Kiểu_dữ_liệu_trả_về As Create Function Namthang(@d datetime) Begin Returns char(6) Các_lệnh As Return Begin End Declare @st char(6) Lưu ý: - Các tham số phải bắt đầu bằng ký hiệu @ Set @st=convert(char(6),@d,112) - Một hàm có thể không có tham số Return @st - Kiểu dữ liệu trả về có thể là một giá trị vô hướng End hoặc một bảng dữ liệu 2/8/2018 Microsoft SQL Server 2005 3 2/8/2018 Microsoft SQL Server 2005 4 1
- Tạo mới hàm Tạo mới hàm - Dạng MultiStatement Table (hàm tạo bảng): n Tạo hàm trả về một bảng: Ví dụ: Tạo hàm tạo bảng lưu danh sách hàng xuất với - Dạng Inline Table (hàm đọc bảng) giá khuyến mại, tham số truyền vào là mã vật tư và Ví dụ: Xây dựng hàm đọc bảng hiển thị danh sách vật tư % khuyến mại thuộc loại tivi Create Function DSHangxuat(@MaVTu char(4), Create Function DSachTivi() @Phantram numeric) Returns Table Returns @DSHangxuat Table As (SoPX char(4), Return (Select * From VATTU MaVT char(4), where left(MaVTu,2) = 'TV') SlXuat int, Giakhuyenmai money) 2/8/2018 Microsoft SQL Server 2005 5 2/8/2018 Microsoft SQL Server 2005 6 Tạo mới hàm Tạo mới hàm - Dạng MultiStatement Table (hàm tạo bảng) (tiếp): nCác lưu ý khi tạo hàm: As Với hàm đọc bảng: Begin - Phần thân hàm không đặt trong Begin End Insert Into - Câu lệnh Select có các hạn chế như khi tạo bảng ảo @DSHangxuat(SoPX,MaVT,SlXuat,Giakhuyenmai) Với hàm tạo bảng: Select * From CTPXUAT where MaVTu = @MaVTu - Không thể gọi một thủ tục nội tại từ bên trong hàm Update @DSHangxuat - Không thể sử dụng các hàm thuộc loại không xác Set Giakhuyenmai= định như getdate(), rand(),… Giakhuyenmai*(100-@Phantram)/100 - Không thể sử dụng hàm để sửa đổi thông tin trong các bảng cơ sở Return End 2/8/2018 Microsoft SQL Server 2005 7 2/8/2018 Microsoft SQL Server 2005 8 2
- Quản lý hàm Quản lý hàm n Sửa cấu trúc hàm: Cú pháp tương tự cú pháp tạo n Xem nội dung hàm: hàm, chỉ thay Create bằng Alter Cú pháp: sp_helptext Tên_hàm n Đổi tên hàm: sử dụng cú pháp Ví dụ: sp_helptext DSVattuxuat sp_rename Tên_cũ, Tên_mới n Xóa hàm: Ví dụ: Cú pháp: Drop Function Tên_hàm sp_rename DSHangxuat, DSVattuxuat Ví dụ: Drop Function DSVattuxuat Lưu ý: các thao tác trên có thể thực hiện trực tiếp từ cửa sổ Object Explorer 2/8/2018 Microsoft SQL Server 2005 9 2/8/2018 Microsoft SQL Server 2005 10 Gọi thực hiện hàm Hàm đệ quy n Cú pháp gọi hàm: n Xây dựng hàm tính giai thừa: dbo.Tên_hàm(danh_sách_các_tham_số_thực_sự) Create Function Giaithua(@n bigint) - Gọi hàm đơn trị: Có thể thực hiện lời gọi tại bất kỳ Returns Bigint vị trí nào mà biểu thức đơn trị có kiểu dữ liệu tương As đương được chấp nhận Begin Ví dụ: Print dbo.Namthang('02/12/2010') Declare @i bigint - Gọi hàm đa trị: IF @n>20 or @n is null set @n=null Ví dụ: else if @n
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ quản trị cơ sở dữ liệu Oracle: Chương 1 - Ngô Thùy Linh
31 p | 183 | 25
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Tổng quan hệ quản trị CSDL SQL Server - TS. Lại Hiền Phương
50 p | 114 | 14
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 - ĐH Công nghiệp Thực phẩm
92 p | 152 | 11
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - ĐH Công nghiệp Thực phẩm
31 p | 101 | 10
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Giới thiệu - Phạm Thọ Hoàn
14 p | 157 | 9
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Nguyễn Thị Uyên Nhi
33 p | 86 | 6
-
Bài giảng Hệ quản trị cơ sở dữ liệu (Database Management Systems) - Bài 1.1: Tổng quan về Hệ quản trị cơ sở dữ liệu
5 p | 19 | 6
-
Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 2: Mô hình cơ sở dữ liệu quan hệ
8 p | 47 | 5
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 2 - Phạm Nguyên Thảo
39 p | 81 | 5
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Nguyễn Trường Sơn
29 p | 49 | 5
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 2 - Lê Thị Minh Nguyện
11 p | 69 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 6 - Nguyễn Thị Mỹ Dung
33 p | 58 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Các tác vụ quản trị hệ thống - TS. Lại Hiền Phương (Phần 1)
32 p | 52 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Các tác vụ quản trị hệ thống - TS. Lại Hiền Phương (Phần 3)
61 p | 60 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Lê Thị Minh Nguyện
14 p | 72 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 6 - Phạm Nguyên Thảo
44 p | 51 | 3
-
Bài giảng Hệ quản trị cơ sở dữ liệu MSSQL 2005: Chương 7 - Hồ Thị Anh Đào
24 p | 64 | 2
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 8 - Lê Thị Minh Nguyện
5 p | 72 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn