1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng hệ quản trị cơ sở dữ liệu chương 8 lê thị minh nguyện

5 10 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 1 MB

Nội dung

8/25/2017 Nội dung Khái niệm Chương Hàm (Function) Các loại Function Hàm Scalar Hàm Inline table valued GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn Hàm Multi statement table valued Nhận xét Hệ quản trị Cơ sở liệu Khái niệm Các loại Function • Cũng giống Stored Procedure Hàm đối tượng sở liệu bao gồm tập nhiều câu lệnh SQL nhóm lại với thành nhóm • Điểm khác biệt hàm thủ tục hàm trả giá trị thông qua tên hàm Điều cho phép ta sử dụng hàm thành phần biểu thức chẳng hạn câu lệnh truy vấn hay câu lệnh thực cập nhật liệu • Loại 1: Hàm định nghĩa sẵn DBMS Hệ quản trị Cơ sở liệu • Loại 2: Hàm người dùng định nghĩa • Giá trị trả “dữ liệu kiểu bảng” • Giá trị trả giá trị – Scalar-valued Hệ quản trị Cơ sở liệu 8/25/2017 Hàm Scalar Hàm Scalar (tt) CREATE FUNCTION Test_function(@b int, @c int) Hàm vô hướng trả giá trị dựa tham số truyền vào Cú pháp RETURNS AS declare @kq int if @b>2 CREATE FUNCTION func_name ([Danh_Sach_Cac_Tham_So]) RETURNS Kieu_Du_Lieu_Tra_Ve_Cua_Ham AS BEGIN các_câu_lenh_của_hàm END Hệ quản trị Cơ sở liệu int BEGIN set @kq=@b+@c else set @kq=@b+@c+1 return @kq END SELECT dbo Test_function(3,4) Hệ quản trị Cơ sở liệu Hàm Scalar (tt) Hàm Scalar(tt) CREATE FUNCTION GiaiThua(@x int) RETURNS int AS Begin Declare @i int If @x>20 OR @x IS NULL Set @i = NULL Else If @x < Set @i = @x Else Set @i = @x * dbo.GiaiThua(@x-1) Return @i End CREATE FUNCTION f_thu (@ngay datetime) returns nvarchar(10) As Begin declare @st nvarchar(10) select @st=case datepart(dw,@ngay) when then N'chủ nhật' when then N'thứ hai’ when then N 'thứ ba’ when then N 'thứ tư’ when then N 'thứ năm’ when then N 'thứ sáu’ else N 'thứ bảy’ End Return @st Hệ quản trị Cơ sở liệu End Hệ quản trị Cơ sở liệu Gọi hàm SELECT dbo.GiaiThua(3) 8/25/2017 Hàm Scalar (tt) Hàm Inline table valued Hàm nội tuyến, trả dạng bảng Cú pháp: Thực thi hàm: Select MaNV, TenNV, dbo.f_thu (NgayVaoLam) From NhanVien Kết qủa: CREATE FUNCTION func_name ([Danh_Sach_Cac_Tham_So]) RETURNS TABLE AS RETURN (câu_lenh_select) • Kiểu trả hàm phải định mệnh đề RETURNS TABLE • Trong phần thân hàm có câu lệnh RETURN Hệ quản trị Cơ sở liệu Hệ quản trị Cơ sở liệu 10 Hàm Inline table valued (tt) Hàm Inline table valued (tt) Hàm nội tuyến, trả dạng bảng Cú pháp: Tạo hàm trả khách hàng tùy thuộc vào giá trị mã khách hàng truyền vào cho tham số CREATE FUNCTION f_KhachHang (@MaKH int) RETURNS TABLE AS RETURN (Select * From KhachHang Where MaKH > @MaKH) CREATE FUNCTION func_name ([Danh_Sach_Cac_Tham_So]) RETURNS TABLE AS RETURN (câu_lenh_select) • Kiểu trả hàm phải định mệnh đề RETURNS TABLE • Trong phần thân hàm có câu lệnh RETURN Hệ quản trị Cơ sở liệu 11 Hệ quản trị Cơ sở liệu 12 8/25/2017 Hàm Multi statement table valued Hàm Inline table valued (tt) Hàm gồm nhiều câu lệnh SQL bên trong, trả vê dạng bảng Cú pháp: CREATE FUNCTION func_name ([Danh_Sach_Cac_Tham_So]) RETURNS @biến_bảng TABLE định_nghia_bảng AS BEGIN các_câu_lenh_trong_thân_hàm RETURN END Lưu ý: sau từ khóa RETURNS biến bảng định nghĩa sau từ khóa RETURN cuối hàm khơng có tham sơ kèm Thực thi hàm: SELECT tmp.TenKH, dh.NgayDatHang FROM DonHang dh, dbo.f_KhachHang(3) as tmp WHERE dh.MaKH = tmp.MaKH Hệ quản trị Cơ sở liệu 13 Hàm Multi statement table valued (tt) 14 Hàm Multi statement table valued (tt) CREATE FUNCTION f_DSKhachHang (@MaKH int) RETURNS @myKhachHang table (MaKH int, TenKH nvarchar(50), NgayDatHang datetime) AS Begin Else Insert into @myKhachHang Select kh.MaKH, kh.TenKH, dh.NgayDatHang From KhachHang kh, DonHang dh Where kh.MaKH=dh.MaKH and kh.MaKH = @MaKH Return End CREATE FUNCTION f_DSKhachHang (@MaKH int) RETURNS @myKhachHang table (MaKH int, TenKH nvarchar(50), NgayDatHang datetime) AS Begin If @MaKH = Insert into @myKhachHang Select kh.MaKH, kh.TenKH, dh.NgayDatHang From KhachHang kh, DonHang dh Where dh.MaKH = kh.MaKH 15 16 8/25/2017 Hàm Multi statement table valued (tt) Thực thi hàm: Select * From f_DSKhachHang (0) 17 Hệ quản trị Cơ sở liệu 18

Ngày đăng: 22/11/2023, 14:44

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN