SlideShare a Scribd company logo
1 of 29
Download to read offline
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
NGÔN NGỮ LẬPNGÔN NGỮ LẬP
TRÌNH TTRÌNH T--SQLSQL
Trần Ngọc Bảo
Email: baotn@hcmup.edu.vn
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
VIEW – BẢNG ẢO
• View có thể được xem như là một
bảng (table) ảo.
• View có cấu trúc tương tự như
Table, gồm có các thuộc tính; tập
thuộc tính này có thể được kết hợp
từ một hay nhiều table/view khác.
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
22
Copyright © 1997 by Rational Software Corporation
từ một hay nhiều table/view khác.
• Thông thường, View được sử dụng
trong các câu truy vấn con
(subquery), trong store procedure
hoặc trong các báo biểu thống kê
(report)
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
VIEW – BẢNG ẢO
CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
Yêu cầu truy vấn: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của
các cầu thủ thuộc đội bóng “SHB Đà Nẵng” có quốc tịch “Brazil”
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL Yêu cầu truy vấn: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của
các cầu thủ thuộc đội bóng “SHB Đà Nẵng” có quốc tịch “Brazil”
VIEW – BẢNG ẢO
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL Yêu cầu truy vấn: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của các
cầu thủ thuộc đội bóng “Becamex Bình Dương” có quốc tịch “Việt Nam”
VIEW – BẢNG ẢO
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
VIEW – BẢNG ẢO
Yêu cầu truy vấn 1 (vCau1) và yêu cầu truy vấn 1B
Yêu cầu truy vấn 1: Cho biết mã số, họ tên, ngày sinh,
địa chỉ và vị trí của các cầu thủ thuộc đội bóng “SHB
Đà Nẵng” có quốc tịch “Brazil”
Yêu cầu truy vấn 1B: Cho biết mã số, họ tên, ngày sinh,
địa chỉ và vị trí của các cầu thủ thuộc đội bóng
“Becamex Bình Dương” có quốc tịch “Việt Nam”
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
Yêu cầu truy vấn 1 (vCau1) và yêu cầu truy vấn 1B
(vCau1B) chỉ khác nhau ở mệnh đề WHERE, nhưng
lại phải tạo 2 View khác nhau có cách nào chỉ
tạo một đối tượng có thể thỏa mãn cả hai yêu cầu
truy vấn 1 và 1B không ?
FUNCTION
Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))
FUNCTION
GỌI HÀM VÀ TRUYỀN
THAM SỐ CÂU LỆNH
TRUY VẤN DỮ LIỆU ĐỐI
VỚI YÊU CẦU 1
GỌI HÀM VÀ TRUYỀN
THAM SỐ CÂU LỆNH
TRUY VẤN DỮ LIỆU ĐỐI
VỚI YÊU CẦU 1B
Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88))
KẾT QUẢ GỌI HÀM VÀ
TRUYỀN THAM SỐ CÂU
LỆNH TRUY VẤN DỮ LIỆU
ĐỐI VỚI YÊU CẦU 1
VỚI YÊU CẦU 1B
KẾT QUẢ GỌI HÀM VÀ
TRUYỀN THAM SỐ CÂU
LỆNH TRUY VẤN DỮ LIỆU
ĐỐI VỚI YÊU CẦU 1B
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
FUNCTION
• User-defined Function là các hàm do người
dùng định nghĩa (tương tự như PROCEDURE có
kết quả trả về). Có 3 loại functon:
– Scalar-valued Function: có kết quả trả về là các biến
đơn có kiểu dữ liệu thông thường.
– Inline Table-valued Function: có kết quả trả về là 1
table
– Multi-statement Table-valued Function: có kết quả trả
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
99
Copyright © 1997 by Rational Software Corporation
– Multi-statement Table-valued Function: có kết quả trả
về là 1 table
• Function có thể được xem như là một bảng
(table) ảo có tham số.
• Thông thường, Function được sử dụng trong
các câu truy vấn con (subquery), trong store
procedure
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
FUNCTION
TABLE-VALUED
FUNCTION
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
1010
Copyright © 1997 by Rational Software Corporation
SCALAR-VALUED
FUNCTION
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
SCALAR-VALUED FUNCTION
CREATE FUNCTION TÊNHÀM
(DANH SÁCH THAM SỐ)
RETURNS KIỂUDỮLIỆU
AS
[CÂU LỆNH TRUY VẤN DỮ LIỆU]
CREATE FUNCTION [dbo].[F_TNB]
• Cú pháp
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
CREATE FUNCTION [dbo].[F_TNB]
(
@d datetime
)
RETURNS datetime
AS
BEGIN
declare @a datetime
set @a = dateadd(day,2,@d)
-- Return the result of the function
RETURN @a
END
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
SCALAR-VALUED FUNCTION
CÂU LỆNH TẠO
FUNCTION
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
GỌI HÀM VÀ
TRUYỀN THAM SỐ
TRONG CÁC CÂU
LỆNH TRUY VẤN DỮ
LIỆU
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
INLINE TABLE-VALUED FUNCTION
CREATE FUNCTION TENHÀM
(DANH SÁCH THAM SỐ)
RETURNS TABLE
AS
RETURN
(
[CÂU LỆNH TRUY VẤN DỮ LIỆU]
)
• Cú pháp
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
CREATE FUNCTION [dbo].[F_TNB_TABLE]
(
@DIEMTHI float
)
RETURNS TABLE
AS
RETURN
(
--CAU LENH TRUY VAN DU LU
SELECT * FROM BANGDIEM1
WHERE DIEMTHI = @DIEMTHI
)
INLINE TABLE-VALUED FUNCTION
GỌI HÀM VÀ
TRUYỀN THAM SỐ
TRONG CÁC CÂU
LỆNH TRUY VẤN DỮ
LIỆU
Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414))
CÂU LỆNH TẠO
FUNCTION
DẠNG TABLE
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
View & SubQuery
SELECT MASV, HOTEN, NGAYSINH
FROM
(SELECT MASV,HOTEN, NGAYSINH, MANGANH
FROM SINHVIEN
WHERE PHAI = ‘NAM’) AS SV JOIN
(SELECT MANGANH
FROM NGANH
WHERE TENNGANH = ‘Sư phạm Tin học’) AS N
ON SV.MANGANH = N.MANGANH
Tạo View V1 bằng cách chọnTạo View V1 bằng cách chọn
các dòngcác dòng [MASV, HOTEN,[MASV, HOTEN,
NGAYSINH, MANGANH]NGAYSINH, MANGANH] cócó
thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong
CREATE VIEW V1
AS
SELECT MASV,HOTEN, NGAYSINH, MANGANH
FROM SINHVIEN
WHERE PHAI = ‘NAM’
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong
quan hệquan hệ SINHVIENSINHVIEN
Tạo View V2 bằng cách chọnTạo View V2 bằng cách chọn
các dòngcác dòng [MANGANH][MANGANH] có thuộccó thuộc
tính TENNGANHtính TENNGANH = ‘Sư phạm= ‘Sư phạm
Tin học’Tin học’ trong quan hệtrong quan hệ NGANHNGANH
WHERE PHAI = ‘NAM’
CREATE VIEW V2
AS
SELECT MANGANH
FROM NGANH
WHERE TENNGANH = ‘Sư phạm Tin học’
SELECT MASV, HOTEN, NGAYSINH
FROM V1 JOIN V2
ON V1.MANGANH = V2.MANGANH
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
Function & SubQuery
SELECT MASV, HOTEN, NGAYSINH
FROM
(SELECT MASV,HOTEN, NGAYSINH, MANGANH
FROM SINHVIEN
WHERE PHAI = ‘NAM’) AS SV JOIN
(SELECT MANGANH
FROM NGANH
WHERE TENNGANH = ‘Sư phạm Tin học’) AS N
ON SV.MANGANH = N.MANGANH
Tạo Function F1 bằng cáchTạo Function F1 bằng cách
chọnchọn các dòngcác dòng [MASV, HOTEN,[MASV, HOTEN,
NGAYSINH, MANGANH]NGAYSINH, MANGANH] cócó
thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong
CREATE FUNCTION DBO.F1
(@PHAI NVARCHAR(10))
RETURNS TABLE
AS
RETURN
(
SELECT MASV,HOTEN, NGAYSINH, MANGANH
FROM SINHVIEN
WHERE PHAI = @PHAI
)
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong
quan hệquan hệ SINHVIENSINHVIEN
Tạo Function F2 bằng cáchTạo Function F2 bằng cách
chọnchọn các dòngcác dòng [MANGANH][MANGANH] cócó
thuộc tính TENNGANHthuộc tính TENNGANH = ‘Sư= ‘Sư
phạm Tin học’phạm Tin học’ trong quan hệtrong quan hệ
NGANHNGANH
CREATE FUNCTION DBO.F2
(@TENNGANG NVARCHAR(100))
RETURNS TABLE
AS
RETURN
(
SELECT MANGANH
FROM NGANH
WHERE TENNGANH = @TENNGANG
)
SELECT MASV, HOTEN, NGAYSINH
FROM DBO.F1(‘NAM’) A JOIN DBO.F2(‘Sư phạm Tin học’) B
ON A.MANGANH = B.MANGANH
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
CƠ SỞ DỮ LIỆUCƠ SỞ DỮ LIỆU
• BÀI TẬP User-Defined Function
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
LẬP TRÌNH VỚI CURSOR
CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1818))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1818))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
Yêu cầu truy vấn: Tính điểm, xếp hạng các đội bóng theo vòng,
năm và INSERT kết quả vào bảng BANGXH
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
LẬP TRÌNH VỚI CURSOR
MACLBMACLBMACLBMACLB TENCLB MASAN MATINH
BBD BECAMEXBECAMEXBECAMEXBECAMEX BÌNHBÌNHBÌNHBÌNH DDDDƯƠNGNGNGNG GDGDGDGD BDBDBDBD
SDN SHB ĐÀ NẴNG CL DN
KKH KHATOCO KHÁNH HÒA NT KH
TPY THÉP PHÚ YÊN TH PY
GDT GẠCH ĐỒNG TÂM LONG AN LA LA
Table: CAULACBO
Table: TRANDAU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
MACLBMACLBMACLBMACLB NAMNAMNAMNAM VONGVONGVONGVONG SOTRANSOTRANSOTRANSOTRAN THANG HOA THUA HIEUSO DIEM HANG
MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA
1 2009 1 2/7/2009 BBD SDN GD 3-0
2 2009 1 7/2/2009 KKH GDT NT 1-1
Table: TRANDAU
Table: BANGXH
Tính điểm và xếp hạng các
câu lạc bộ ???
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
LẬP TRÌNH VỚI CURSOR & FUNCTION
Bước 1: Tạo FUNCTION tính kết quả điểm sân nhà và sân khách
của mỗi Câu lạc bộ
MACLB, NAM, VONG, THANG, HOA, THUA, BANTHANG, BANTHUA, DIEM
Bước 2: Tính điểm của từng câu lạc bộ theo năm, vòng đấu ->
sắp xếp theo tổng điểm, hiệu số, tổng số bàn thắng, tổng số bàn
thua
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
thua
Bước 3: Duyệt CURSOR và INSERT dữ liệu vào bảng BANGXH
(có kiểm tra sự tồn tại của dữ liệu Nếu chưa có thì
INSERT/ngược lại thì UPDATE INSERT/UPDATE trực tiếp hoặc
thông qua STORED PROCEDURE)
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
LẬP TRÌNH VỚI CURSOR & FUNCTION
Hàm tính kết quả các trận đấu
tính đến @VONG của @NAM
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
LẬP TRÌNH VỚI CURSOR & FUNCTION
Gọi Hàm tính kết quả các trận đấu
tính đến VÒNG 1 của NĂM 2009
Gọi Hàm tính kết quả các trận đấu
tính đến VÒNG 2 của NĂM 2009
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
kết quả các trận đấu
tính đến VÒNG 1 của
NĂM 2009
kết quả các trận đấu
tính đến VÒNG 1 của
NĂM 2009
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
CƠ SỞ DỮ LIỆUCƠ SỞ DỮ LIỆU
•Kiểu dữ liệu do người dùng định nghĩa
(User-Defined Data Type)
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
Thêm mới dữ liệu
vào Table KHOA
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
Làm thế nào để khai báo kiểu
dữ liệu của Field trong TABLE
và Parameter trong
PROCEDURE/FUNCTION sao
cho khi có sự thay đổi thì ít
chỉnh sửa nhất
User-defined Data Type
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
User-defined Data Type:
kiểu dữ liệu do người
dùng định nghĩa
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
User-Defined Data Type
CREATE TYPE DBO.TÊNKIỂUDỮLIỆU
FROM KIỂU DỮ LIỆU HỆ THỐNG
[NOT NULL]
• Cú pháp
• Ví dụ: tạo kiểu dữ liệu với tên là TNBMA
có kiểu varchar(10) và TNBTEN có kiểu
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
CREATE TYPE DBO.TNBMA
FROM VARCHAR(10) NOT NULL
CREATE TYPE DBO.TNBTEN
FROM NVARCHAR(50)
có kiểu varchar(10) và TNBTEN có kiểu
nvarchar(50)
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
User-Defined Data Type
Câu lệnh tạo kiểu
dữ liệu TNBMA
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
Câu lệnh xóa kiểu
dữ liệu TNBTEN
ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU
ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929))
BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ
NGÔNNGỮLẬNGÔNNGỮLẬ
2929 29

