SlideShare a Scribd company logo
1 of 47
Download to read offline
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
LẬP TRÌNH VỚILẬP TRÌNH VỚI
CURSORCURSORCURSORCURSOR
T ầ N BảTrần Ngọc Bảo
Email: baotn@hcmup.edu.vn
UU
ĐẶT VẤN ĐỀ
CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1]
SỞDỮLiỆSỞDỮLiỆUU
RR
CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1]
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT
kết quả vào bảng DIEMTB
BÀIGIẢNBÀIGIẢN
kết quả vào bảng DIEMTB
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))
UU
LẬP TRÌNH VỚI CURSOR
CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ
SỞDỮLiỆSỞDỮLiỆUU
RR
CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
Yêu cầu truy vấn: Tính điểm xếp hạng các đội bóng theo vò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))
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
UU
LẬP TRÌNH VỚI CURSOR
Table: CAULACBO
SỞDỮLiỆSỞDỮLiỆUU
RR
MACLB TENCLB MASAN MATINH
BBD BECAMEX BÌNH DƯƠNG GD BD
SDN SHB ĐÀ NẴNG CL DN
Table: CAULACBO
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
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
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA
Ạ
Table: TRANDAU
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
1 2009 1 2/7/2009 BBD SDN GD 3-0
2 2009 1 7/2/2009 KKH GDT NT 1-1
Tính điểm và xếp hạng các
BÀIGIẢNBÀIGIẢN
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
Table: BANGXH
Tính điểm và xếp hạng các
câu lạc bộ ???
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))
UU
QUY TRÌNH XỬ LÝ CURSOR
Thông thường sử dụng vòng
SỞDỮLiỆSỞDỮLiỆUU
RR
Thông thường sử dụng vòng
lặp WHILE kết hợp với lệnh
FETCH để xử lý dữ liệu
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Khai báoKhai báo
CURSORCURSOR
Mở CURSORMở CURSOR
Lấy dữ liệu & xửLấy dữ liệu & xử
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
DECLARE
Lấy dữ liệu & xửLấy dữ liệu & xử
lý từ CURSORlý từ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
FETCH NEXT
O
Đóng CURSORĐóng CURSOR
OPEN
BÀIGIẢNBÀIGIẢN
FROM
CLOSE
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))
Hủy CURSORHủy CURSORDEALLOCATE
UU
LẬP TRÌNH VỚI CURSORLẬP TRÌNH VỚI CURSOR
SỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
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))
UU
QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Khai báo CURSOR
ở
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Mở CURSOR
Lấ dữ liệ từ CURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Lấy dữ liệu từ CURSOR
Xử lý dữ liệ đượ lấ từ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Xử lý dữ liệu được lấy từ CURSOR
Đóng CURSOR
BÀIGIẢNBÀIGIẢN
Đóng CURSOR
Hủy CURSOR
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))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))
Hủy CURSOR
UU
KHAI BÁO CURSOR
Cú há
SỞDỮLiỆSỞDỮLiỆUU
RR
• Cú pháp
DECLARE TênCursor CURSOR FOR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
[CÂU LỆNH TRUY VẤN DỮ LIỆU - SELECT]
ể
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
• Ví dụ: Khai báo CURSOR để lấy
dữ liệu từ bảng KHOA
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
ệ g
DECLARE curKhoa CURSOR FOR
SELECT MAKHOA, NAMTL
BÀIGIẢNBÀIGIẢN
SELECT MAKHOA, NAMTL
FROM KHOA
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))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))88
UU
KHAI BÁO CURSOR
DECLARE curKhoa CURSOR FOR
SỞDỮLiỆSỞDỮLiỆUU
RR
DECLARE curKhoa CURSOR FOR
SELECT MAKHOA, NAMTL FROM KHOA
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Dữ liệu được chứa/lưu
trong curKHOA là kết quả
của câu lệnh SELECT
BÀIGIẢNBÀIGIẢN
của câu lệnh SELECT
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))99
UU
QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Khai báo CURSOR
ở
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Mở CURSOR
Lấ dữ liệ từ CURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Lấy dữ liệu từ CURSOR
Xử lý dữ liệ đượ lấ từ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Xử lý dữ liệu được lấy từ CURSOR
Đóng CURSOR
BÀIGIẢNBÀIGIẢN
Đóng CURSOR
Hủy CURSOR
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))
Hủy CURSOR
UU
MỞ CURSOR
Cú há
SỞDỮLiỆSỞDỮLiỆUU
RR
• Cú pháp
OPEN TênCursor
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
ể
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
• Ví dụ: mở curKHOA để lấy dữ liệu
OPEN curKhoa
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
OPEN curKhoa
BÀIGIẢNBÀIGIẢN
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))1111
UU
MỞ CURSOR
OPEN curKhoa
SỞDỮLiỆSỞDỮLiỆUU
RR
OPEN curKhoa
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
curKHOA sẽ chỉ/trỏ đến
dòng đầu tiên trong bảng
kết quả của câu lệnh
BÀIGIẢNBÀIGIẢN
kết quả của câu lệnh
SELECT
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))1212
UU
MỞ CURSOR
OPEN curKhoa
SỞDỮLiỆSỞDỮLiỆUU
RR
OPEN curKhoa
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Làm thế nào để
lấy dữ liệu từ
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
lấy dữ liệu từ
cột MAKHOA,
NAMTL trong
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
curKHOA sẽ chỉ/trỏ đến
dòng đầu tiên trong bảng
kết quả của câu lệnh
curKHOA ???
BÀIGIẢNBÀIGIẢN
kết quả của câu lệnh
SELECT
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))
UU
MỞ CURSOR
OPEN curKhoa
SỞDỮLiỆSỞDỮLiỆUU
RR
OPEN curKhoa
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Khai báo biến để lấy
BÀIGIẢNBÀIGIẢN
Khai báo biến để lấy
dữ liệu từ curKHOA
(kết quả SELECT có n
cột thì phải khai báo n
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))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ột thì phải khai báo n
biến tương ứng)
UU
QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Khai báo CURSOR
ở
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Mở CURSOR
Lấ dữ liệ từ CURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Lấy dữ liệu từ CURSOR
Xử lý dữ liệ đượ lấ từ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Xử lý dữ liệu được lấy từ CURSOR
Đóng CURSOR
BÀIGIẢNBÀIGIẢN
Đóng CURSOR
Hủy CURSOR
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))
Hủy CURSOR
UU
LẤY DỮ LIỆU TỪ CURSOR
Cú há
SỞDỮLiỆSỞDỮLiỆUU
RR
• Cú pháp
FETCH NEXT FROM TênCursor
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
INTO @BIẾN1, @BIẾN2,…
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
• Ví dụ: lấy dữ liệu từ curKHOA
đưa vào các biến @MaKhoa,
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
@ ,
@NamTL
FETCH NEXT FROM curKhoa
BÀIGIẢNBÀIGIẢN
FETCH NEXT FROM curKhoa
INTO @MaKhoa, @NamTL
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))1616
UU
LẤY DỮ LIỆU TỪ CURSOR
Nế kết ả SELECT
SỞDỮLiỆSỞDỮLiỆUU
RR
Nếu kết quả SELECT
trong CURSOR có n
cột thì phải gán vào n
biến tương ứng theo
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
biến tương ứng theo
đúng thứ tự.
Giá trị của các biến
sau khi thực hiện lệnh
FETCH sẽ là
@M Kh ‘CNTT’
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
@MaKhoa = ‘CNTT’
@NamTL = 1995
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Lấy dữ liệu từ dòng
BÀIGIẢNBÀIGIẢN
Lấy dữ liệu từ dòng
hiện hành curKHOA
đưa vào các biến
@MaKhoa @NamTL
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 (1717))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 (1717))
@MaKhoa, @NamTL
UU
LẤY DỮ LIỆU TỪ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Xem giá trị của các
biến sau khi thực hiện
lệnh FETCH
@M Kh ‘CNTT’
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
@MaKhoa = ‘CNTT’
@NamTL = 1995
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
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))
UU
LẤY DỮ LIỆU TỪ CURSOR
Nế kết ả SELECT
SỞDỮLiỆSỞDỮLiỆUU
RR
Nếu kết quả SELECT
trong CURSOR có n
cột thì phải gán vào n
biến tương ứng theo
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
biến tương ứng theo
đúng thứ tự.
Giá trị của các biến
sau khi thực hiện lệnh
FETCH sẽ là
@M Kh ‘CNTT’
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
@MaKhoa = ‘CNTT’
@NamTL = 1995
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Lấy dữ liệu từ dòng
Làm thế nào để
lấy dữ liệu dòng
<DIA 1980>
BÀIGIẢNBÀIGIẢN
Lấy dữ liệu từ dòng
hiện hành curKHOA
đưa vào các biến
@MaKhoa @NamTL
<DIA, 1980>,…
gán vào các biến
@MaKhoa,
@NamTL ???
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))
@MaKhoa, @NamTL
UU
QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Khai báo CURSOR
ở
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Mở CURSOR
Lấ dữ liệ từ CURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Lấy dữ liệu từ CURSOR
Xử lý dữ liệ đượ lấ từ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Xử lý dữ liệu được lấy từ CURSOR
Đóng CURSOR
BÀIGIẢNBÀIGIẢN
Đóng CURSOR
Hủy CURSOR
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))
Hủy CURSOR
UU
Cấu trúc điều khiển
Cấ t ú lặ hil
SỞDỮLiỆSỞDỮLiỆUU
RR
• Cấu trúc lặp while
WHILE (bieuthuc logic)
BEGIN
WHILE (bieuthuc logic)
BEGIN
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
//Lenh/Khoi lenh S
END
//Lenh/khoi lenh sau while
//Lenh/Khoi lenh S
END
//Lenh/khoi lenh sau while
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
• Ví dụ
– Viết chương trình tính tổng s= 1+2+ +n
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
– Viết chương trình tính tổng s= 1+2+..+n
DECLARE @i,@S INT
SELECT @i=1,@s=0
while(@i<=@n)
DECLARE @i,@S INT
SELECT @i=1,@s=0
while(@i<=@n)
BÀIGIẢNBÀIGIẢN
while(@i< @n)
BEGIN
SELECT @s = @s+@i;
SELECT @i = @i+1;
while(@i< @n)
BEGIN
SELECT @s = @s+@i;
SELECT @i = @i+1;
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))
END
PRINT @S
END
PRINT @S
UU
Cấu trúc điều khiển
Cấ t ú lặ hil
SỞDỮLiỆSỞDỮLiỆUU
RR
• Cấu trúc lặp while
s=0s=0
DECLARE @i,@S INT
SELECT @i=1,@s=0
i @i @
DECLARE @i,@S INT
SELECT @i=1,@s=0
i @i @
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
ii 11
s 0s 0while(@i<=@n)
BEGIN
SELECT @s = @s+@i
SELECT @i = @i+1
while(@i<=@n)
BEGIN
SELECT @s = @s+@i
SELECT @i = @i+1
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
ii=1=1END
PRINT @S
END
PRINT @S
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
ii<=n<=n
ĐĐ
SS
ii++++
BÀIGIẢNBÀIGIẢN
s=s=s+is+i PRINT SPRINT S
ĐĐ
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))2222
UU
LẤY DỮ LIỆU TỪ CURSOR
Lấy và xử lý toàn bộ dữ liệu từ CURSOR
SỞDỮLiỆSỞDỮLiỆUU
RR
• Lấy và xử lý toàn bộ dữ liệu từ CURSOR
FETCH NEXT FROM TênCursor
Ế Ế
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
INTO @BIẾN1, @BIẾN2,…
WHILE @@FETCH_STATUS = 0
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
BEGIN
--XỬ LÝ DỮ LiỆU ĐƯỢC LẤY TỪ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
-- LẤY DỮ LIỆU DÒNG TiẾP THEO CỦA CURSOR
FETCH NEXT FROM TênCursor
BÀIGIẢNBÀIGIẢN
INTO @BIẾN1, @BIẾN2,…
END
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 (2323))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 (2323))2323
UU
LẤY DỮ LIỆU TỪ CURSOR
Ví dụ:
SỞDỮLiỆSỞDỮLiỆUU
RR
• Ví dụ:
FETCH NEXT FROM curKHOA
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
INTO @MaKhoa, @NamTL
WHILE @@FETCH_STATUS = 0
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
BEGIN
--XỬ LÝ DỮ LiỆU ĐƯỢC LẤY TỪ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
PRINT @MaKhoa
PRINT @NamTL
BÀIGIẢNBÀIGIẢN
FETCH NEXT FROM curKHOA
INTO @MaKhoa, @NamTL
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))2424
END
UU
LẤY DỮ LIỆU TỪ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
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))
UU
LẤY DỮ LIỆU TỪ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Xử lý (PRINT)
dữ liệu trong
curKHOA
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
cu O
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Kết quả lấy và xử lý
(PRINT) toàn bộ dữ
BÀIGIẢNBÀIGIẢN
( ) ộ
liệu trong curKHOA
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))
UU
QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Khai báo CURSOR
ở
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Mở CURSOR
Lấ dữ liệ từ CURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Lấy dữ liệu từ CURSOR
Xử lý dữ liệ đượ lấ từ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Xử lý dữ liệu được lấy từ CURSOR
Đóng CURSOR
BÀIGIẢNBÀIGIẢN
Đóng CURSOR
Hủy CURSOR
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))
Hủy CURSOR
UU
ĐÓNG CURSOR
Cú há
SỞDỮLiỆSỞDỮLiỆUU
RR
• Cú pháp
CLOSE TênCursor
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
• Ví dụ: đóng curKhoa khi không
sử dụng nữa hoặc kết thúc
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
ụ g ặ
stored procedure
CLOSE curKhoa
BÀIGIẢNBÀIGIẢN
CLOSE curKhoa
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))2828
UU
ĐÓNG CURSOR
SỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Đóng curKHOA sau
khi xử lý xong dữ
liệu từ CURSOR
BÀIGIẢNBÀIGIẢN
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))
UU
QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Khai báo CURSOR
ở
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Mở CURSOR
Lấ dữ liệ từ CURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Lấy dữ liệu từ CURSOR
Xử lý dữ liệ đượ lấ từ CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Xử lý dữ liệu được lấy từ CURSOR
Đóng CURSOR
BÀIGIẢNBÀIGIẢN
Đóng CURSOR
Hủy CURSOR
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 (3030))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 (3030))
Hủy CURSOR
UU
HỦY CURSOR
Cú há
SỞDỮLiỆSỞDỮLiỆUU
RR
• Cú pháp
DEALLOCATE TênCursor
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
• Ví dụ: hủy curKhoa, thông
thường CURSOR sẽ được hủy sau
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
g ợ y
lệnh đóng
DEALLOCATE curKhoa
BÀIGIẢNBÀIGIẢN
DEALLOCATE curKhoa
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 (3131))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 (3131))3131
UU
HỦY CURSOR
SỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Hủy curKHOA sau
BÀIGIẢNBÀIGIẢN
Hủy curKHOA sau
khi đã thực hiện
lệnh đóng (CLOSE)
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 (3232))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 (3232))
UU
LẬP TRÌNH VỚI CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
ế
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 (3333))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 (3333))
Tham khảo chi tiết:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/5a3a27aa-03e8-4c98-a27e-809282379b21.htm
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
LẬP TRÌNH VỚILẬP TRÌNH VỚI
CURSORCURSORCURSORCURSOR
BÀI TẬPBÀI TẬP
UU
LẬP TRÌNH VỚI CURSOR
CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1]
SỞDỮLiỆSỞDỮLiỆUU
RR
CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1]
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT
kết quả vào bảng DIEMTB
BÀIGIẢNBÀIGIẢN
kết quả vào bảng DIEMTB
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 (3535))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 (3535))
UU
Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT
LẬP TRÌNH VỚI CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT
kết quả vào bảng DIEMTB
Bước 1: Khai báo cursor chứa kết quả tính trung bình
ể
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Câu lệnh tính điểm
trung bình từ bảng
điểm [BANGDIEM1]
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Kết quả tính điểm
trung bình từ lệnh
BÀIGIẢNBÀIGIẢN
trung bình từ lệnh
SELECT MASV, HOTEN,
AVG(DIEMTHI) AS DTB
FROM BANGDIEM1
GROUP BY MASV, HOTEN
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 (3636))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 (3636))
GROUP BY MASV, HOTEN
UU
LẬP TRÌNH VỚI CURSOR
B ớ 2 Kh i bá biế lấ dữ liệ từ kết ả tí h điể t
SỞDỮLiỆSỞDỮLiỆUU
RR
Bước 2: Khai báo biến, lấy dữ liệu từ kết quả tính điểm trung
bình INSERT vào table DIEMTB
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Lấy dữ liệu từ
CURSOR gán vào
á biế
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
các biến
BÀIGIẢNBÀIGIẢN
INSERT kết quả tính
trung bình vào table
DIEMTB
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 (3737))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 (3737))
UU
LẬP TRÌNH VỚI CURSOR
Bước 3: Đóng và hủy CURSOR
SỞDỮLiỆSỞDỮLiỆUU
RR
Bước 3: Đóng và hủy CURSOR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Đóng CURSOR
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
Hủy CURSOR
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 (3838))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 (3838))
UU
LẬP TRÌNH VỚI CURSOR
Thực thi và kiểm tra kết quả
SỞDỮLiỆSỞDỮLiỆUU
RR
Thực thi và kiểm tra kết quả
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
Kết quả trước khi
tính điểm trung bình
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Kết quả truy vấn table
DIEMTB khi tí h
BÀIGIẢNBÀIGIẢN
DIEMTB sau khi tính
điểm trung bình
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 (3939))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 (3939))
UU
LẬP TRÌNH VỚI CURSOR
CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ
SỞDỮLiỆSỞDỮLiỆUU
RR
CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
Yêu cầu truy vấn: Tính điểm xếp hạng các đội bóng theo vò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 (4040))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 (4040))
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
UU
LẬP TRÌNH VỚI CURSOR
Table: CAULACBO
SỞDỮLiỆSỞDỮLiỆUU
RR
MACLB TENCLB MASAN MATINH
BBD BECAMEX BÌNH DƯƠNG GD BD
SDN SHB ĐÀ NẴNG CL DN
Table: CAULACBO
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
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
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA
Ạ
Table: TRANDAU
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
1 2009 1 2/7/2009 BBD SDN GD 3-0
2 2009 1 7/2/2009 KKH GDT NT 1-1
Tính điểm và xếp hạng các
BÀIGIẢNBÀIGIẢN
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
Table: BANGXH
Tính điểm và xếp hạng các
câu lạc bộ ???
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 (4141))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 (4141))
UU
LẬP TRÌNH VỚI CURSOR
Table: CAULACBO
SỞDỮLiỆSỞDỮLiỆUU
RR
MACLB TENCLB MASAN MATINH
BBD BECAMEX BÌNH DƯƠNG GD BD
SDN SHB ĐÀ NẴNG CL DN
KKH KHATOCO KHÁNH HÒA NT KH
Table: CAULACBO
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
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: TRANDAU
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
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
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
Table: BANGXH
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
BÀIGIẢNBÀIGIẢN
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
BBD 2009 1 1 1 0 0 3-0 3 1
KKH 2009 1 1 0 1 0 1-1 1 2
GDT 2009 1 1 0 1 0 1-1 1 3
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 (4242))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 (4242))
TPY 2009 1 0 0 0 0 0-0 0 4
SDN 2009 1 1 0 0 1 0-3 0 5
UU
LẬP TRÌNH VỚI CURSOR
Table: TRANDAU
SỞDỮLiỆSỞDỮLiỆUU
RR
Table: TRANDAU
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
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Table: BANGXH
2 2009 1 7/2/2009 KKH GDT NT 1-1
3 2009 2 16/2/2009 SDN KKH CL 2-2
4 2009 2 16/2/2009 TPY BBD TH 5-0
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
BBD 2009 1 1 1 0 0 3-0 3 1
KKH 2009 1 1 0 1 0 1-1 1 2
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
GDT 2009 1 1 0 1 0 1-1 1 3
TPY 2009 1 0 0 0 0 0-0 0 4
SDN 2009 1 1 0 0 1 0-3 0 5
TPY 2009 2 1 1 0 0 5-0 3 1
BBD 2009 2 2 1 0 1 3 5 3 2
BÀIGIẢNBÀIGIẢN
BBD 2009 2 2 1 0 1 3-5 3 2
KKH 2009 2 2 0 2 0 3-3 2 3
GDT 2009 2 1 0 1 0 1-1 1 4
SDN 2009 2 2 1 1 0 2-5 1 5
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 (4343))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 (4343))
UU
LẬP TRÌNH VỚI CURSOR
Table: TRANDAU
SỞDỮLiỆSỞDỮLiỆUU
RR
Table: TRANDAU
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
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
Table: BANGXH
2 2009 1 7/2/2009 KKH GDT NT 1-1
3 2009 2 16/2/2009 SDN KKH CL 2-2
4 2009 2 16/2/2009 TPY BBD TH 5-0
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
BBD 2009 1 1 1 0 0 3-0 3 1
KKH 2009 1 1 0 1 0 1-1 1 2
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
GDT 2009 1 1 0 1 0 1-1 1 3
TPY 2009 1 0 0 0 0 0-0 0 4
SDN 2009 1 1 0 0 1 0-3 0 5
TPY 2009 2 1 1 0 0 5-0 3 1
BBD 2009 2 2 1 0 1 3 5 3 2
BÀIGIẢNBÀIGIẢN
BBD 2009 2 2 1 0 1 3-5 3 2
KKH 2009 2 2 0 2 0 3-3 2 3
GDT 2009 2 1 0 1 0 1-1 1 4
SDN 2009 2 2 1 1 0 2-5 1 5
TÍNH ĐIỂM VÀ
XẾP HẠNG NHƯ
THẾ NÀ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 (4444))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 (4444))
THẾ NÀO ?
UU
LẬP TRÌNH VỚI CURSOR
MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA
SỞDỮLiỆSỞDỮLiỆUU
RR
MATRAN 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
3 2009 2 16/2/2009 SDN KKH CL 2-2
4 2009 2 16/2/2009 TPY BBD TH 5-0
5 2009 3 1/3/2009 TPY GDT TH 0 2
TÍNH ĐIỂM
VÀ XẾP
HẠNG NHƯ
THẾ NÀO ?
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
5 2009 3 1/3/2009 TPY GDT TH 0-2
6 2009 3 1/3/2009 KKH BBD NT 0-1
8 2009 4 7/3/2009 KKH TPY NT 1-0
9 2009 4 7/3/2009 BBD GDT GD 2-2
THẾ NÀO ?
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG
BBD 2009 1 1 1 0 0 3-0 3 1
KKH 2009 1 1 0 1 0 1-1 1 2
GDT 2009 1 1 0 1 0 1-1 1 3
TPY 2009 1 0 0 0 0 0-0 0 4
SDN 2009 1 1 0 0 1 0 3 0 5
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
SDN 2009 1 1 0 0 1 0-3 0 5
TPY 2009 2 1 1 0 0 5-0 3 1
BBD 2009 2 2 1 0 1 3-5 3 2
KKH 2009 2 2 0 2 0 3-3 2 3
GDT 2009 2 1 0 1 0 1-1 1 4
SDN 2009 2 2 1 1 0 2-5 1 5
BBD 2009 3 3 2 0 1 4-5 6 1
BÀIGIẢNBÀIGIẢN
BBD 2009 3 3 2 0 1 4 5 6 1
GDT 2009 3 2 1 1 0 3-1 4 2
TPY 2009 3 2 1 0 1 5-2 3 3
KKH 2009 3 3 0 2 1 3-4 2 4
SDN 2009 3 2 1 1 0 2-5 1 5
BBD 2009 4 4 2 1 1 6-7 7 1
GDT 2009 4 3 1 2 0 5-1 5 2
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 (4545))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 (4545))
KKH 2009 4 4 1 2 1 4-4 5 3
TPY 2009 4 3 1 0 2 5-3 3 4
SDN 2009 4 2 1 1 0 2-5 1 5
UU
LẬP TRÌNH VỚI CURSORSỞDỮLiỆSỞDỮLiỆUU
RR
Bước 1: Tạo 2 View kết quả điểm sân nhà và sân khách của mỗi
Câu lạc bộ
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
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 ->
ắ ế th tổ điể hiệ ố tổ ố bà thắ tổ ố bà
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
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
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
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ì
ế
BÀIGIẢNBÀIGIẢN
INSERT/ngược lại thì UPDATE INSERT/UPDATE trực tiếp hoặc
thông qua 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 (4646))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 (4646))
UUSỞDỮLiỆSỞDỮLiỆUU
RR
NTRỊCƠSNTRỊCƠS
CURSORCURSOR
HẦNQuẢNHẦNQuẢN
ÌNHVỚIÌNHVỚI
NGNGHỌCPHHỌCPH
LẬPTRÌLẬPTRÌ
BÀIGIẢNBÀIGIẢN
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 (4747))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 (4747))4747 47

