SlideShare a Scribd company logo
1 of 73
Download to read offline
Đạ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)
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
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
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
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
Đạ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 , , ,
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)
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))
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_ _ _’
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%’
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]%’
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
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))
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))
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
Đạ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,…
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
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
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
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))
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))
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
Đạ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,.., , , ,
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))
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))
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))
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))
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))
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
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))
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))
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))
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))
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))
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))
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))
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
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))
Đạ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)
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
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
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))
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
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))
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
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))
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))
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
Đạ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)
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))
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)
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
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))
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)
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))
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))
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)
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))
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)
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))
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))
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))
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 ))
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
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)
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))
)
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))
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
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)
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))
)
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))
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))
UUSỞDỮLiỆSỞDỮLiỆUU
CAOCAO
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 (7373))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (7373)) 73

More Related Content

Similar to Db 06

dh, cd ha noi
 dh, cd  ha noi dh, cd  ha noi
dh, cd ha noi
hoanhai
 
1. thong tin ts dh, cd thanh pho ha noi
1. thong tin ts dh, cd thanh pho ha noi1. thong tin ts dh, cd thanh pho ha noi
1. thong tin ts dh, cd thanh pho ha noi
Linh Nguyễn
 
4. thong tin ts dh, cd vung db song hong
4. thong tin ts dh, cd vung db song hong4. thong tin ts dh, cd vung db song hong
4. thong tin ts dh, cd vung db song hong
Linh Nguyễn
 
phuong an tuyen sinh dh, cd vung db song hong
phuong an tuyen sinh dh, cd vung db song hongphuong an tuyen sinh dh, cd vung db song hong
phuong an tuyen sinh dh, cd vung db song hong
hoanhai
 

Similar to Db 06 (14)

Bài 4.1 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL serverBài 4.1 - SQL (STRUCTURED QUERY  LANGUAGE) - SQL server
Bài 4.1 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
 
Db 07
Db 07Db 07
Db 07
 
Danh sách các trường ĐH, CĐ tại Hà Nội
Danh sách các trường ĐH, CĐ tại Hà NộiDanh sách các trường ĐH, CĐ tại Hà Nội
Danh sách các trường ĐH, CĐ tại Hà Nội
 
dh, cd ha noi
 dh, cd  ha noi dh, cd  ha noi
dh, cd ha noi
 
1. thong tin ts dh, cd thanh pho ha noi
1. thong tin ts dh, cd thanh pho ha noi1. thong tin ts dh, cd thanh pho ha noi
1. thong tin ts dh, cd thanh pho ha noi
 
Thông tin tuyển sinh các trường Đại Học - Cao đẳng tại Hà Nội năm 2015
Thông tin tuyển sinh các trường Đại Học - Cao đẳng tại Hà Nội năm 2015Thông tin tuyển sinh các trường Đại Học - Cao đẳng tại Hà Nội năm 2015
Thông tin tuyển sinh các trường Đại Học - Cao đẳng tại Hà Nội năm 2015
 
Thông tin tuyển sinh khu vực Hà Nội
Thông tin tuyển sinh khu vực Hà NộiThông tin tuyển sinh khu vực Hà Nội
Thông tin tuyển sinh khu vực Hà Nội
 
Thông tin tuyển ĐH- CĐ khu vực Hà Nội
Thông tin tuyển ĐH- CĐ khu vực Hà NộiThông tin tuyển ĐH- CĐ khu vực Hà Nội
Thông tin tuyển ĐH- CĐ khu vực Hà Nội
 
Thong tin tuyển sinh đại học cao đẳng khu vực Hà Nội
Thong tin tuyển sinh đại học cao đẳng khu vực Hà NộiThong tin tuyển sinh đại học cao đẳng khu vực Hà Nội
Thong tin tuyển sinh đại học cao đẳng khu vực Hà Nội
 
4 Thông tin tuyển sinh Đại học - Cao Đẳng vùng đồng bằng Sông Hồng
4 Thông tin tuyển sinh Đại học - Cao Đẳng vùng đồng bằng Sông Hồng4 Thông tin tuyển sinh Đại học - Cao Đẳng vùng đồng bằng Sông Hồng
4 Thông tin tuyển sinh Đại học - Cao Đẳng vùng đồng bằng Sông Hồng
 
Thông tin tuyển sinh khu vực TP HCM
Thông tin tuyển sinh khu vực TP HCMThông tin tuyển sinh khu vực TP HCM
Thông tin tuyển sinh khu vực TP HCM
 
Thông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí Minh
Thông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí MinhThông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí Minh
Thông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí Minh
 
4. thong tin ts dh, cd vung db song hong
4. thong tin ts dh, cd vung db song hong4. thong tin ts dh, cd vung db song hong
4. thong tin ts dh, cd vung db song hong
 
phuong an tuyen sinh dh, cd vung db song hong
phuong an tuyen sinh dh, cd vung db song hongphuong an tuyen sinh dh, cd vung db song hong
phuong an tuyen sinh dh, cd vung db song hong
 

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

Db 11
Db 11Db 11
Db 11
 
Db 10
Db 10Db 10
Db 10
 
Db 08
Db 08Db 08
Db 08
 
Db 03
Db 03Db 03
Db 03
 
Db 02
Db 02Db 02
Db 02
 
Db 00
Db 00Db 00
Db 00
 
Db 01
Db 01Db 01
Db 01
 
Convert psd to html5
Convert psd to html5Convert psd to html5
Convert psd to html5
 

Db 06

  • 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))
  • 73. UUSỞDỮLiỆSỞDỮLiỆUU CAOCAO 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 (7373))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (7373)) 73