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
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
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
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))