More Related Content

What's hot

Hỗ trợ ra quyết định
Hỗ trợ ra quyết địnhHỗ trợ ra quyết định
Hỗ trợ ra quyết địnhlmphuong06
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịThanh Hoa
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngNguyễn Danh Thanh
 
Quản trị học - Ra quyết định quản trị
Quản trị học - Ra quyết định quản trịQuản trị học - Ra quyết định quản trị
Quản trị học - Ra quyết định quản trịHan Nguyen
 
Giáo trình Quản trị chuỗi cung ứng
Giáo trình Quản trị chuỗi cung ứngGiáo trình Quản trị chuỗi cung ứng
Giáo trình Quản trị chuỗi cung ứngIESCL
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýMasterCode.vn
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Hoa Le
 
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLPHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLDang Tuan
 
Vì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuật
Vì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuậtVì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuật
Vì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuậtluanvantrust
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựAskSock Ngô Quang Đạo
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHan Nguyen
 
silde marketing sản phẩm sữa của Vinamilk
silde marketing sản phẩm sữa của Vinamilksilde marketing sản phẩm sữa của Vinamilk
silde marketing sản phẩm sữa của VinamilkTiêu Kiếm
 
Chuoi cung ung th tru milk
Chuoi cung ung th tru milkChuoi cung ung th tru milk
Chuoi cung ung th tru milkLuyến Hoàng
 
