1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 6 hàm SQL server 2005

27 304 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 326 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hàm trả về một giá trị thông qua tên hàm còn thủ tục thì không. Hàm được sử dụng như là một thành phần của một biểu thức. Hàm có hai loại: Hàm hệ thống và hàm do người dụng định nghĩa Nhóm hàm Configuration (Cấu hình) Nhóm hàm Cursor (Kiểu con trỏ) Nhóm hàm Date and Time Nhóm hàm Mathematical (Toán học) Nhóm hàm Metadata (Siêu dữ liệu) Nhóm hàm Security (Bảo mật) Nhóm hàm String (Chuỗi) Nhóm hàm khác

Trang 1

Chương 6: H À M

6.1 Giới thiệu

6.2 Hàm hệ thống

6.3 Hàm do người dùng định nghĩa

Trang 3

6.2 Hàm hệ thống

6.2.1 Hàm hệ thống trả về giá trị đơn

6.2.2 Hàm trả về giá trị tổng hợp 6.2.3 Hàm trả về khoảng giá trị

Ranking

Trang 4

6.2.1 Hàm hệ thống trả về giá trị

đơn

• Nhóm hàm Configuration (Cấu hình)

• Nhóm hàm Cursor (Kiểu con trỏ)

• Nhóm hàm Date and Time

• Nhóm hàm Mathematical (Toán học)

• Nhóm hàm Metadata (Siêu dữ liệu)

• Nhóm hàm Security (Bảo mật)

• Nhóm hàm String (Chuỗi)

Trang 5

Nhóm hàm Configuration (Cấu

hình)

• Lấy thông tin về cấu hình hiện hành

của SQL Server

Trang 6

Group by là Sum, Count,

Avg, Max, Min

Trang 7

6.2.3 Hàm trả về khoảng giá trị

Ranking

Hàm thuộc nhóm Ranking dùng để kết hợp xếp loại tập kết quả.

Trang 8

•Cú pháp của hàm Rank như sau:

Rank() Over ([Partition By <Cột

phân nhóm>] Order By <Cột sắp xếp>

[DESC|ASC])

Trang 9

Hàm Rank

•Ví dụ: Hiển thị danh sách điểm thi

lần 1 học phần có mã là Tinvp Trong kết quả trả về có hiển thị thêm cột xếp vị thứ dựa vào điểm thi lần 1

Trang 10

Hàm Rank

•Kết quả

Trang 12

Hàm Rank

•Kết quả

Trang 13

Hàm Dense_Rank

•tương tự hàm Rank, tuy nhiên các

giá trị trên cột vị thứ có giá trị

Rank

Trang 14

Hàm Ntile

•Hàm này tương tự hàm Rank, tuy nhiên

các giá trị trên cột vị thứ được giới hạn trong phạm vi chỉ định.

•Hàm NTILE chỉ có tác dụng chia đều số

lượng các bản ghi và đưa vào từng nhóm số.

•Ví dụ:

SELECT DT.MASV, HODEM,TEN,GIOITINH,DIEM,

NTILE(2) OVER (ORDER BY DIEM DESC) AS [VI THU]

FROM DIEMTHI DT INNER JOIN SINHVIEN SV

Trang 15

Hàm Ntile

•Sử dụng hàm NTILE cho từng bản ghi

trong một nhóm sẽ đưa ra các xếp loại giống nhau

Trang 16

Hàm Row_Number

• Trả về số thứ tự của cho bản ghi

trong tập bản ghi mà phát biểu

SELECT trả về

• Ví dụ:

SELECT DT.MASV, HODEM, TEN,

GIOITINH , DIEM,

Row_Number () OVER (ORDER BY DIEM)

AS [SO MAU TIN]

Trang 17

6.3 Hàm do người dùng định

nghĩa

6.3.1 Tạo hàm

6.3.2 Thay đổi hàm

Trang 18

6.3.1 Tạo hàm

6.3.1.1 Tạo hàm trả về giá trị đơn

•Kích nút phải chuột lên mục Scalar -

valued Functions chọn New Scalar - valued

Function, cửa sổ Query xuất hiện cho phép bạn soạn thảo câu lệnh T-SQL để tạo hàm Cú pháp tạo hàm trả về giá trị đơn như sau:

CREATE FUNCTION tên_hàm

Trang 19

6.3.1.1 Tạo hàm trả về giá trị đơn

Ví dụ 1: Định nghĩa hàm tính thứ trong tuần của một giá trị kiểu ngày

CREATE FUNCTION thu(@ngay DATETIME)

RETURNS NVARCHAR(10)

AS

BEGIN

DECLARE @st NVARCHAR(10) SELECT @st=CASE DATEPART(DW,@ngay)

WHEN 1 THEN N'Chủ nhật' WHEN 2 THEN N'Thứ hai' WHEN 3 THEN N'Thứ ba' WHEN 4 THEN N'Thứ tư' WHEN 5 THEN N'Thứ năm' WHEN 6 THEN N'Thứ sáu' ELSE N'Thứ bảy'

END RETURN (@st) /* Trị trả về của hàm */

Trang 20

6.3.1.1 Tạo hàm trả về giá trị đơn

•Một hàm khi đã được định nghĩa có

thể sử dụng như các hàm do HQTCSDL

cung cấp (thông thường trước tên hàm, bạn phải chỉ định thêm tên của người

sở hữu hàm)

•Ví dụ: Câu lệnh dưới đây sử dụng

hàm đã được định nghĩa ở ví dụ trước:

SELECT masv, hodem, ten,

dbo.thu(ngaysinh) as Thu,ngaysinh

Trang 21

6.3.1.2 Tạo hàm trả về dữ liệu kiểu

bảng

•Hàm nội tuyến trả về dữ liệu kiểu

bảng (Inline Table- valued

Trang 22

6.3.1.2 Tạo hàm trả về dữ liệu kiểu

Trang 23

6.3.1.2 Tạo hàm trả về dữ liệu kiểu

bảng

•Hàm nội tuyến trả về dữ liệu kiểu

bảng:

Ví dụ: Định nghĩa hàm func_XemSV:

Để biết danh sách các sinh viên khoá

1, bạn sử dụng câu lệnh như sau:

SELECT * FROM dbo.func_XemSV(1)

Trang 24

6.3.1.2 Tạo hàm trả về dữ liệu kiểu

bảng

•Hàm chứa nhiều lệnh trả về dữ liệu

kiểu bảng (Multi-Statement Table-valued Function ):

Trang 25

6.3.1.2 Tạo hàm trả về dữ liệu kiểu

bảng

•Hàm chứa nhiều lệnh trả về dữ liệu

kiểu bảng (Multi-Statement Table-valued Function ):

Ví dụ: Định nghĩa hàm func_TongSV

(@khoahoc SMALLINT) như sau:

- Hiển thị makhoa, tenkhoa, tongsosv

- Nếu @khoahoc=0 thì cho biết tổng

số sinh viên hiện có (tất cả các khóa) của mỗi khoa.

- Ngược lại Sẽ cho kết quả thống kê

tổng số sinh viên khoá @khoahoc

của mỗi khoa

Trang 26

6.3.1.2 Tạo hàm trả về dữ liệu kiểu

bảng

•Hàm chứa nhiều lệnh trả về dữ liệu

kiểu bảng (Multi-Statement

Trang 27

6.3.2 Thay đổi hàm

• Trong khung Object Explorer, chọn

Database chứa hàm cần sửa đổi,

Ngày đăng: 23/06/2017, 16:26

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w