C. Mệnh đề CROSS JOIN
4.5.2. CÂU LỆNH TRUY VẤN SELECT VÀ ĐẠI SỐ QUAN HỆ
Câu lệnh truy vấn SELECT có sự tương đương (một cách không
hoàn toàn) với một biểu thức đại số quan hệ:
Mệnh đề INNER JOIN tương ứng với phép kết nối và mệnh đề
CROSS JOIN tương ứng với phép tích Đề Các của đại số quan hệ.
Mệnh đề WHERE tương ứng với phép chọn trong đại số quan hệ
Mệnh đề GROUP BY tương ứng với phép toán gộp nhóm trong đại
số quan hệ
Mệnh đề SELECT tương đương với phép chiếu trong đại số quan
hệ.
Truy vấn dạng:
SELECT A1, A2,..., An FROM (r1 INNER JOIN r2 ON c12) WHERE P tương đương với biểu thức đại số quan hệ:
44
Lưu ý: Cú pháp câu lệnh truy vấn SELECT được xây dựng trên nền tảng mở rộng của đại số quan hệ, do đó có những thành phần của
câu lệnh truy vấn không thể biểu diễn được trong đại số quan hệ.
Mọi biểu thức của đại số quan hệ đều có thể biểu diễn tương đương bằng một câu lệnh truy vấn SELECT.
Tuy nhiên, chỉ những câu lệnh truy vấn SELECT với các thành
phần cơ bản mới biểu diễn được dưới dạng một biểu thức đại số quan hệ.
45
MaHS TenHS DiemThi Lop
HS01 An 3 10A1 HS02 Bình 4 10A1 HS03 Cường 9 10A2 HS04 Dũng 10 10A2 HS05 Lan 9 10A3 HS06 Vân 6 10A3 TenLop PhongHoc GVCN
10A1 P301 Cô Lan
10A2 P302 Thầy Hùng
10A3 P302 Cô Hiền
10A4 P301 Thầy Hùng
������=¿
h
������ =¿
Liệt kê danh sách các học sinh đang học ở phòng P302 có điểm thi trên 8. Thông tin hiển thị bao gồm MaHS, TenHS, Lop, DiemThi:
46
�����,�����,���,�������(�(��������= � ��� )∧(�������>�)(������������⋈�������=��� ))
Liệt kê danh sách các học sinh thuộc lớp 10A3 có điểm thi trên 8.
Thông tin hiển thị bao gồm MaHS, TenHS:
�����,�����(�(���= �� � � )∧(�������>�)(�������))
SELECT MaHS, TenHS FROM HocSinh WHERE Lop = '10A3' AND DiemThi > 8
SELECT MaHS, TenHS, Lop, DiemThi
FROM LopHoc INNER JOIN HocSinh ON TenLop = Lop
47
Liệt kê danh sách các học sinh được chủ nhiệm bởi “Thầy Hùng”.
Thông tin hiển thị bao gồm MaHS, TenHS:
Thống kê số học sinh mỗi lớp. Thông tin hiển thị bao gồm Lớp và
số lượng học sinh:
�����,�����(�����= ��ầ � � �� ù (������������⋈ �������=��� ))
������(∗)(�������)
❑
���
SELECT MaHS, TenHS
FROM LopHoc INNER JOIN HocSinh ON TenLop = Lop
WHERE GVCN = N'Thầy Hùng'
Q & A