Tài liệu giáo trình phương pháp nghiên cứu khoa học
Tài liệu giáo trình phương pháp nghiên cứu khoa họcTài liệu giáo trình phương pháp nghiên cứu khoa học
Tài liệu giáo trình phương pháp nghiên cứu khoa họcDương Nphs
 
Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà
Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà
Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà Nang Thu
 
12.ma trận và dịnh thức
12.ma trận và dịnh thức12.ma trận và dịnh thức
12.ma trận và dịnh thứcTrinh Yen
 
Chuong12
Chuong12Chuong12
Chuong12na
 

What's hot (20)

Hỗ trợ ra quyết định
Hỗ trợ ra quyết địnhHỗ trợ ra quyết định
Hỗ trợ ra quyết định
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
 
Quản trị học - Ra quyết định quản trị
Quản trị học - Ra quyết định quản trịQuản trị học - Ra quyết định quản trị
Quản trị học - Ra quyết định quản trị
 
Giáo trình Quản trị chuỗi cung ứng
Giáo trình Quản trị chuỗi cung ứngGiáo trình Quản trị chuỗi cung ứng
Giáo trình Quản trị chuỗi cung ứng
 
Đề tài hiệu quả thí điểm phân loại rác sinh hoạt, HAY
Đề tài  hiệu quả thí điểm phân loại rác sinh hoạt, HAYĐề tài  hiệu quả thí điểm phân loại rác sinh hoạt, HAY
Đề tài hiệu quả thí điểm phân loại rác sinh hoạt, HAY
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lý
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu
 
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLPHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
 
