Bài giảng SQL server: Chương 7 - Lê Thị Minh Nguyện
Số trang: 7
Loại file: pdf
Dung lượng: 482.39 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương 7 trình bày những nội dung liên quan đến hàm do người dùng định nghĩa. Trong chương này, các bạn sẽ tìm hiểu một số khái niệm về hàm, các loại hàm, tạo UDF,... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng SQL server: Chương 7 - Lê Thị Minh Nguyện 10/03/2015 TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG 7. Hàm do người dùng định nghĩa GV: Lê Thị Minh Nguyện Email: leminhnguyen@itc.edu.vnNội dungKhái niệmCác loại FunctionNhận xétTạo UDFVí dụ 2 1 10/03/2015Khái niệm UDFs là một chương trình con đảm trách một xử lý nào đó với đặc tính là sẽ nhận các tham số đầu vào và trả về một giá trị kết quả xử lý tính toán được dựa trên các tham số đầu vào đã nhận. 3Các loại Function Hàm xác định: luôn trả về cùng giá trị nếu giá trị các tham số được truyền vào là như nhau. Hàm không xác định: có thể cho ra kết quả khác biệt tại mỗi thời điểm chúng được gọi 4 2 10/03/2015Nhận xétUDFs là sự kết hợp của 2 đối tượng View và Store Procedurekhắc phục một số hạn chế của View và Store Procedure SP không thể là một phần của câu lệnh SELECT nhưng UDFs thì có View không hỗ trợ đệ quy trong khi UDFs thì có thể làm được điều này. 5Tạo UDFCú phápCREATE FUNCTION [Tên_Function](tham số) RETURNS kiểu_dữ_liệu_trả_về|Table|Biến_bảng AS BEGIN --Các lệnh Return END 6 3 10/03/2015Tạo UDFReturns: thiết lập kiểu dữ liệu trả về của UDFs. Có 2 cách thiết lập chính Trả về giá trị kiểu vô hướng: một chuỗi, một giá trị logic hoặc một kiểu số. Trả về một bảng: có thể trả về hai loại bảng • Inline table: khắc phục được nhược điểm không có tham số của VIEW. Có nghĩa rằng UDFs loại inline table giống như một VIEW có tham số. • Multistatement table: UDFs loại này giống với Store Procedure. Loại này luôn trả về 1 biến table. Thực hiện các câu SELECT phức tạp, cho phép thực hiện các câu lệnh logic khác như UPDATE, INSERT INTO… 7Ví dụ 1 RETURNS chứa duy nhất từ khoá table Tạo View như sau CREATE VIEW DS_SinhVien AS Select * From SINHVIEN Where MaLop = ‘C5CT09’ CREATE FUNCTION DS_SinhVien(@MaLop char(6)) RETURNS Table AS Return (Select * From SinhVien Where MaLop=@MaLop) Chứa một câu SELECT đơn giản nằm trong cặp 8 dấu ngoặc đơn. 4 10/03/2015Ví dụ 2CREATE FUNCTION F_DSHangHoa(@LoaiHang varchar(50), @PhanTram numeric ) RETURNS @DSHangHoa Table (MaMH char(10), TenMH varchar(50), DonGiaKhuyenMai numeric)ASBegin INSERT INTO @DSHangHoa(MaMH, TenMH, DonGiaKhuyenMai) Select MaMH, TenMH, DonGiaHienHanh From HANGHOA Where loaihang = @LoaiHang Update @DSHangHoa Set DonGiaKhuyenMai= DonGiaKhuyenMai- (DonGiaKhuyenMai * @Phantram)/100 9 ReturnEndVí dụ 3CREATE FUNCTION DonGiaHienHanh(@MaMH char(5)) RETURNS float ASBEGIN Return(Select DonGiaHienHanh From HANGHOA WHERE MaMH = @MaMH)END 10 5 10/03/2015Ví dụ 4CREATE FUNCTION Test_function(@b int, @c int)RETURNS int asBEGIN declare @kq int if @b>2 set @kq=@b+@c else set @kq=@b+@c+1 return @kqEND 11Ví dụ 5CREATE FUNCTION GiaiThua(@x int) RETURNS intASBegin Declare @i int If @x>20 OR @x IS NULL Set @i = NULL Else If @x < 2 Set @i = @x Else Set @i = @x * dbo.GiaiThua(@x-1) Return @iEnd 12SELECT dbo.GiaiThua(3) ...
Nội dung trích xuất từ tài liệu:
Bài giảng SQL server: Chương 7 - Lê Thị Minh Nguyện 10/03/2015 TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG 7. Hàm do người dùng định nghĩa GV: Lê Thị Minh Nguyện Email: leminhnguyen@itc.edu.vnNội dungKhái niệmCác loại FunctionNhận xétTạo UDFVí dụ 2 1 10/03/2015Khái niệm UDFs là một chương trình con đảm trách một xử lý nào đó với đặc tính là sẽ nhận các tham số đầu vào và trả về một giá trị kết quả xử lý tính toán được dựa trên các tham số đầu vào đã nhận. 3Các loại Function Hàm xác định: luôn trả về cùng giá trị nếu giá trị các tham số được truyền vào là như nhau. Hàm không xác định: có thể cho ra kết quả khác biệt tại mỗi thời điểm chúng được gọi 4 2 10/03/2015Nhận xétUDFs là sự kết hợp của 2 đối tượng View và Store Procedurekhắc phục một số hạn chế của View và Store Procedure SP không thể là một phần của câu lệnh SELECT nhưng UDFs thì có View không hỗ trợ đệ quy trong khi UDFs thì có thể làm được điều này. 5Tạo UDFCú phápCREATE FUNCTION [Tên_Function](tham số) RETURNS kiểu_dữ_liệu_trả_về|Table|Biến_bảng AS BEGIN --Các lệnh Return END 6 3 10/03/2015Tạo UDFReturns: thiết lập kiểu dữ liệu trả về của UDFs. Có 2 cách thiết lập chính Trả về giá trị kiểu vô hướng: một chuỗi, một giá trị logic hoặc một kiểu số. Trả về một bảng: có thể trả về hai loại bảng • Inline table: khắc phục được nhược điểm không có tham số của VIEW. Có nghĩa rằng UDFs loại inline table giống như một VIEW có tham số. • Multistatement table: UDFs loại này giống với Store Procedure. Loại này luôn trả về 1 biến table. Thực hiện các câu SELECT phức tạp, cho phép thực hiện các câu lệnh logic khác như UPDATE, INSERT INTO… 7Ví dụ 1 RETURNS chứa duy nhất từ khoá table Tạo View như sau CREATE VIEW DS_SinhVien AS Select * From SINHVIEN Where MaLop = ‘C5CT09’ CREATE FUNCTION DS_SinhVien(@MaLop char(6)) RETURNS Table AS Return (Select * From SinhVien Where MaLop=@MaLop) Chứa một câu SELECT đơn giản nằm trong cặp 8 dấu ngoặc đơn. 4 10/03/2015Ví dụ 2CREATE FUNCTION F_DSHangHoa(@LoaiHang varchar(50), @PhanTram numeric ) RETURNS @DSHangHoa Table (MaMH char(10), TenMH varchar(50), DonGiaKhuyenMai numeric)ASBegin INSERT INTO @DSHangHoa(MaMH, TenMH, DonGiaKhuyenMai) Select MaMH, TenMH, DonGiaHienHanh From HANGHOA Where loaihang = @LoaiHang Update @DSHangHoa Set DonGiaKhuyenMai= DonGiaKhuyenMai- (DonGiaKhuyenMai * @Phantram)/100 9 ReturnEndVí dụ 3CREATE FUNCTION DonGiaHienHanh(@MaMH char(5)) RETURNS float ASBEGIN Return(Select DonGiaHienHanh From HANGHOA WHERE MaMH = @MaMH)END 10 5 10/03/2015Ví dụ 4CREATE FUNCTION Test_function(@b int, @c int)RETURNS int asBEGIN declare @kq int if @b>2 set @kq=@b+@c else set @kq=@b+@c+1 return @kqEND 11Ví dụ 5CREATE FUNCTION GiaiThua(@x int) RETURNS intASBegin Declare @i int If @x>20 OR @x IS NULL Set @i = NULL Else If @x < 2 Set @i = @x Else Set @i = @x * dbo.GiaiThua(@x-1) Return @iEnd 12SELECT dbo.GiaiThua(3) ...
Tìm kiếm theo từ khóa liên quan:
SQL server Bài giảng SQL server Hệ quản trị SQL server Hệ quản trị cơ sở dữ liệu Hàm do người dùng định nghĩa Các loại hàmGợi ý tài liệu liên quan:
-
Giáo án Tin học lớp 12 (Trọn bộ cả năm)
180 trang 246 0 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 233 0 0 -
Thực hiện truy vấn không gian với WebGIS
8 trang 228 0 0 -
69 trang 142 0 0
-
57 trang 86 0 0
-
34 trang 81 0 0
-
Bài giảng Khái niệm về hệ cơ sở dữ liệu: Bài 2 - Hệ quản trị cơ sở dữ liệu
13 trang 75 0 0 -
Giáo trình Hệ quản trị cơ sở dữ liệu - Trần Thiên Thành
130 trang 70 0 0 -
Phát triển Java 2.0: Phân tích dữ liệu lớn bằng MapReduce của Hadoop
12 trang 69 0 0 -
Lý thuyết, bài tập và bài giải hệ thống thông tin kế toán: Phần 1
198 trang 67 0 0