Sức mạnh của đại số quan hệ là khả năng tổ hợp hai hoặc nhiều quan hệ thông qua các phép nối, tích, hợp, giao và trừ. Trong SQL có tất cả các phép toán đó.
Tích và nối trong SQL
SQL có một cách đơn giản để ghép cặp các quan hệ vào một truy vấn: liệt kê từng quan hệ trong mệnh đề FROM. Sau đó, các mệnh đề SELECT và WHERE có thể tham chiếu đến các thuộc tính của bất kỳ quan hệ nào bên trong mệnh đề FROM.
Ví dụ 11: Giả sử chúng ta muốn biết tên của nhân viên và tên đơn vị của người đó. Để
trả lời cho câu hỏi này, chúng ta cần hai quan hệ
NHÂNVIÊN và ĐƠNVỊ.
Ta có truy vấn sau:
SELECT Tên, TênĐV
FROM NHÂNVIÊN, ĐƠNVỊ
WHERE NHÂNVIÊN.MãsốĐV = ĐƠNVỊ.MãsốĐV ;
Truy vấn này đòi hỏi chúng ta xem xét tất cả các cặp bộ giá trị, một từ ĐƠNVỊ và bộ kia từ NHÂNVIÊN. Điều kiện trên các cặp này được nói rõ trong mệnh đề WHERE: Thành phần MãsốĐV trong các bộ này phải có giá trị như nhau. Khi nào chúng ta tìm thấy một cặp bộ thoả mãn điều kiện, chúng ta đưa ra các thuộc tính Tên của bộ từ quan hệ NHÂNVIÊN và thuộc tính TênĐV của bộ từ quan hệ ĐƠNVỊ như một phần của câu trả lời.
Làm rõ nghĩa các thuộc tính
Đôi khi chúng ta đòi hỏi một truy vấn bao gồm nhiều quan hệ và trong những quan hệ này có hai hoặc nhiều thuộc tính có cùng tên. Nếu như vậy, chúng ta cần có cách để chỉ rõ thuộc tính nào trong số các thuộc tính đó là được sử dụng. SQL giải quyết vấn đề này bằng cách cho phép ta đặt tên quan hệ và một dấu chấm ở đằng trước thuộc tính. Như vậy, R.A tham chiếu đến thuộc tính A của quan hệ R.
Trong ví dụ 11, hai quan hệ NHÂNVIÊN và ĐƠNVỊ có các thuộc tính MãsốĐV trùng tên. Để phân biệt, trong mệnh đề WHERE ta viết
NHÂNVIÊN.MãsốĐV = ĐƠNVỊ.MãsốĐV
Một quan hệ, theo sau là một dấu chấm được cho phép ngay cả
Trong trường hợp khi không có sự không rõ nghĩa. Ví dụ, chúng ta hoàn toàn thoải mái khi viết truy vấn có dạng như sau:
SELECT NHÂNVIÊN.Tên, ĐƠNVỊ.TênĐV
FROM NHÂNVIÊN, ĐƠNVỊ
WHERE NHÂNVIÊN.MãsốĐV = ĐƠNVỊ.MãsốĐV ;
Kết quả của truy vấn 11 là:
Tên
|
TênĐV
|
Vân
|
Nghiêncứu
|
Nam
|
Nghiêncứu
|
Thanh
|
Hànhchính
|
Bằng
|
Hànhchính
|
Sơn
|
Nghiêncứu
|
Giang
|
Nghiêncứu
|
Hoa
|
Hànhchính
|
Giáp
|
Lãnhđạo
|