Vì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuật
Vì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuậtVì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuật
Vì sao nói quản trị vừa mang tính khoa học vừa mang tính nghệ thuật
 
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đĐề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng online
 
silde marketing sản phẩm sữa của Vinamilk
silde marketing sản phẩm sữa của Vinamilksilde marketing sản phẩm sữa của Vinamilk
silde marketing sản phẩm sữa của Vinamilk
 
Chuoi cung ung th tru milk
Chuoi cung ung th tru milkChuoi cung ung th tru milk
Chuoi cung ung th tru milk
 
Tài liệu giáo trình phương pháp nghiên cứu khoa học
Tài liệu giáo trình phương pháp nghiên cứu khoa họcTài liệu giáo trình phương pháp nghiên cứu khoa học
Tài liệu giáo trình phương pháp nghiên cứu khoa học
 
Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà
Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà
Xây dựng hệ thống quản lý dự án công ty cp tư vấn việt hà
 
12.ma trận và dịnh thức
12.ma trận và dịnh thức12.ma trận và dịnh thức
12.ma trận và dịnh thức
 
Chuong12
Chuong12Chuong12
Chuong12
 
Vietnamese YAKULT
Vietnamese YAKULT Vietnamese YAKULT
Vietnamese YAKULT
 

Similar to Db 11 (7)