More Related Content

Viewers also liked

SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)Pix Nhox
 
DBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLEDBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLEMinh Tri Lam
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tánduysu
 
Chuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tánChuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tánduysu
 
Chuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tánChuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tánduysu
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 

Viewers also liked (6)

SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
 
DBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLEDBLINK BETWEEN MS SQL SERVER & ORACLE
DBLINK BETWEEN MS SQL SERVER & ORACLE
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tán
 
Chuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tánChuong 1 - CSDL phân tán
Chuong 1 - CSDL phân tán
 
Chuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tánChuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tán
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 

More from Tôn Thất Kỳ (10)

Db 11
Db 11Db 11
Db 11
 
Db 09
Db 09Db 09
Db 09
 
Db 08
Db 08Db 08
Db 08
 
Db 06
Db 06Db 06
Db 06
 
Db 05
Db 05Db 05
Db 05
 
Db 04
Db 04Db 04
Db 04
 
Db 03
Db 03Db 03
Db 03
 
Db 02
Db 02Db 02
Db 02
 
Db 01
Db 01Db 01
Db 01
 
Convert psd to html5
Convert psd to html5Convert psd to html5
Convert psd to html5
 

Db 10

  • 1. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH VỚILẬP TRÌNH VỚI CURSORCURSORCURSORCURSOR T ầ N BảTrần Ngọc Bảo Email: baotn@hcmup.edu.vn
  • 2. UU ĐẶT VẤN ĐỀ CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1] SỞDỮLiỆSỞDỮLiỆUU RR CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1] NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT kết quả vào bảng DIEMTB BÀIGIẢNBÀIGIẢN kết quả vào bảng DIEMTB 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))
  • 3. UU LẬP TRÌNH VỚI CURSOR CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ SỞDỮLiỆSỞDỮLiỆUU RR CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN Yêu cầu truy vấn: Tính điểm xếp hạng các đội bóng theo vò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)) 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
  • 4. UU LẬP TRÌNH VỚI CURSOR Table: CAULACBO SỞDỮLiỆSỞDỮLiỆUU RR MACLB TENCLB MASAN MATINH BBD BECAMEX BÌNH DƯƠNG GD BD SDN SHB ĐÀ NẴNG CL DN Table: CAULACBO NTRỊCƠSNTRỊCƠS CURSORCURSOR 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 HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA Ạ Table: TRANDAU NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ 1 2009 1 2/7/2009 BBD SDN GD 3-0 2 2009 1 7/2/2009 KKH GDT NT 1-1 Tính điểm và xếp hạng các BÀIGIẢNBÀIGIẢN MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG Table: BANGXH Tính điểm và xếp hạng các câu lạc bộ ??? 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))
  • 5. UU QUY TRÌNH XỬ LÝ CURSOR Thông thường sử dụng vòng SỞDỮLiỆSỞDỮLiỆUU RR Thông thường sử dụng vòng lặp WHILE kết hợp với lệnh FETCH để xử lý dữ liệu NTRỊCƠSNTRỊCƠS CURSORCURSOR Khai báoKhai báo CURSORCURSOR Mở CURSORMở CURSOR Lấy dữ liệu & xửLấy dữ liệu & xử HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI DECLARE Lấy dữ liệu & xửLấy dữ liệu & xử lý từ CURSORlý từ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ FETCH NEXT O Đóng CURSORĐóng CURSOR OPEN BÀIGIẢNBÀIGIẢN FROM CLOSE 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)) Hủy CURSORHủy CURSORDEALLOCATE
  • 6. UU LẬP TRÌNH VỚI CURSORLẬP TRÌNH VỚI CURSOR SỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN 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))
  • 7. UU QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU RR Khai báo CURSOR ở NTRỊCƠSNTRỊCƠS CURSORCURSOR Mở CURSOR Lấ dữ liệ từ CURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Lấy dữ liệu từ CURSOR Xử lý dữ liệ đượ lấ từ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Xử lý dữ liệu được lấy từ CURSOR Đóng CURSOR BÀIGIẢNBÀIGIẢN Đóng CURSOR Hủy CURSOR 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))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)) Hủy CURSOR
  • 8. UU KHAI BÁO CURSOR Cú há SỞDỮLiỆSỞDỮLiỆUU RR • Cú pháp DECLARE TênCursor CURSOR FOR NTRỊCƠSNTRỊCƠS CURSORCURSOR [CÂU LỆNH TRUY VẤN DỮ LIỆU - SELECT] ể HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI • Ví dụ: Khai báo CURSOR để lấy dữ liệu từ bảng KHOA NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ ệ g DECLARE curKhoa CURSOR FOR SELECT MAKHOA, NAMTL BÀIGIẢNBÀIGIẢN SELECT MAKHOA, NAMTL FROM KHOA 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))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))88
  • 9. UU KHAI BÁO CURSOR DECLARE curKhoa CURSOR FOR SỞDỮLiỆSỞDỮLiỆUU RR DECLARE curKhoa CURSOR FOR SELECT MAKHOA, NAMTL FROM KHOA NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Dữ liệu được chứa/lưu trong curKHOA là kết quả của câu lệnh SELECT BÀIGIẢNBÀIGIẢN của câu lệnh SELECT 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))99
  • 10. UU QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU RR Khai báo CURSOR ở NTRỊCƠSNTRỊCƠS CURSORCURSOR Mở CURSOR Lấ dữ liệ từ CURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Lấy dữ liệu từ CURSOR Xử lý dữ liệ đượ lấ từ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Xử lý dữ liệu được lấy từ CURSOR Đóng CURSOR BÀIGIẢNBÀIGIẢN Đóng CURSOR Hủy CURSOR 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)) Hủy CURSOR
  • 11. UU MỞ CURSOR Cú há SỞDỮLiỆSỞDỮLiỆUU RR • Cú pháp OPEN TênCursor NTRỊCƠSNTRỊCƠS CURSORCURSOR ể HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI • Ví dụ: mở curKHOA để lấy dữ liệu OPEN curKhoa NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ OPEN curKhoa BÀIGIẢNBÀIGIẢN 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))1111
  • 12. UU MỞ CURSOR OPEN curKhoa SỞDỮLiỆSỞDỮLiỆUU RR OPEN curKhoa NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ curKHOA sẽ chỉ/trỏ đến dòng đầu tiên trong bảng kết quả của câu lệnh BÀIGIẢNBÀIGIẢN kết quả của câu lệnh SELECT 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))1212
  • 13. UU MỞ CURSOR OPEN curKhoa SỞDỮLiỆSỞDỮLiỆUU RR OPEN curKhoa NTRỊCƠSNTRỊCƠS CURSORCURSOR Làm thế nào để lấy dữ liệu từ HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI lấy dữ liệu từ cột MAKHOA, NAMTL trong NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ curKHOA sẽ chỉ/trỏ đến dòng đầu tiên trong bảng kết quả của câu lệnh curKHOA ??? BÀIGIẢNBÀIGIẢN kết quả của câu lệnh SELECT 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))
  • 14. UU MỞ CURSOR OPEN curKhoa SỞDỮLiỆSỞDỮLiỆUU RR OPEN curKhoa NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Khai báo biến để lấy BÀIGIẢNBÀIGIẢN Khai báo biến để lấy dữ liệu từ curKHOA (kết quả SELECT có n cột thì phải khai báo n 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))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ột thì phải khai báo n biến tương ứng)
  • 15. UU QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU RR Khai báo CURSOR ở NTRỊCƠSNTRỊCƠS CURSORCURSOR Mở CURSOR Lấ dữ liệ từ CURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Lấy dữ liệu từ CURSOR Xử lý dữ liệ đượ lấ từ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Xử lý dữ liệu được lấy từ CURSOR Đóng CURSOR BÀIGIẢNBÀIGIẢN Đóng CURSOR Hủy CURSOR 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)) Hủy CURSOR
  • 16. UU LẤY DỮ LIỆU TỪ CURSOR Cú há SỞDỮLiỆSỞDỮLiỆUU RR • Cú pháp FETCH NEXT FROM TênCursor NTRỊCƠSNTRỊCƠS CURSORCURSOR INTO @BIẾN1, @BIẾN2,… HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI • Ví dụ: lấy dữ liệu từ curKHOA đưa vào các biến @MaKhoa, NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ @ , @NamTL FETCH NEXT FROM curKhoa BÀIGIẢNBÀIGIẢN FETCH NEXT FROM curKhoa INTO @MaKhoa, @NamTL 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))1616
  • 17. UU LẤY DỮ LIỆU TỪ CURSOR Nế kết ả SELECT SỞDỮLiỆSỞDỮLiỆUU RR Nếu kết quả SELECT trong CURSOR có n cột thì phải gán vào n biến tương ứng theo NTRỊCƠSNTRỊCƠS CURSORCURSOR biến tương ứng theo đúng thứ tự. Giá trị của các biến sau khi thực hiện lệnh FETCH sẽ là @M Kh ‘CNTT’ HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI @MaKhoa = ‘CNTT’ @NamTL = 1995 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Lấy dữ liệu từ dòng BÀIGIẢNBÀIGIẢN Lấy dữ liệu từ dòng hiện hành curKHOA đưa vào các biến @MaKhoa @NamTL 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 (1717))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 (1717)) @MaKhoa, @NamTL
  • 18. UU LẤY DỮ LIỆU TỪ CURSORSỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR Xem giá trị của các biến sau khi thực hiện lệnh FETCH @M Kh ‘CNTT’ HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI @MaKhoa = ‘CNTT’ @NamTL = 1995 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN 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))
  • 19. UU LẤY DỮ LIỆU TỪ CURSOR Nế kết ả SELECT SỞDỮLiỆSỞDỮLiỆUU RR Nếu kết quả SELECT trong CURSOR có n cột thì phải gán vào n biến tương ứng theo NTRỊCƠSNTRỊCƠS CURSORCURSOR biến tương ứng theo đúng thứ tự. Giá trị của các biến sau khi thực hiện lệnh FETCH sẽ là @M Kh ‘CNTT’ HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI @MaKhoa = ‘CNTT’ @NamTL = 1995 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Lấy dữ liệu từ dòng Làm thế nào để lấy dữ liệu dòng <DIA 1980> BÀIGIẢNBÀIGIẢN Lấy dữ liệu từ dòng hiện hành curKHOA đưa vào các biến @MaKhoa @NamTL <DIA, 1980>,… gán vào các biến @MaKhoa, @NamTL ??? 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)) @MaKhoa, @NamTL
  • 20. UU QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU RR Khai báo CURSOR ở NTRỊCƠSNTRỊCƠS CURSORCURSOR Mở CURSOR Lấ dữ liệ từ CURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Lấy dữ liệu từ CURSOR Xử lý dữ liệ đượ lấ từ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Xử lý dữ liệu được lấy từ CURSOR Đóng CURSOR BÀIGIẢNBÀIGIẢN Đóng CURSOR Hủy CURSOR 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)) Hủy CURSOR
  • 21. UU Cấu trúc điều khiển Cấ t ú lặ hil SỞDỮLiỆSỞDỮLiỆUU RR • Cấu trúc lặp while WHILE (bieuthuc logic) BEGIN WHILE (bieuthuc logic) BEGIN NTRỊCƠSNTRỊCƠS CURSORCURSOR //Lenh/Khoi lenh S END //Lenh/khoi lenh sau while //Lenh/Khoi lenh S END //Lenh/khoi lenh sau while HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI • Ví dụ – Viết chương trình tính tổng s= 1+2+ +n NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ – Viết chương trình tính tổng s= 1+2+..+n DECLARE @i,@S INT SELECT @i=1,@s=0 while(@i<=@n) DECLARE @i,@S INT SELECT @i=1,@s=0 while(@i<=@n) BÀIGIẢNBÀIGIẢN while(@i< @n) BEGIN SELECT @s = @s+@i; SELECT @i = @i+1; while(@i< @n) BEGIN SELECT @s = @s+@i; SELECT @i = @i+1; 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)) END PRINT @S END PRINT @S
  • 22. UU Cấu trúc điều khiển Cấ t ú lặ hil SỞDỮLiỆSỞDỮLiỆUU RR • Cấu trúc lặp while s=0s=0 DECLARE @i,@S INT SELECT @i=1,@s=0 i @i @ DECLARE @i,@S INT SELECT @i=1,@s=0 i @i @ NTRỊCƠSNTRỊCƠS CURSORCURSOR ii 11 s 0s 0while(@i<=@n) BEGIN SELECT @s = @s+@i SELECT @i = @i+1 while(@i<=@n) BEGIN SELECT @s = @s+@i SELECT @i = @i+1 HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI ii=1=1END PRINT @S END PRINT @S NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ ii<=n<=n ĐĐ SS ii++++ BÀIGIẢNBÀIGIẢN s=s=s+is+i PRINT SPRINT S ĐĐ 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))2222
  • 23. UU LẤY DỮ LIỆU TỪ CURSOR Lấy và xử lý toàn bộ dữ liệu từ CURSOR SỞDỮLiỆSỞDỮLiỆUU RR • Lấy và xử lý toàn bộ dữ liệu từ CURSOR FETCH NEXT FROM TênCursor Ế Ế NTRỊCƠSNTRỊCƠS CURSORCURSOR INTO @BIẾN1, @BIẾN2,… WHILE @@FETCH_STATUS = 0 HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI BEGIN --XỬ LÝ DỮ LiỆU ĐƯỢC LẤY TỪ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ -- LẤY DỮ LIỆU DÒNG TiẾP THEO CỦA CURSOR FETCH NEXT FROM TênCursor BÀIGIẢNBÀIGIẢN INTO @BIẾN1, @BIẾN2,… END 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 (2323))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 (2323))2323
  • 24. UU LẤY DỮ LIỆU TỪ CURSOR Ví dụ: SỞDỮLiỆSỞDỮLiỆUU RR • Ví dụ: FETCH NEXT FROM curKHOA NTRỊCƠSNTRỊCƠS CURSORCURSOR INTO @MaKhoa, @NamTL WHILE @@FETCH_STATUS = 0 HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI BEGIN --XỬ LÝ DỮ LiỆU ĐƯỢC LẤY TỪ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ PRINT @MaKhoa PRINT @NamTL BÀIGIẢNBÀIGIẢN FETCH NEXT FROM curKHOA INTO @MaKhoa, @NamTL 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))2424 END
  • 25. UU LẤY DỮ LIỆU TỪ CURSORSỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN 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))
  • 26. UU LẤY DỮ LIỆU TỪ CURSORSỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR Xử lý (PRINT) dữ liệu trong curKHOA HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI cu O NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Kết quả lấy và xử lý (PRINT) toàn bộ dữ BÀIGIẢNBÀIGIẢN ( ) ộ liệu trong curKHOA 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))
  • 27. UU QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU RR Khai báo CURSOR ở NTRỊCƠSNTRỊCƠS CURSORCURSOR Mở CURSOR Lấ dữ liệ từ CURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Lấy dữ liệu từ CURSOR Xử lý dữ liệ đượ lấ từ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Xử lý dữ liệu được lấy từ CURSOR Đóng CURSOR BÀIGIẢNBÀIGIẢN Đóng CURSOR Hủy CURSOR 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)) Hủy CURSOR
  • 28. UU ĐÓNG CURSOR Cú há SỞDỮLiỆSỞDỮLiỆUU RR • Cú pháp CLOSE TênCursor NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI • Ví dụ: đóng curKhoa khi không sử dụng nữa hoặc kết thúc NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ ụ g ặ stored procedure CLOSE curKhoa BÀIGIẢNBÀIGIẢN CLOSE curKhoa 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))2828
  • 29. UU ĐÓNG CURSOR SỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Đóng curKHOA sau khi xử lý xong dữ liệu từ CURSOR BÀIGIẢNBÀIGIẢN 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))
  • 30. UU QUY TRÌNH XỬ LÝ CURSORSỞDỮLiỆSỞDỮLiỆUU RR Khai báo CURSOR ở NTRỊCƠSNTRỊCƠS CURSORCURSOR Mở CURSOR Lấ dữ liệ từ CURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Lấy dữ liệu từ CURSOR Xử lý dữ liệ đượ lấ từ CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Xử lý dữ liệu được lấy từ CURSOR Đóng CURSOR BÀIGIẢNBÀIGIẢN Đóng CURSOR Hủy CURSOR 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 (3030))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 (3030)) Hủy CURSOR
  • 31. UU HỦY CURSOR Cú há SỞDỮLiỆSỞDỮLiỆUU RR • Cú pháp DEALLOCATE TênCursor NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI • Ví dụ: hủy curKhoa, thông thường CURSOR sẽ được hủy sau NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ g ợ y lệnh đóng DEALLOCATE curKhoa BÀIGIẢNBÀIGIẢN DEALLOCATE curKhoa 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 (3131))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 (3131))3131
  • 32. UU HỦY CURSOR SỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Hủy curKHOA sau BÀIGIẢNBÀIGIẢN Hủy curKHOA sau khi đã thực hiện lệnh đóng (CLOSE) 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 (3232))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 (3232))
  • 33. UU LẬP TRÌNH VỚI CURSORSỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN ế 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 (3333))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 (3333)) Tham khảo chi tiết: ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/5a3a27aa-03e8-4c98-a27e-809282379b21.htm
  • 34. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH VỚILẬP TRÌNH VỚI CURSORCURSORCURSORCURSOR BÀI TẬPBÀI TẬP
  • 35. UU LẬP TRÌNH VỚI CURSOR CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1] SỞDỮLiỆSỞDỮLiỆUU RR CHO BẢNG ĐIỂM HỌC KỲ CỦA LỚP SP1: [BANGDIEM1] NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT kết quả vào bảng DIEMTB BÀIGIẢNBÀIGIẢN kết quả vào bảng DIEMTB 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 (3535))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 (3535))
  • 36. UU Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT LẬP TRÌNH VỚI CURSORSỞDỮLiỆSỞDỮLiỆUU RR Yêu cầu truy vấn: Tính điểm trung bình của sinh viên và INSERT kết quả vào bảng DIEMTB Bước 1: Khai báo cursor chứa kết quả tính trung bình ể NTRỊCƠSNTRỊCƠS CURSORCURSOR Câu lệnh tính điểm trung bình từ bảng điểm [BANGDIEM1] HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Kết quả tính điểm trung bình từ lệnh BÀIGIẢNBÀIGIẢN trung bình từ lệnh SELECT MASV, HOTEN, AVG(DIEMTHI) AS DTB FROM BANGDIEM1 GROUP BY MASV, HOTEN 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 (3636))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 (3636)) GROUP BY MASV, HOTEN
  • 37. UU LẬP TRÌNH VỚI CURSOR B ớ 2 Kh i bá biế lấ dữ liệ từ kết ả tí h điể t SỞDỮLiỆSỞDỮLiỆUU RR Bước 2: Khai báo biến, lấy dữ liệu từ kết quả tính điểm trung bình INSERT vào table DIEMTB NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Lấy dữ liệu từ CURSOR gán vào á biế NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ các biến BÀIGIẢNBÀIGIẢN INSERT kết quả tính trung bình vào table DIEMTB 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 (3737))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 (3737))
  • 38. UU LẬP TRÌNH VỚI CURSOR Bước 3: Đóng và hủy CURSOR SỞDỮLiỆSỞDỮLiỆUU RR Bước 3: Đóng và hủy CURSOR NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Đóng CURSOR NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN Hủy CURSOR 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 (3838))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 (3838))
  • 39. UU LẬP TRÌNH VỚI CURSOR Thực thi và kiểm tra kết quả SỞDỮLiỆSỞDỮLiỆUU RR Thực thi và kiểm tra kết quả NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI Kết quả trước khi tính điểm trung bình NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Kết quả truy vấn table DIEMTB khi tí h BÀIGIẢNBÀIGIẢN DIEMTB sau khi tính điểm trung bình 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 (3939))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 (3939))
  • 40. UU LẬP TRÌNH VỚI CURSOR CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ SỞDỮLiỆSỞDỮLiỆUU RR CHO LƯỢC ĐỒ CSDL QUẢN LÝ BÓNG ĐÁ NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN Yêu cầu truy vấn: Tính điểm xếp hạng các đội bóng theo vò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 (4040))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 (4040)) 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
  • 41. UU LẬP TRÌNH VỚI CURSOR Table: CAULACBO SỞDỮLiỆSỞDỮLiỆUU RR MACLB TENCLB MASAN MATINH BBD BECAMEX BÌNH DƯƠNG GD BD SDN SHB ĐÀ NẴNG CL DN Table: CAULACBO NTRỊCƠSNTRỊCƠS CURSORCURSOR 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 HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA Ạ Table: TRANDAU NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ 1 2009 1 2/7/2009 BBD SDN GD 3-0 2 2009 1 7/2/2009 KKH GDT NT 1-1 Tính điểm và xếp hạng các BÀIGIẢNBÀIGIẢN MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG Table: BANGXH Tính điểm và xếp hạng các câu lạc bộ ??? 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 (4141))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 (4141))
  • 42. UU LẬP TRÌNH VỚI CURSOR Table: CAULACBO SỞDỮLiỆSỞDỮLiỆUU RR MACLB TENCLB MASAN MATINH BBD BECAMEX BÌNH DƯƠNG GD BD SDN SHB ĐÀ NẴNG CL DN KKH KHATOCO KHÁNH HÒA NT KH Table: CAULACBO NTRỊCƠSNTRỊCƠS CURSORCURSOR 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: TRANDAU HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI 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 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ Table: BANGXH MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG BÀIGIẢNBÀIGIẢN MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG BBD 2009 1 1 1 0 0 3-0 3 1 KKH 2009 1 1 0 1 0 1-1 1 2 GDT 2009 1 1 0 1 0 1-1 1 3 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 (4242))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 (4242)) TPY 2009 1 0 0 0 0 0-0 0 4 SDN 2009 1 1 0 0 1 0-3 0 5
  • 43. UU LẬP TRÌNH VỚI CURSOR Table: TRANDAU SỞDỮLiỆSỞDỮLiỆUU RR Table: TRANDAU 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 NTRỊCƠSNTRỊCƠS CURSORCURSOR Table: BANGXH 2 2009 1 7/2/2009 KKH GDT NT 1-1 3 2009 2 16/2/2009 SDN KKH CL 2-2 4 2009 2 16/2/2009 TPY BBD TH 5-0 HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG BBD 2009 1 1 1 0 0 3-0 3 1 KKH 2009 1 1 0 1 0 1-1 1 2 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ GDT 2009 1 1 0 1 0 1-1 1 3 TPY 2009 1 0 0 0 0 0-0 0 4 SDN 2009 1 1 0 0 1 0-3 0 5 TPY 2009 2 1 1 0 0 5-0 3 1 BBD 2009 2 2 1 0 1 3 5 3 2 BÀIGIẢNBÀIGIẢN BBD 2009 2 2 1 0 1 3-5 3 2 KKH 2009 2 2 0 2 0 3-3 2 3 GDT 2009 2 1 0 1 0 1-1 1 4 SDN 2009 2 2 1 1 0 2-5 1 5 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 (4343))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 (4343))
  • 44. UU LẬP TRÌNH VỚI CURSOR Table: TRANDAU SỞDỮLiỆSỞDỮLiỆUU RR Table: TRANDAU 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 NTRỊCƠSNTRỊCƠS CURSORCURSOR Table: BANGXH 2 2009 1 7/2/2009 KKH GDT NT 1-1 3 2009 2 16/2/2009 SDN KKH CL 2-2 4 2009 2 16/2/2009 TPY BBD TH 5-0 HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG BBD 2009 1 1 1 0 0 3-0 3 1 KKH 2009 1 1 0 1 0 1-1 1 2 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ GDT 2009 1 1 0 1 0 1-1 1 3 TPY 2009 1 0 0 0 0 0-0 0 4 SDN 2009 1 1 0 0 1 0-3 0 5 TPY 2009 2 1 1 0 0 5-0 3 1 BBD 2009 2 2 1 0 1 3 5 3 2 BÀIGIẢNBÀIGIẢN BBD 2009 2 2 1 0 1 3-5 3 2 KKH 2009 2 2 0 2 0 3-3 2 3 GDT 2009 2 1 0 1 0 1-1 1 4 SDN 2009 2 2 1 1 0 2-5 1 5 TÍNH ĐIỂM VÀ XẾP HẠNG NHƯ THẾ NÀ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 (4444))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 (4444)) THẾ NÀO ?
  • 45. UU LẬP TRÌNH VỚI CURSOR MATRAN NAM VONG NGAYTD MACLB1 MACLB2 MASAN KETQUA SỞDỮLiỆSỞDỮLiỆUU RR MATRAN 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 3 2009 2 16/2/2009 SDN KKH CL 2-2 4 2009 2 16/2/2009 TPY BBD TH 5-0 5 2009 3 1/3/2009 TPY GDT TH 0 2 TÍNH ĐIỂM VÀ XẾP HẠNG NHƯ THẾ NÀO ? NTRỊCƠSNTRỊCƠS CURSORCURSOR MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG 5 2009 3 1/3/2009 TPY GDT TH 0-2 6 2009 3 1/3/2009 KKH BBD NT 0-1 8 2009 4 7/3/2009 KKH TPY NT 1-0 9 2009 4 7/3/2009 BBD GDT GD 2-2 THẾ NÀO ? HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI MACLB NAM VONG SOTRAN THANG HOA THUA HIEUSO DIEM HANG BBD 2009 1 1 1 0 0 3-0 3 1 KKH 2009 1 1 0 1 0 1-1 1 2 GDT 2009 1 1 0 1 0 1-1 1 3 TPY 2009 1 0 0 0 0 0-0 0 4 SDN 2009 1 1 0 0 1 0 3 0 5 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ SDN 2009 1 1 0 0 1 0-3 0 5 TPY 2009 2 1 1 0 0 5-0 3 1 BBD 2009 2 2 1 0 1 3-5 3 2 KKH 2009 2 2 0 2 0 3-3 2 3 GDT 2009 2 1 0 1 0 1-1 1 4 SDN 2009 2 2 1 1 0 2-5 1 5 BBD 2009 3 3 2 0 1 4-5 6 1 BÀIGIẢNBÀIGIẢN BBD 2009 3 3 2 0 1 4 5 6 1 GDT 2009 3 2 1 1 0 3-1 4 2 TPY 2009 3 2 1 0 1 5-2 3 3 KKH 2009 3 3 0 2 1 3-4 2 4 SDN 2009 3 2 1 1 0 2-5 1 5 BBD 2009 4 4 2 1 1 6-7 7 1 GDT 2009 4 3 1 2 0 5-1 5 2 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 (4545))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 (4545)) KKH 2009 4 4 1 2 1 4-4 5 3 TPY 2009 4 3 1 0 2 5-3 3 4 SDN 2009 4 2 1 1 0 2-5 1 5
  • 46. UU LẬP TRÌNH VỚI CURSORSỞDỮLiỆSỞDỮLiỆUU RR Bước 1: Tạo 2 View kết quả điểm sân nhà và sân khách của mỗi Câu lạc bộ NTRỊCƠSNTRỊCƠS CURSORCURSOR 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 -> ắ ế th tổ điể hiệ ố tổ ố bà thắ tổ ố bà HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI 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 NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ 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ì ế BÀIGIẢNBÀIGIẢN INSERT/ngược lại thì UPDATE INSERT/UPDATE trực tiếp hoặc thông qua 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 (4646))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 (4646))
  • 47. UUSỞDỮLiỆSỞDỮLiỆUU RR NTRỊCƠSNTRỊCƠS CURSORCURSOR HẦNQuẢNHẦNQuẢN ÌNHVỚIÌNHVỚI NGNGHỌCPHHỌCPH LẬPTRÌLẬPTRÌ BÀIGIẢNBÀIGIẢN 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 (4747))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 (4747))4747 47