1. Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
TRUY VẤN DỮ LIỆUTRUY VẤN DỮ LIỆU
• Một số toán tử nâng cao
• Phép toán tập hợp trong SQL• Phép toán tập hợp trong SQL
• Truy vấn con (Sub Query)
2. UU
Toán tử BETWEEN
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01 [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
Yêu cầu truy vấn: In bảng điểm môn CSDL của những sinh viên
lớp SP01 có điểm thi từ 7 đến 9
Ngôn ngữ SQL
BÀIGIẢNBÀIGIẢN
TRUTRU
SELECT *
FROM KetQua
Ngôn ngữ SQL
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
FROM KetQua
WHERE [Điểm thi]>=7 AND [Điểm thi]<=9
3. UU
Toán tử BETWEEN
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01 [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
Yêu cầu truy vấn: In bảng điểm môn CSDL của những sinh viên
lớp SP01 có điểm thi từ 7 đến 9
Ngôn ngữ SQL
BÀIGIẢNBÀIGIẢN
TRUTRU
Ngôn ngữ SQL
SELECT *
FROM KetQua
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
FROM KetQua
WHERE [Điểm thi] BETWEEN 7 AND 9
4. UU
Toán tử NOT BETWEEN
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01 [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
Yêu cầu truy vấn: In bảng điểm môn CSDL của những sinh viên
lớp SP01 có điểm thi nhỏ hơn 7 hoặc lớn hơn 9
Ngôn ngữ SQL
BÀIGIẢNBÀIGIẢN
TRUTRU
SELECT *
FROM KetQua
Ngôn ngữ SQL
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
FROM KetQua
WHERE [Điểm thi]<7 OR [Điểm thi]>9
5. UU
Toán tử BETWEEN
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01 [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
Yêu cầu truy vấn: In bảng điểm môn CSDL của những sinh viên
lớp SP01 có điểm thi nhỏ hơn 7 hoặc lớn hơn 9
Ngôn ngữ SQL
BÀIGIẢNBÀIGIẢN
TRUTRU
Ngôn ngữ SQL
SELECT *
FROM KetQua
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
FROM KetQua
WHERE [Điểm thi] NOT BETWEEN 7 AND 9
6. Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
XỬ LÝ CHUỖIXỬ LÝ CHUỖI
- Toán tử so sánh chuỗi - LIKE
- Các hàm liên quan đến kiểu chuỗi – LEFT, MID, LEN,...q , , ,
7. UU
Toán tử LIKE
TOÁN TỬ LIKE – được sử dụng trong phép so sánh chuỗi
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
TOÁN TỬ LIKE – được sử dụng trong phép so sánh chuỗi
_ : đại diện cho 1 ký tự bất kỳ tại vị trí dấu _
% đ i diệ h 1 hó ký t bất kỳ t i ị t í dấ %
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
SELECT MASV, HOTEN
FROM KETQUA
% : đại diện cho 1 nhóm ký tự bất kỳ tại vị trí dấu %
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
FROM KETQUA
WHERE MASV LIKE ‘06_ _ _ _ _’
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
SELECT MASV, HOTEN
FROM KETQUA
5 Ký tự bất kỳ
BÀIGIẢNBÀIGIẢN
TRUTRU
FROM KETQUA
WHERE TENNV LIKE ‘Nguyen Van %’
Chuỗi bất kỳ tối đa 255 ký tự
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
Chuỗi bất kỳ tối đa 255 ký tự
(tại vị trí đó trở đi)
8. UU
Toán tử LIKE
TOÁN TỬ LIKE – được sử dụng trong phép so sánh chuỗi
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
TOÁN TỬ LIKE – được sử dụng trong phép so sánh chuỗi
_ : đại diện cho 1 ký tự bất kỳ tại vị trí dấu _
% đ i diệ h 1 hó ký t bất kỳ t i ị t í dấ %
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
% : đại diện cho 1 nhóm ký tự bất kỳ tại vị trí dấu %
[a] : = a
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
[a-d] := a, b, c hoặc d
[acd] := a, c hoặc d
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
ab[xzy] := abx, aby hoặc abz
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
9. UU
Toán tử LIKE
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0601124 Han Quoc Viet 31/12/1990 Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
0701126 Ly Thanh 123 Truong Dinh 9
0700127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
Yêu cầu truy vấn: In bảng điểm môn CSDL của những sinh viên
lớp SP01 có mã sinh viên có dạng _ _01_ _ _
Ngôn ngữ SQL
BÀIGIẢNBÀIGIẢN
TRUTRU
Ngôn ngữ SQL
SELECT *
FROM KetQua
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
FROM KetQua
WHERE [MASV] LIKE ‘_ _01_ _ _’
10. UU
Toán tử LIKE
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990 Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
Yêu cầu truy vấn: In bảng điểm môn CSDL của những sinh viên
lớp SP01 có họ là NGUYEN
Ngôn ngữ SQL
BÀIGIẢNBÀIGIẢN
TRUTRU
Ngôn ngữ SQL
SELECT *
FROM KetQua
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
FROM KetQua
WHERE [HoTen] LIKE ‘Nguyen%’
11. UU
Toán tử LIKE
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990 Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
0600126 Nguyen Van Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
Yêu cầu truy vấn: In bảng điểm môn CSDL của những sinh viên
lớp SP01 có họ là NGUYEN CONG hoặc NGUYEN DINH
Ngôn ngữ SQL
BÀIGIẢNBÀIGIẢN
TRUTRU
Ngôn ngữ SQL
SELECT *
FROM KetQua
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
FROM KetQua
WHERE [HoTen] LIKE ‘Nguyen [cd]%’
12. UU
Toán tử LIKE và NOT LIKE
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
SELECT MASV HOTEN
TOÁN TỬ LIKE – so sánh chuỗi tương đối
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
SELECT MASV, HOTEN
FROM KETQUA
WHERE HOTEN LIKE ‘Nguyen%’
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
g y
NOT LIKE
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
SELECT MASV, HOTEN
FROM KETQUA
BÀIGIẢNBÀIGIẢN
TRUTRU
WHERE HOTEN NOT LIKE ‘Nguyen%’
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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
CÁC HÀM XỬ LÝ CHUỖI
Hàm LEN(s)
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Hàm LEN(s)
– Ý nghĩa: lấy chiều dài của chuỗi s
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
– Ví dụ: LEN(‘Bao’) = 3
• Hàm LEFT(s, n)
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
– Ý nghĩa: lấy n ký tự tính từ bên trái chuỗi s
– Ví dụ: LEFT(‘Tran Ngoc Bao’,4) = ‘Tran’
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
• Hàm RIGHT(s, n)
– Ý nghĩa: lấy n ký tự tính từ bên phải chuỗi s
BÀIGIẢNBÀIGIẢN
TRUTRU
Ý nghĩa: lấy n ký tự tính từ bên phải chuỗi s
– Ví dụ: RIGHT(‘Tran Ngoc Bao’,3) = ‘Bao’
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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
CÁC HÀM XỬ LÝ CHUỖI
Hàm SUBSTRING(s k n)
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Hàm SUBSTRING(s,k,n)
– Ý nghĩa: lấy n ký tự trong chuỗi s tính từ vị trí k
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
– Ví dụ: SUBSTRING(‘Tran Ngoc Bao’,1,4) = ‘Tran’
• Hàm LTRIM(s)
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
– Ý nghĩa: bỏ các ký tự trống (space) bên trái chuỗi s
– Ví dụ: LTRIM(‘ Bao’) = ‘Bao’
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
• Hàm RTRIM(s)
– Ý nghĩa: bỏ các ký tự trống (space) bên phải chuỗi s
BÀIGIẢNBÀIGIẢN
TRUTRU
Ý nghĩa: bỏ các ký tự trống (space) bên phải chuỗi s
– Ví dụ: RTRIM(‘Bao ’) = ‘Bao’
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
15. UU
CÁC HÀM XỬ LÝ CHUỖI
Một số hàm xử lý chuỗi khác
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Một số hàm xử lý chuỗi khác
– LOWER
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
– UPPER
– CHAR
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
– ASCII
– ….
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
Tham khảo chi tiết String Function trong SQL Server Book Online
16. Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
XỬ LÝ NGÀY GIỜXỬ LÝ NGÀY GIỜ
- Thể hiện ngày giờ trong phép chọn
- Các hàm liên quan đến kiểu ngày giờ – DAY, MONTH,q g y g , ,
YEAR, DATEDIFF,…
17. UU
Thể hiện ngày, giờ trong phép chọn
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
THỂ HIỆN NGÀY GIỜ
SELECT MASV HOTEN NGAYSINH
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
SELECT MASV, HOTEN,NGAYSINH
FROM KETQUA
WHERE NGAYSINH BETWEEN '1990-12-01' AND '1991-12-01'
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
YYYY MM DD‘1955-12-08’ HH:MI:SS’17:30:00’
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
YYYY-MM-DD
MM/DD/YYYY
1955 12 08
’12/08/1955’
‘Dec 8, 1955’
HH:MI:SS17:30:00
’05:30PM’ HH:MIPM (OR AM)
BÀIGIẢNBÀIGIẢN
TRUTRU
‘1955-12-08 17:30:00’
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))1717
18. UU
CÁC HÀM XỬ LÝ NGÀY GIỜ
• Hàm GETDATE()
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Hàm GETDATE()
– Ý nghĩa: lấy ngày hiện hành của hệ thống
Hà DAY(d)
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
• Hàm DAY(d)
– Ý nghĩa: lấy thông tin ngày trong d
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
– Ví dụ: DAY(’11/20/2008’) = 20
• Hàm MONTH(d)
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
– Ý nghĩa: lấy thông tin tháng trong d
– Ví dụ: MONTH(’11/20/2008’) = 11
BÀIGIẢNBÀIGIẢN
TRUTRU
• Hàm YEAR(d)
– Ý nghĩa: lấy thông tin năm trong d
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
Ý nghĩa: lấy thông tin năm trong d
– Ví dụ: YEAR(’11/20/2008’) = 2008
19. UU
CÁC HÀM XỬ LÝ NGÀY GIỜ
• Hàm DATEPART(p d)
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Hàm DATEPART(p,d)
– Ý nghĩa: lấy thông tin ngày, tháng, năm, giờ, phút,
hoặc giây trong d, với p thuộc bảng sau:
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
hoặc giây trong d, với p thuộc bảng sau:
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
– Ví dụ: DATEPART(“dd”,’11/20/2008 11:30:20’) = 20
20. UU
CÁC HÀM XỬ LÝ NGÀY GIỜ
• Hàm DATEADD(p n d)
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Hàm DATEADD(p,n,d)
– Ý nghĩa: tìm ngày cách d một khoảng n ngày, tháng,
năm, giờ, phút, hoặc giây,…(phụ thuộc vào p ∈ Z)
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
năm, giờ, phút, hoặc giây,…(phụ thuộc vào p ∈ Z)
– Ví dụ:
M ố á đị h à 30/4/2008 60 à là
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
Muốn xác định sau ngày 30/4/2008, 60 ngày là
ngày nào ?
DATEADD(“dd” 60 ’04/30/2008’) = 29/06/2008
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
DATEADD( dd ,60, 04/30/2008 ) = 29/06/2008
Muốn xác định sau ngày 30/4/2008, 15 tuần là
ngày nào ?
BÀIGIẢNBÀIGIẢN
TRUTRU
ngày nào ?
DATEADD(“ww”,15, ’04/30/2008’) = 13/08/2008
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
21. UU
CÁC HÀM XỬ LÝ NGÀY GIỜ
• Hàm DATEDIFF(p d d )
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Hàm DATEDIFF(p,d1, d2)
– Ý nghĩa: tính khoảng cách giữa hai ngày d1 và d2
(khoảng ngày, tháng, năm, giờ, phút, hoặc giây,…phụ
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
(khoảng ngày, tháng, năm, giờ, phút, hoặc giây,…phụ
thuộc vào p)
– Ví dụ:
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
Giả sử ngày hiện hành là ngày 30/04/2008, muốn xác
định còn bao nhiêu ngày nữa đến ngày 02/09/2008?
DATEDIFF(“dd” ’04/30/2008’ ’09/02/2008’) 125
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
DATEDIFF(“dd”, ’04/30/2008’, ’09/02/2008’) = 125
Giả sử ngày hiện hành là ngày 30/04/2008, muốn xác
ầ ế
BÀIGIẢNBÀIGIẢN
TRUTRU
định còn bao nhiêu tuần nữa đến ngày 02/09/2008?
DATEADD(“ww”, ’04/30/2008’, ’09/02/2008’) = 18
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
22. UU
CÁC HÀM XỬ LÝ NGÀY GIỜ
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
Muốn biết giờ hiện
hành tại London sử
dụng hàm nào? Xác
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
dụng hàm nào? Xác
định ?
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
• Các hàm xử lý chuỗi khác
BÀIGIẢNBÀIGIẢN
TRUTRU
– GETUTCDATE()
– ….
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
Tham khảo chi tiết DateTime Function trong SQL Server Book Online
23. Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
TOÁN TỬ KHÁCTOÁN TỬ KHÁC
- TOÁN TỬ NULL
- TOÁN TỬ IN, ANY, SOME, EXISTS,.., , , ,
24. UU
Toán tử NULL
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
– Sử dụng trong trường hợp
• Không biết giá trị (value unknown)
• Giá trị không thể áp dụng (value inapplicable)
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
Giá trị không thể áp dụng (value inapplicable)
• Không tồn tại giá trị (value withheld)
– Những biểu thức tính toán có liên quan đến giá
trị NULL sẽ cho ra kết quả là NULL
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
trị NULL sẽ cho ra kết quả là NULL
• x có giá trị là NULL
• x + 3 cho ra kết quả là NULL
+ 3 là một biể thức không hợp lệ t ong SQL
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
• x + 3 là một biểu thức không hợp lệ trong SQL
– Những biểu thức so sánh có liên quan đến giá
trị NULL sẽ cho ra kết quả là UNKNOWN
BÀIGIẢNBÀIGIẢN
TRUTRU
• x = 3 cho ra kết quả là UNKNOWN
• x = 3 là một so sánh không hợp lệ trong SQL
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
25. UU
Toán tử NULL (tt)
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990 Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong NULL 4
0600126 Nguyen Van Thanh 123 Truong Dinh NULL 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu NULL 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
SELECT *
Yêu cầu: Liệt kê danh sách sinh viên chưa có địa chỉ email
SELECT *
BÀIGIẢNBÀIGIẢN
TRUTRU
FROM KetQua
WHERE Email = NULL
FROM KetQua
WHERE Email IS NULL
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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
Toán tử NULL (tt)
Yêu cầu: Liệt kê danh sách sinh viên chưa có địa chỉ email
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Yêu cầu: Liệt kê danh sách sinh viên chưa có địa chỉ email
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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
Toán tử NULL (tt)
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
123 Nguyen Thi Minh
BẢNG ĐIỂM MÔN CƠ SỞ DỮ LIỆU LỚP SP01: [KETQUA]
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600124 Han Quoc Viet 31/12/1990 Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong NULL 4
0600126 Nguyen Van Thanh 123 Truong Dinh NULL 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu NULL 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
SELECT *
Yêu cầu: Liệt kê danh sách sinh viên có địa chỉ email
SELECT *
BÀIGIẢNBÀIGIẢN
TRUTRU
FROM KetQua
WHERE Email <> NULL
FROM KetQua
WHERE Email IS NOT NULL
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
28. UU
Toán tử NULL (tt)
Yêu cầu: Liệt kê danh sách sinh viên có địa chỉ email
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Yêu cầu: Liệt kê danh sách sinh viên có địa chỉ email
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
29. PHÉP KẾT – JOIN
INNER JOIN
Cú pháp
TableA INNER JOIN TableB ON JoinCondition
Ý nghĩa : Thực hiện phép kết giữa 2 TableA và TableA kết quả của phépÝ nghĩa : Thực hiện phép kết giữa 2 TableA và TableA, kết quả của phép
kết là những dòng trong thỏa mãn điều kiện kết JoinCondition
Ví dụ: Cho quan hệ
HocSinh(MaHS TenHS NgaySinh DiaChi)
HocSinh DiemThi
HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
DiemThi(MaHS,HocKy,NH,Diem)
MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem
01 Viet 10/10/1978 123 01 01 2001 10
02 Phu 11/10/1079 124 03 01 2002 8
SELECT TenHS, Diem, HocKy,NH
FROM H Si h INNER JOIN Di Thi ON
Kết quả
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 (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))
FROM HocSinh INNER JOIN DiemThi ON
HocSinh.MaHS=DiemThi.MaHS
TenHS Diem HocKy NH
Viet 10 01 2001
30. PHÉP KẾT – LEFT JOIN
LEFT JOIN
Cú pháp
T bl A LEFT JOIN T bl B ON J i C ditiTableA LEFT JOIN TableB ON JoinCondition
Ý nghĩa : Thực hiện phép kết giữa 2 TableA và
TableB kết quả của phép kết là những dòng thỏaTableB, kết quả của phép kết là những dòng thỏa
mãn điều kiện kết, cộng với những dòng tồn tại
trong TableA “không kết” được với TableB, giá trị tạig g g
các Field được chọn từ TableB trong mệnh đề
SELECT sẽ là NULL.
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 (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))
31. PHÉP KẾT – LEFT JOIN
Ví dụ: Cho quan hệ
HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
DiemThi(MaHS,HocKy,NH,Diem)
HocSinh DiemThi
MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem
01 Viet 10/10/1978 123 01 01 2001 10
02 Phu 11/10/1079 124 03 01 2002 8
SELECT TenHS, Diem, HocKy,NH
FROM HocSinh LEFTJOIN DiemThi ON
Kết quả
T HS Di H K NHFROM HocSinh LEFTJOIN DiemThi ON
HocSinh.MaHS=DiemThi.MaHS
TenHS Diem HocKy NH
Viet 10 01 2001
Phu NULL NULL NULL
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 (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))
32. PHÉP KẾT – RIGHT JOIN
RIGHT JOIN
Cú pháp
T bl A RIGHT JOIN T bl B ON J i C ditiTableA RIGHT JOIN TableB ON JoinCondition
Ý nghĩa : Thực hiện phép kết giữa 2 TableA và
TableB kết quả của phép kết là những dòng thỏaTableB, kết quả của phép kết là những dòng thỏa
mãn điều kiện kết, cộng với những dòng tồn tại
trong TableB “không kết” được với TableA, giá trị tạig g g
các Field được chọn từ TableA trong mệnh đề
SELECT sẽ là NULL.
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 (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. PHÉP KẾT – RIGHT JOIN
Ví dụ: Cho quan hệ
HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
DiemThi(MaHS,HocKy,NH,Diem)
HocSinh DiemThi
MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem
01 Viet 10/10/1978 123 01 01 2001 10
02 Phu 11/10/1079 124 03 01 2002 8
SELECT TenHS, Diem, HocKy,NH
FROM HocSinh RIGHTJOIN DiemThi ON
Kết quả
T HS Di H K NHFROM HocSinh RIGHTJOIN DiemThi ON
HocSinh.MaHS=DiemThi.MaHS
TenHS Diem HocKy NH
Viet 10 01 2001
NULL 8 01 2002
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 (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))
34. PHÉP KẾT – FULL JOIN
FULL JOIN
Cú pháp
T bl A FULL JOIN T bl B ON J i C ditiTableA FULL JOIN TableB ON JoinCondition
Ý nghĩa : Thực hiện phép kết giữa 2 TableA và
TableB kết quả là phép Hội (Union) giữa phép kếtTableB, kết quả là phép Hội (Union) giữa phép kết
LEFT JOIN và phép RIGHT JOIN
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 (3434))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3434))
35. PHÉP KẾT – FULL JOIN
Ví dụ: Cho quan hệ
HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
DiemThi(MaHS,HocKy,NH,Diem)
HocSinh DiemThi
MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem
01 Viet 10/10/1978 123 01 01 2001 10
02 Phu 11/10/1079 124 03 01 2002 8
SELECT TenHS, Diem, HocKy,NH
FROM HocSinh FULLJOIN DiemThi ON
Kết quả
T HS Di H K NHFROM HocSinh FULLJOIN DiemThi ON
HocSinh.MaHS=DiemThi.MaHS
TenHS Diem HocKy NH
Viet 10 01 2001
NULL 8 01 2002
Phu NULL NULL NULL
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 (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. PHÉP KẾT – CROSS JOIN
CROSS JOIN
Cú pháp
T bl A CROSS JOIN T bl BTableA CROSS JOIN TableB
Ý nghĩa : Kết quả tương đương thực hiện phép tích
giữa TableA và TableBgiữa TableA và TableB
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 (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))
37. PHÉP KẾT – CROSS JOIN
Ví dụ: Cho quan hệ
HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
DiemThi(MaHS,HocKy,NH,Diem)
HocSinh DiemThi
MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem
01 Viet 10/10/1978 123 01 01 2001 10
02 Phu 11/10/1079 124 03 01 2002 8
SELECT TenHS, Diem, HocKy,NH
FROM HocSinh CROSS JOIN DiemThi
Kết quả
FROM HocSinh CROSS JOIN DiemThi
q
MaHS MaHS TenHS Diem HocKy NH
01 01 Bao 10 01 2001
02 01 Phu 10 01 2001
01 03 B 8 01 2002
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 (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))
01 03 Bao 8 01 2002
02 03 Phu 8 01 2002
38. UU
Toán tử IN, ANY, EXISTS,…
IN
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• IN
– <tên cột> IN <tập giá trị> hoặc <truy vấn con>
• EXISTS
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
• EXISTS
– Không cần có thuộc tính, hằng số hay biểu thức
nào khác đứng trước
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
g
– Không nhất thiết liệt kê tên thuộc tính ở mệnh
đề SELECT của truy vấn con
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
– Những câu truy vấn có = ANY hay IN đều có
thể chuyển thành câu truy vấn có EXISTS
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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. Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
TRUY VẤN DỮ LIỆUTRUY VẤN DỮ LIỆU
• Một số toán tử nâng cao
• Phép toán tập hợp trong SQL• Phép toán tập hợp trong SQL
• Truy vấn con (Sub Query)
40. UU
Phép hội
Ch 2 hệ R à S khả h
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Cho 2 quan hệ R và S khả hợp
• Phép hội của R và S
ý ệ
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
– Ký hiệu R ∪ S
– Là một quan hệ gồm các bộ thuộc R hoặc thuộc
S hoặc cả hai (các bộ trùng lắp sẽ bị bỏ)
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
S, hoặc cả hai (các bộ trùng lắp sẽ bị bỏ)
• Ví dụ
R ∪ S = { t / t∈R ∨ t∈S }
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
• Ví dụ
A B
α
R
1
A BS
2
Q = R ∪ S
A BQ
1
BÀIGIẢNBÀIGIẢN
TRUTRU
α
α
β
1
2
1
α
β
2
3
α
α
β
1
2
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 (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))
β 3
41. Ví d
Phép hội
Xét hai quan hệ của hai lược đồ quan hệ NV1 (Q1) và NV2 (Q2) như sau :
Ví dụ
Q1 MA_NV TEN_NV MA_PHG
001 A 1
002 B 1
Q2 MA_NV TEN_NV MA_PHG
004 C 1
001 A 1
Kết quả nhận được khi (Q1 ∪ Q2): Q = Q1 ∪ Q2
002 B 1
003 C 2
001 A 1
Kết quả nhận được khi (Q1 ∪ Q2): Q Q1 ∪ Q2
Q MA_NV TEN_NV MA_PHG
001 A 1001 A 1
002 B 1
003 C 2
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 (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))
004 C 1
42. UU
Phép giao
Ch 2 hệ R à S khả h
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Cho 2 quan hệ R và S khả hợp
• Phép giao của R và S
ý ệ
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
– Ký hiệu R ∩ S
– Là một quan hệ gồm các bộ thuộc R đồng thời
thuộc S
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
thuộc S
• Ví dụ
R ∩ S = { t / t∈R ∧ t∈S }
Q R S
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
• Ví dụ
A B
α
R
1
A B
α
Q
2
A B
α
S
2
Q = R ∩ S
BÀIGIẢNBÀIGIẢN
TRUTRU
α
β
2
1
α 2
β 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))
43. Phép giao
Xét hai quan hệ của hai lược đồ quan hệ NV1 (Q1) và NV2 (Q2) như sau :
Ví dụ
Q1 MA_NV TEN_NV MA_PHG
001 A 1
002 B 1
Q2 MA_NV TEN_NV MA_PHG
004 C 1
002 B 1
003 C 2
001 A 1
Kết quả nhận được khi (Q1 ∩ Q2): Q = Q1 ∩ Q2
Q MA_NV TEN_NV MA_PHG
001 A 1
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 (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))4343
44. UU
Phép trừSỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Cho 2 quan hệ R và S khả hợp
• Phép trừ của R và S
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
p
– Ký hiệu R − S
– Là một quan hệ gồm các bộ thuộc R và không
h ộ S
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
thuộc S
• Ví dụ R − S = { t / t∈R ∧ t∉S }
Q S
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
A B
α
R
1
2
A B
α
S
2
3
Q = R - S
A B
α
Q
1
BÀIGIẢNBÀIGIẢN
TRUTRU
α
β
2
1
β 3
α 1
β 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 (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))
45. Phép trừ
Xét hai quan hệ của hai lược đồ quan hệ NV1 (Q1) và NV2 (Q2) như sau :
Ví dụ
Q1 MA_NV TEN_NV MA_PHG
001 A 1
002 B 1
Q2 MA_NV TEN_NV MA_PHG
004 C 1
002 B 1
003 C 2
001 A 1
Kết quả nhận được khi (Q1 - Q2): Q = Q1 - Q2
Q MA_NV TEN_NV MA_PHG
002 B 1
003 C 2
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 (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))4545
46. UU
Các tính chất
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Giao hoán
R ∪ S = S ∪ R
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
R ∪ S = S ∪ R
R ∩ S = S ∩ R
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
• Kết hợp
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
ợp
R ∪ (S ∪ T) = (R ∪ S) ∪ T
BÀIGIẢNBÀIGIẢN
TRUTRU
R ∩ (S ∩ T) = (R ∩ S) ∩ T
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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. UU
Phép toán tập hợp trong SQLSỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• SQL có cài đặt các phép toán
– Hội (UNION)
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
– Giao (INTERSECT)
– Trừ (EXCEPT)
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
• Kết quả trả về là tập hợp
L i bỏ á bộ t ù h
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
– Loại bỏ các bộ trùng nhau
– Để giữ lại các bộ trùng nhau
• UNION ALL
BÀIGIẢNBÀIGIẢN
TRUTRU
UNION ALL
• INTERSECT ALL
• EXCEPT ALL
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁ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))
48. UU
Phép toán tập hợp trong SQL (tt)
ú á
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Cú pháp
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>
UNION [ALL]
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>
INTERSECT [ALL]
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>
BÀIGIẢNBÀIGIẢN
TRUTRU
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện>
EXCEPT [ALL]
SELECT <ds cột> FROM <ds bảng> WHERE <điều kiệ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 (4848))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4848))4848
49. Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
TRUY VẤN DỮ LIỆUTRUY VẤN DỮ LIỆU
• Một số toán tử nâng cao
• Phép toán tập hợp trong SQL• Phép toán tập hợp trong SQL
• Truy vấn con (Sub Query)
50. UU
Ví dụ - Truy vấn con
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
bảng KETQUA ???
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
bảng KETQUA ???
B1: ThựcB1: Thực hiệnhiện tìmtìm MAXMAX của cáccủa các dòngdòng trên cộttrên cột ĐIỂM THIĐIỂM THI
trong bảng trên, gọi là DMaxtrong bảng trên, gọi là DMax
B2 Tì i h iê ó điể thi bằ D t bả t êB2 Tì i h iê ó điể thi bằ D t bả t ê
BÀIGIẢNBÀIGIẢN
TRUTRU
DMax MAX(πĐiểm thi (KETQUA))
B2: Tìm sinh viên có điểm thi bằng Dmax trong bảng trênB2: Tìm sinh viên có điểm thi bằng Dmax trong bảng trê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 (5050))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5050))
σĐiểm thi=DMax (KETQUA))
51. UU
Ví dụ - Truy vấn con
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
bảng KETQUA ???
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
bảng KETQUA ???
SELECT *
BÀIGIẢNBÀIGIẢN
TRUTRU
FROM KETQUA
WHERE DIEMTHI =
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5151))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5151))
(SELECT MAX(DIEMTHI) FROM KETQUA)
52. UU
Truy vấn con (truy vấn lồng)
Các câu lệnh SELECT có thể lồng nhau ở nhiều mức
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Các câu lệnh SELECT có thể lồng nhau ở nhiều mức
• Câu truy vấn con thường xuất hiện trong mệnh đề WHERE
hoặc FROM
• Câu truy vấn con thường trả về một tập các giá trị (WHERE)
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
• Câu truy vấn con thường trả về một tập các giá trị (WHERE)
hoặc một quan hệ (FROM)
• Các câu truy vấn con trong cùng một mệnh đề WHERE được
kết hợp bằng phép nối logic
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
ết ợp bằ g p ép ố og c
• Mệnh đề WHERE của câu truy vấn cha
– <biểu thức> <so sánh tập hợp> <truy vấn con>
– So sánh tập hợp thường đi cùng với một số toán tử
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
So sánh tập hợp thường đi cùng với một số toán tử
• IN, NOT IN
• ALL
• ANY hoặc SOME
BÀIGIẢNBÀIGIẢN
TRUTRU
• ANY hoặc SOME
– Kiểm tra sự tồn tại
• EXISTS
• NOT EXISTS
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5252))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5252))
• NOT EXISTS
53. UU
Truy vấn lồng (tt)
• Có 2 loại truy vấn lồng
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• Có 2 loại truy vấn lồng
– Lồng phân cấp
• Mệnh đề WHERE của truy vấn con không tham chiếu
ế ộ í ủ á ệ ệ ề
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
đến thuộc tính của các quan hệ trong mệnh đề FROM
ở truy vấn cha
• Khi thực hiện, câu truy vấn con sẽ được thực hiện trước
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
– Lồng tương quan
• Mệnh đề WHERE của truy vấn con tham chiếu ít nhất
một thuộc tính của các quan hệ trong mệnh đề FROM
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
ệ g ệ
ở truy vấn cha
• Khi thực hiện, câu truy vấn con sẽ được thực hiện nhiều
lần, mỗi lần tương ứng với một bộ của truy vấn cha
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5353))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5353))
54. UU
Ví dụ - Truy vấn lồng phân cấp
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
bảng KETQUA ???
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
bảng KETQUA ???
SELECT *
BÀIGIẢNBÀIGIẢN
TRUTRU
FROM KETQUA
WHERE DIEMTHI =
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5454))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5454))
(SELECT MAX(DIEMTHI) FROM KETQUA)
55. UU
Ví dụ - Truy vấn lồng phân cấp
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
bảng KETQUA ???
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5555))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5555))
56. UU
Ví dụ - Truy vấn lồng phân cấp
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
bảng KETQUA ???
Sinh viên có điểm lớn hơn hoặc
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
Sinh viên có điểm lớn hơn hoặc
bằng tất cả điểm thi của sinh
viên khác
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5656))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5656))
57. UU
Ví dụ - Truy vấn lồng phân cấp
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn hơn điểm
trung bình của các sinh viên trong bảng KETQUA ???
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
trung bình của các sinh viên trong bảng KETQUA ???
SELECT *
BÀIGIẢNBÀIGIẢN
TRUTRU
FROM KETQUA
WHERE DIEMTHI >
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5757))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5757))
(SELECT AVG(DIEMTHI) FROM KETQUA)
58. UU
Ví dụ - Truy vấn lồng phân cấp
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn hơn điểm
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
êu cầu t uy ấ c o b ết S có đ ể ớ ơ đ ể
trung bình của các sinh viên trong bảng KETQUA ???
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5858))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5858))
59. UU
Ví dụ - Truy vấn lồng TƯƠNG QUAN
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Mã sinh viên Họ tên Ngày sinh Địa chỉ Email Điểm thi
0600123 Nguyen Cong Phu 11/02/1990 280 An Duong Vuong phunc@hcmup.edu.vn 7
0600124 Han Quoc Viet 31/12/1990
123 Nguyen Thi Minh
Khai viethq@hcmup.edu.vn 8
0600125 Phan Anh Khanh 110 Tran Binh Trong 4
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
0600126 Ly Thanh 123 Truong Dinh 9
0600127 Nguyen Dinh Khiem 153 Hoang Van Thu 4
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
bảng KETQUA ???
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
bảng KETQUA ???
SELECT *
FROM KETQUA KQ1
BÀIGIẢNBÀIGIẢN
TRUTRU
Q Q
WHERE NOT EXISTS
(SELECT MASV FROM KETQUA KQ2
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5959))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5959))
WHERE KQ2.DIEMTHI > KQ1.DIEMTHI)
60. UU
Ví dụ - Truy vấn lồng TƯƠNG QUAN
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
Yêu cầu truy vấn: cho biết SINH VIÊN có điểm lớn nhất trong
bảng KETQUA ???
Với mỗi sinh viên được xét (kq), Không
tồn tại sinh viên (kq1) có điểm thi lớn
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
tồn tại sinh viên (kq1) có điểm thi lớn
hơn điểm thi của sinh viên này (kq)
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
BÀIGIẢNBÀIGIẢN
TRUTRU
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6060))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6060))
61. UU
Tìm hiểu toán tử IN và EXISTS
IN
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
• IN
– <tên cột> IN <câu truy vấn con>
– Thuộc tính ở mệnh đề SELECT của truy vấn con
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
– Thuộc tính ở mệnh đề SELECT của truy vấn con
phải có cùng kiểu dữ liệu với thuộc tính ở mệnh
đề WHERE của truy vấn cha
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
• EXISTS
– Không cần có thuộc tính, hằng số hay biểu thức
à khá đứ t ướ
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
nào khác đứng trước
– Không nhất thiết liệt kê tên thuộc tính ở mệnh
đề SELECT của truy vấn con
BÀIGIẢNBÀIGIẢN
TRUTRU
đề SELECT của truy vấn con
– Những câu truy vấn có = ANY hay IN đều có
thể chuyển thành câu truy vấn có EXISTS
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6161))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6161))
62. UU
Phép chia trong SQL
SỞDỮLiỆSỞDỮLiỆUU
CAOCAO
A B
α a
α a
C D
α a
γ a
E
1
1
R D E
a
S
b
1
1
A B C
α a γ
γ a γ
R÷S
aibi
NTRỊCƠSNTRỊCƠS
UNÂNGUNÂNG
β a
α a
β a
γ b
γ b
γ a
3
1
1
1
HẦNQuẢNHẦNQuẢN
DỮLiỆUDỮLiỆU
γ a
γ a
γ a
γ a
γ b
β b
1
1
1
NGNGHỌCPHHỌCPH
UYVẤNUYVẤN
• R÷S là tập các giá trị ai trong R sao cho
không có giá trị bi nào trong S làm cho bộ
BÀIGIẢNBÀIGIẢN
TRUTRU
(ai, bi) không tồn tại trong R
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6262))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6262))
63. Phép chia trong SQL (tt)
ễ• Sử dụng NOT EXISTS để biểu diễn
A B C D ER D ES
SELECT R1.A, R1.B, R1.C
FROM R R1
WHERE NOT EXISTS (
α a
α a
α a
β
α a
γ a
γ b
1
1
1
1
a
b
1
1
WHERE NOT EXISTS (
SELECT *
FROM S
β a
γ a
β a
γ a
γ b
γ a
γ a
γ b
3
1
1
1
WHERE NOT EXISTS (
SELECT *
FROM R R2
A B CR÷S
γ a
γ a
γ b
β b
1
1
FROM R R2
WHERE R2.D=S.D AND R2.E=S.E
AND R1.A=R2.A AND R1.B=R2.B AND
α a γ
γ a γ
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 (6363))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6363))
AND R1.A R2.A AND R1.B R2.B AND
R1.C=R2.C ))
64. Phép chia trong SQL (tt)
MAMH TENMH SOTC
CSDL Cơ sở dữ liệu 4
MASV MAMH HOCKY DIEM
0600123 CSDL 1 7
MONHOCKETQUA
CNPM Công nghệ phần mềm 5
CTDL Cấu trúc dữ liệu 3
0600124 CSDL 1 8
0600125 CSDL 1 9
0600123 CNPM 2 8
0600126 CNPM 2 90600126 CNPM 2 9
0600123 CTDL 3 8
0600127 CTDL 3 7 Yêu cầu truy vấn: Cho biết
sinh viên đã học (hoàn
ấ ảthành) tất cả các môn học.
KẾT QUẢ TRUY VẤN
MASV MAMH DIEM
0600123 CSDL 7
0600123 CNPM 8
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 (6464))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6464))
0600123 CNPM 8
0600123 CTDL 8
65. Phép chia trong SQL (tt)
MAMH TENMH SOTC
CSDL Cơ sở dữ liệu 4
MASV MAMH HOCKY DIEM
0600123 CSDL 1 7
MONHOCKETQUA
CNPM Công nghệ phần mềm 5
CTDL Cấu trúc dữ liệu 3
0600124 CSDL 1 8
0600125 CSDL 1 9
0600123 CNPM 2 8
0600126 CNPM 2 90600126 CNPM 2 9
0600123 CTDL 3 8
0600127 CTDL 3 7
Yêu cầu truy vấn: Cho biết
sinh viên đã học (hoàn
thành) tất cả các môn học.
Không cóKhông có (không tồn tại)(không tồn tại)Không cóKhông có (không tồn tại)(không tồn tại)
môn học nào (MONHOC) màmôn học nào (MONHOC) mà
sinh viên này không cósinh viên này không có
(không tồn tại)(không tồn tại) kết quảkết quả
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 (6565))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6565))
( g ạ )( g ạ ) qq
(KETQUA)(KETQUA)
66. Phép chia trong SQL (tt)
MASV MAMH DIEM
0600123 CSDL 7
Yêu cầu truy vấn: Cho biết sinh viên đã học (hoàn thành) tất cả các
môn học.
0600123 CNPM 8
0600123 CTDL 8
Ngôn ngữ SQL
SELECT KQ1.MASV, KQ1.MAMH, DIEM
FROM KETQUA KQ1
WHERE NOT EXISTS
(SELECT *
FROM MONHOC
WHERE NOT EXISTS
(SELECT *(SELECT
FROM KETQUA KQ2
WHERE KQ1.MASV = KQ2.MASV AND
MONHOC.MAMH = KQ2.MAMH)
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 (6666))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6666))
)
67. Phép chia trong SQL (tt)
Yêu cầu truy vấn: Cho biết sinh viên đã học (hoàn thành) tất cả các
môn học.
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 (6767))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6767))
68. Phép chia trong SQL (tt)
MASV HOTEN NGAYSINH EMAIL
0600123 Nguyen Cong Phu 11/02/1990 phunc@hcmup.edu.vn
MAMH TENMH SOTC
CSDL Cơ sở dữ liệu 4
SINHVIEN MONHOC
0600124 Han Quoc Viet 31/12/1990 viethq@hcmup.edu.vn
0600125 Phan Anh Khanh
0600126 Ly Thanh
0600127 Nguyen Dinh Khiem
CNPM Công nghệ phần mềm 5
CTDL Cấu trúc dữ liệu 3
KETQUA
Yêu cầu truy vấn: Cho biết
sinh viên đã học (hoàn
ấ ảMASV MAMH HOCKY DIEM
0600123 CSDL 1 7
0600124 CSDL 1 8
0600125 CSDL 1 9
thành) tất cả các môn học.
KẾT QUẢ TRUY VẤN
0600123 CNPM 2 8
0600126 CNPM 2 9
0600123 CTDL 3 8
0600127 CTDL 3 7
MASV HOTEN NGAYSINH
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 (6868))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6868))
0600127 CTDL 3 7
0600123 Nguyen Cong Phu 11/02/1990
69. Phép chia trong SQL (tt)
MASV HOTEN NGAYSINH EMAIL
0600123 Nguyen Cong Phu 11/02/1990 phunc@hcmup.edu.vn
MAMH TENMH SOTC
CSDL Cơ sở dữ liệu 4
SINHVIEN MONHOC
0600124 Han Quoc Viet 31/12/1990 viethq@hcmup.edu.vn
0600125 Phan Anh Khanh
0600126 Ly Thanh
0600127 Nguyen Dinh Khiem
CNPM Công nghệ phần mềm 5
CTDL Cấu trúc dữ liệu 3
KETQUA
Yêu cầu truy vấn: Cho biết
sinh viên đã học (hoàn
thành) tất cả các môn học.
MASV MAMH HOCKY DIEM
0600123 CSDL 1 7
0600124 CSDL 1 8
0600125 CSDL 1 9 Không cóKhông có (không tồn tại)(không tồn tại)
0600123 CNPM 2 8
0600126 CNPM 2 9
0600123 CTDL 3 8
0600127 CTDL 3 7
Không cóKhông có (không tồn tại)(không tồn tại)
môn học nào (MONHOC) màmôn học nào (MONHOC) mà
sinh viên này không cósinh viên này không có
(không tồn tại)(không tồn tại) kết quảkết quả
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 (6969))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (6969))
0600127 CTDL 3 7
( g ạ )( g ạ ) qq
(KETQUA)(KETQUA)
70. Phép chia trong SQL (tt)
MASV HOTEN NGAYSINH
0600123 Nguyen Cong Phu 11/02/1990
Yêu cầu truy vấn: Cho biết sinh viên đã học (hoàn thành) tất cả các
môn học.
0600123 Nguyen Cong Phu 11/02/1990
Ngôn ngữ SQL
SELECT SINHVIEN.MASV, HOTEN,DIACHI
FROM SINHVIEN
WHERE NOT EXISTS
(SELECT *
FROM MONHOC
WHERE NOT EXISTS
(SELECT *(SELECT
FROM KETQUA
WHERE SINHVIEN.MASV = KETQUA.MASV AND
MONHOC.MAMH = KETQUA.MAMH)
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 (7070))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (7070))
)
71. Phép chia trong SQL (tt)
Yêu cầu truy vấn: Cho biết sinh viên đã học (hoàn thành) tất cả các
môn học.
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 (7171))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (7171))
72. Phép chia trong SQL (tt)
Yêu cầu truy vấn: Cho biết kết quả thi của những sinh viên đã học
(hoàn thành) tất cả các môn học.
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 (7272))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (7272))