Db 00
Db 00Db 00
Db 00
 
Db 09
Db 09Db 09
Db 09
 
Db 01
Db 01Db 01
Db 01
 
Db 02
Db 02Db 02
Db 02
 
Db 04
Db 04Db 04
Db 04
 
Db 10
Db 10Db 10
Db 10
 
Db 03
Db 03Db 03
Db 03
 

Db 11

  • 1. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học NGÔN NGỮ LẬPNGÔN NGỮ LẬP TRÌNH TTRÌNH T--SQLSQL Trần Ngọc Bảo Email: baotn@hcmup.edu.vn
  • 2. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL VIEW – BẢNG ẢO • View có thể được xem như là một bảng (table) ảo. • View có cấu trúc tương tự như Table, gồm có các thuộc tính; tập thuộc tính này có thể được kết hợp từ một hay nhiều table/view khác. TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ 22 Copyright © 1997 by Rational Software Corporation từ một hay nhiều table/view khác. • Thông thường, View được sử dụng trong các câu truy vấn con (subquery), trong store procedure hoặc trong các báo biểu thống kê (report)
  • 3. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL VIEW – BẢNG ẢO CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ Yêu cầu truy vấn: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của các cầu thủ thuộc đội bóng “SHB Đà Nẵng” có quốc tịch “Brazil”
  • 4. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL Yêu cầu truy vấn: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của các cầu thủ thuộc đội bóng “SHB Đà Nẵng” có quốc tịch “Brazil” VIEW – BẢNG ẢO TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ
  • 5. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL Yêu cầu truy vấn: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của các cầu thủ thuộc đội bóng “Becamex Bình Dương” có quốc tịch “Việt Nam” VIEW – BẢNG ẢO TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ
  • 6. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL VIEW – BẢNG ẢO Yêu cầu truy vấn 1 (vCau1) và yêu cầu truy vấn 1B Yêu cầu truy vấn 1: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của các cầu thủ thuộc đội bóng “SHB Đà Nẵng” có quốc tịch “Brazil” Yêu cầu truy vấn 1B: Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí của các cầu thủ thuộc đội bóng “Becamex Bình Dương” có quốc tịch “Việt Nam” TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ Yêu cầu truy vấn 1 (vCau1) và yêu cầu truy vấn 1B (vCau1B) chỉ khác nhau ở mệnh đề WHERE, nhưng lại phải tạo 2 View khác nhau có cách nào chỉ tạo một đối tượng có thể thỏa mãn cả hai yêu cầu truy vấn 1 và 1B không ?
  • 7. FUNCTION Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))
  • 8. FUNCTION GỌI HÀM VÀ TRUYỀN THAM SỐ CÂU LỆNH TRUY VẤN DỮ LIỆU ĐỐI VỚI YÊU CẦU 1 GỌI HÀM VÀ TRUYỀN THAM SỐ CÂU LỆNH TRUY VẤN DỮ LIỆU ĐỐI VỚI YÊU CẦU 1B Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88)) KẾT QUẢ GỌI HÀM VÀ TRUYỀN THAM SỐ CÂU LỆNH TRUY VẤN DỮ LIỆU ĐỐI VỚI YÊU CẦU 1 VỚI YÊU CẦU 1B KẾT QUẢ GỌI HÀM VÀ TRUYỀN THAM SỐ CÂU LỆNH TRUY VẤN DỮ LIỆU ĐỐI VỚI YÊU CẦU 1B
  • 9. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL FUNCTION • User-defined Function là các hàm do người dùng định nghĩa (tương tự như PROCEDURE có kết quả trả về). Có 3 loại functon: – Scalar-valued Function: có kết quả trả về là các biến đơn có kiểu dữ liệu thông thường. – Inline Table-valued Function: có kết quả trả về là 1 table – Multi-statement Table-valued Function: có kết quả trả TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ 99 Copyright © 1997 by Rational Software Corporation – Multi-statement Table-valued Function: có kết quả trả về là 1 table • Function có thể được xem như là một bảng (table) ảo có tham số. • Thông thường, Function được sử dụng trong các câu truy vấn con (subquery), trong store procedure
  • 10. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL FUNCTION TABLE-VALUED FUNCTION TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ 1010 Copyright © 1997 by Rational Software Corporation SCALAR-VALUED FUNCTION
  • 11. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL SCALAR-VALUED FUNCTION CREATE FUNCTION TÊNHÀM (DANH SÁCH THAM SỐ) RETURNS KIỂUDỮLIỆU AS [CÂU LỆNH TRUY VẤN DỮ LIỆU] CREATE FUNCTION [dbo].[F_TNB] • Cú pháp TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ CREATE FUNCTION [dbo].[F_TNB] ( @d datetime ) RETURNS datetime AS BEGIN declare @a datetime set @a = dateadd(day,2,@d) -- Return the result of the function RETURN @a END
  • 12. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL SCALAR-VALUED FUNCTION CÂU LỆNH TẠO FUNCTION TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ GỌI HÀM VÀ TRUYỀN THAM SỐ TRONG CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU
  • 13. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL INLINE TABLE-VALUED FUNCTION CREATE FUNCTION TENHÀM (DANH SÁCH THAM SỐ) RETURNS TABLE AS RETURN ( [CÂU LỆNH TRUY VẤN DỮ LIỆU] ) • Cú pháp TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ CREATE FUNCTION [dbo].[F_TNB_TABLE] ( @DIEMTHI float ) RETURNS TABLE AS RETURN ( --CAU LENH TRUY VAN DU LU SELECT * FROM BANGDIEM1 WHERE DIEMTHI = @DIEMTHI )
  • 14. INLINE TABLE-VALUED FUNCTION GỌI HÀM VÀ TRUYỀN THAM SỐ TRONG CÁC CÂU LỆNH TRUY VẤN DỮ LIỆU Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414)) CÂU LỆNH TẠO FUNCTION DẠNG TABLE
  • 15. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL View & SubQuery SELECT MASV, HOTEN, NGAYSINH FROM (SELECT MASV,HOTEN, NGAYSINH, MANGANH FROM SINHVIEN WHERE PHAI = ‘NAM’) AS SV JOIN (SELECT MANGANH FROM NGANH WHERE TENNGANH = ‘Sư phạm Tin học’) AS N ON SV.MANGANH = N.MANGANH Tạo View V1 bằng cách chọnTạo View V1 bằng cách chọn các dòngcác dòng [MASV, HOTEN,[MASV, HOTEN, NGAYSINH, MANGANH]NGAYSINH, MANGANH] cócó thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong CREATE VIEW V1 AS SELECT MASV,HOTEN, NGAYSINH, MANGANH FROM SINHVIEN WHERE PHAI = ‘NAM’ TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong quan hệquan hệ SINHVIENSINHVIEN Tạo View V2 bằng cách chọnTạo View V2 bằng cách chọn các dòngcác dòng [MANGANH][MANGANH] có thuộccó thuộc tính TENNGANHtính TENNGANH = ‘Sư phạm= ‘Sư phạm Tin học’Tin học’ trong quan hệtrong quan hệ NGANHNGANH WHERE PHAI = ‘NAM’ CREATE VIEW V2 AS SELECT MANGANH FROM NGANH WHERE TENNGANH = ‘Sư phạm Tin học’ SELECT MASV, HOTEN, NGAYSINH FROM V1 JOIN V2 ON V1.MANGANH = V2.MANGANH
  • 16. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL Function & SubQuery SELECT MASV, HOTEN, NGAYSINH FROM (SELECT MASV,HOTEN, NGAYSINH, MANGANH FROM SINHVIEN WHERE PHAI = ‘NAM’) AS SV JOIN (SELECT MANGANH FROM NGANH WHERE TENNGANH = ‘Sư phạm Tin học’) AS N ON SV.MANGANH = N.MANGANH Tạo Function F1 bằng cáchTạo Function F1 bằng cách chọnchọn các dòngcác dòng [MASV, HOTEN,[MASV, HOTEN, NGAYSINH, MANGANH]NGAYSINH, MANGANH] cócó thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong CREATE FUNCTION DBO.F1 (@PHAI NVARCHAR(10)) RETURNS TABLE AS RETURN ( SELECT MASV,HOTEN, NGAYSINH, MANGANH FROM SINHVIEN WHERE PHAI = @PHAI ) TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong quan hệquan hệ SINHVIENSINHVIEN Tạo Function F2 bằng cáchTạo Function F2 bằng cách chọnchọn các dòngcác dòng [MANGANH][MANGANH] cócó thuộc tính TENNGANHthuộc tính TENNGANH = ‘Sư= ‘Sư phạm Tin học’phạm Tin học’ trong quan hệtrong quan hệ NGANHNGANH CREATE FUNCTION DBO.F2 (@TENNGANG NVARCHAR(100)) RETURNS TABLE AS RETURN ( SELECT MANGANH FROM NGANH WHERE TENNGANH = @TENNGANG ) SELECT MASV, HOTEN, NGAYSINH FROM DBO.F1(‘NAM’) A JOIN DBO.F2(‘Sư phạm Tin học’) B ON A.MANGANH = B.MANGANH
  • 17. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CƠ SỞ DỮ LIỆUCƠ SỞ DỮ LIỆU • BÀI TẬP User-Defined Function
  • 18. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL LẬP TRÌNH VỚI CURSOR CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1818))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1818)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ Yêu cầu truy vấn: Tính điểm, xếp hạng các đội bóng theo vòng, năm và INSERT kết quả vào bảng BANGXH
  • 19. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL LẬP TRÌNH VỚI CURSOR MACLBMACLBMACLBMACLB TENCLB MASAN MATINH BBD BECAMEXBECAMEXBECAMEXBECAMEX BÌNHBÌNHBÌNHBÌNH DDDDƯƠNGNGNGNG GDGDGDGD BDBDBDBD SDN SHB ĐÀ NẴNG CL DN KKH KHATOCO KHÁNH HÒA NT KH TPY THÉP PHÚ YÊN TH PY GDT GẠCH ĐỒNG TÂM LONG AN LA LA Table: CAULACBO Table: TRANDAU TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ MACLBMACLBMACLBMACLB NAMNAMNAMNAM VONGVONGVONGVONG SOTRANSOTRANSOTRANSOTRAN THANG HOA THUA HIEUSO DIEM HANG MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA 1 2009 1 2/7/2009 BBD SDN GD 3-0 2 2009 1 7/2/2009 KKH GDT NT 1-1 Table: TRANDAU Table: BANGXH Tính điểm và xếp hạng các câu lạc bộ ???
  • 20. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL LẬP TRÌNH VỚI CURSOR & FUNCTION Bước 1: Tạo FUNCTION tính kết quả điểm sân nhà và sân khách của mỗi Câu lạc bộ MACLB, NAM, VONG, THANG, HOA, THUA, BANTHANG, BANTHUA, DIEM Bước 2: Tính điểm của từng câu lạc bộ theo năm, vòng đấu -> sắp xếp theo tổng điểm, hiệu số, tổng số bàn thắng, tổng số bàn thua TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ thua Bước 3: Duyệt CURSOR và INSERT dữ liệu vào bảng BANGXH (có kiểm tra sự tồn tại của dữ liệu Nếu chưa có thì INSERT/ngược lại thì UPDATE INSERT/UPDATE trực tiếp hoặc thông qua STORED PROCEDURE)
  • 21. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL LẬP TRÌNH VỚI CURSOR & FUNCTION Hàm tính kết quả các trận đấu tính đến @VONG của @NAM TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ
  • 22. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL LẬP TRÌNH VỚI CURSOR & FUNCTION Gọi Hàm tính kết quả các trận đấu tính đến VÒNG 1 của NĂM 2009 Gọi Hàm tính kết quả các trận đấu tính đến VÒNG 2 của NĂM 2009 TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ kết quả các trận đấu tính đến VÒNG 1 của NĂM 2009 kết quả các trận đấu tính đến VÒNG 1 của NĂM 2009
  • 23. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CƠ SỞ DỮ LIỆUCƠ SỞ DỮ LIỆU •Kiểu dữ liệu do người dùng định nghĩa (User-Defined Data Type)
  • 24. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ Thêm mới dữ liệu vào Table KHOA
  • 25. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ Làm thế nào để khai báo kiểu dữ liệu của Field trong TABLE và Parameter trong PROCEDURE/FUNCTION sao cho khi có sự thay đổi thì ít chỉnh sửa nhất User-defined Data Type
  • 26. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ User-defined Data Type: kiểu dữ liệu do người dùng định nghĩa
  • 27. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL User-Defined Data Type CREATE TYPE DBO.TÊNKIỂUDỮLIỆU FROM KIỂU DỮ LIỆU HỆ THỐNG [NOT NULL] • Cú pháp • Ví dụ: tạo kiểu dữ liệu với tên là TNBMA có kiểu varchar(10) và TNBTEN có kiểu TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ CREATE TYPE DBO.TNBMA FROM VARCHAR(10) NOT NULL CREATE TYPE DBO.TNBTEN FROM NVARCHAR(50) có kiểu varchar(10) và TNBTEN có kiểu nvarchar(50)
  • 28. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL User-Defined Data Type Câu lệnh tạo kiểu dữ liệu TNBMA TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ Câu lệnh xóa kiểu dữ liệu TNBTEN
  • 29. ẦNQuẢNTRỊCƠSỞDỮLiỆẦNQuẢNTRỊCƠSỞDỮLiỆUU ỮLẬPTRÌNHTỮLẬPTRÌNHT--SQLSQL TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929)) BÀIGIẢNGBÀIGIẢNGHỌCPHẦNQuẢHỌCPHẦNQuẢ NGÔNNGỮLẬNGÔNNGỮLẬ 2929 29