intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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)

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:3

11
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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)

  1. 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
  2. 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
  3. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2