Phương Nam Co LTD
Cung cấp chất hoạt động bề mặt, dầu bôi trơn Korea
© 28/3/2024 - Vietnam12h.com Application
Các truy vấn bao gồm nhiều hơn một quan hệ

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