Tài liệu tham khảo - CITD - Bến Tre 4. Ham

5 152 0
Tài liệu tham khảo - CITD - Bến Tre 4. Ham

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

Thông tin tài liệu

Hàm (Function) Đặc điểm hàm – – Trần Thị Bạch Huệ Nội dung       Đặc điểm hàm Hàm xây dựng sẵn (built-in function) Hàm người dùng định nghĩa (User Defined Function – UDF) Scalar UDF Inline UDF Multi statement UDF – Có thể sử dụng biến cấu trúc điều khiển function giống sp Function dùng lệnh sql, sp khơng Có thể tạo function trả giá trị trả table Hàm xây dựng sẵn  Là hàm định nghĩa sẵn SQL Server hàm max( ), min( ), avg( ), getdate( ), left( ), right( ),… Chúng ta cần gọi để sử dụng Hàm người dùng định nghĩa   Hàm người dùng tạo SQL Server cho phép tạo loại hàm: – – –  Ví dụ 1: CREATE FUNCTION nhan2so (@so1 int, @so2 int) RETURNS bigint AS BEGIN RETURN @so1*@so2 END Scalar: Trả giá trị Function nhận tới 1024 tham số hay không nhận tham số Inline Table-valued: Sử dụng câu lệnh Select để trả tập dòng Multi-statement Table-valued: Sử dụng nhiều câu lệnh để trả tập dòng Scalar UDF   Trả giá trị Tạo hàm lệnh: CREATE FUNCTION tên_hàm ([ds tham số]) RETURNS (KDL trả về) AS BEGIN các_câu_lệnh_của_hàm END  Tạo query liệt kê môn học với số tiết tăng gấp đôi select tenmh,dbo.nhan2so(st,2) from monhoc Inline UDF  Sử dụng câu lệnh Select để trả tập dòng  CREATE FUNCTION tên_hàm ([ds tham số]) RETURNS TABLE AS RETURN (câu_lệnh_select)  Sử dụng hàm LayHTSV để lấy họ tên sinh viên mang mã A01 select * from dbo.LayHTSV(N'A01') Chú ý: Trong phần thân hàm có câu lệnh SELECT sau lệnh RETURN Ngồi khơng sử dụng câu lệnh khác phần thân hàm Multi statement UDF  Ví dụ 2: Tạo hàm lấy họ tên sinh viên tuỳ vào mã sinh viên truyền vào cho tham số CREATE FUNCTION LayHTSV (@ma nvarchar(4)) RETURNS TABLE AS RETURN (select hosv, tensv from sinhvien where masv=@ma)   Sử dụng nhiều câu lệnh để trả tập dòng Tạo hàm lệnh: CREATE FUNCTION tên_hàm ([ds tham số]) RETURNS @biến_bảng TABLE (liệt_kê_các_cột_cho_bảng_mới) AS BEGIN Các_lệnh_trong_thân_hàm RETURN END  Ví dụ 3: Tạo hàm để trả bảng gồm cột họ tên sinh viên, môn học điểm (tức bảng đểm sinh viên) với điều kiện: – – Nếu tham số truyền vào ‘A00’ bảng kết chứa điểm cho tất sinh viên Nếu tham số truyền vào mã sinh viên cụ thể bảng kết chứa điểm liên quan đến sinh viên   Tạo câu query với lệnh: select * from InBangDiem(N'A00')  Quan sát kết Tạo câu query với lệnh select * from InBangDiem(N'A01')  Quan sát kết Bài tập ALTER FUNCTION InBangDiem (@ma nvarchar(4)) RETURNS @BangDiem TABLE (hosv nvarchar(50), tensv nvarchar(50), tenmh nvarchar(50),diem int ) AS BEGIN if (@ma=N'A00') insert into @BangDiem select hosv, tensv, tenmh, diem from sinhvien, ketqua, monhoc where sinhvien.masv = ketqua.masv and ketqua.mamh= monhoc.mamh else insert into @BangDiem select hosv, tensv, tenmh, diem from sinhvien, ketqua, monhoc where sinhvien.masv = ketqua.masv and ketqua.mamh= monhoc.mamh and sinhvien.masv = @ma RETURN END     Tạo lại hàm ví dụ Tuy nhiên bảng điểm trả có cột hoten, tenm, diem Tạo hàm để tính học phí cho mơn học biết tiết 55000 đồng Tạo hàm để lấy điểm trung bình cho sinh viên Tạo hàm đếm số sinh viên khoa truyền vào tham số Chỉnh sửa hàm   Trả lời thắc mắc Dùng lệnh ALTER FUNCTION để thay đổi định nghĩa hàm Cấu trúc lệnh ALTER FUNCTION tương tự CREATE TABLE Xoá hàm    Dùng lệnh DROP TABLE để xoá hàm Cấu trúc lệnh DROP TABLE DROP TABLE tên_hàm Ví du 4: Xố hàm LayHTSV DROP TABLE LayHTSV ... Scalar: Trả giá trị Function nhận tới 1024 tham số hay khơng nhận tham số Inline Table-valued: Sử dụng câu lệnh Select để trả tập dòng Multi-statement Table-valued: Sử dụng nhiều câu lệnh để trả... viên, môn học điểm (tức bảng đểm sinh viên) với điều kiện: – – Nếu tham số truyền vào ‘A00’ bảng kết chứa điểm cho tất sinh viên Nếu tham số truyền vào mã sinh viên cụ thể bảng kết chứa điểm liên... from monhoc Inline UDF  Sử dụng câu lệnh Select để trả tập dòng  CREATE FUNCTION tên_hàm ([ds tham số]) RETURNS TABLE AS RETURN (câu_lệnh_select)  Sử dụng hàm LayHTSV để lấy họ tên sinh viên

Ngày đăng: 18/12/2017, 20:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan