Nối ngoài

Một phần của tài liệu Giao_trinh_SQL_server pptx (Trang 33 - 34)

Nối ngoài là một cỏch để làm tăng kết quả của một phộp nối bằng cỏc bộ treo, độn thờm vào cỏc giỏ trị null. Trong SQL, chỳng ta cú thể chỉ rừ một nối ngoài; NULL được sử dụng như là giỏ trị null.

Vớ dụ 23: Giả sử chỳng ta đưa ra Họđệm và Tờn của cỏc nhõn viờn cũng như Họđệm và Tờn của những người giỏm sỏt họ. Trờn thực tế, khụng phải nhõn viờn nào cũng cú người giỏm sỏt trực tiếp, vỡ vậy đối với những người khụng cú người giỏm sỏt trực tiếp hoặc thụng tin về người giỏm sỏt của họ là khụng xỏc định (null). Nếu muốn hiển thị cả những bộ như vậy, ta sử dụng nối ngoài

SQL xem nối ngoài chuẩn độn thờm vào cỏc bộ treo từ hai phớa của cỏc đối số của chỳng là nối ngoài đầy đủ (full outerjoin). Cỳ phỏp như sau:

NHÂNVIấN FULL OUTER JOIN NHÂNVIấN ON MósốNV = MósốNGS;

Kết quả của phộp toỏn này là một quan hệ, trong đú cú những bộ được độn vào cỏc giỏ trị NULL do khụng cú giỏ trị nối tương ứng. (Chỳ ý, trong phộp nối bỡnh thường khụng cú những bộ như vậy). Tất cả cỏc loại nối ngoài được núi đến trong cỏc phộp toỏn đại số quan hệ đều cú sẵn trong SQL. Nếu chỳng ta muốn một left- hoặc right-outerjoin, ta thờm vào từ LEFT hoặc RIGHT thớch hợp vào vị trớ của từ FULL. Vớ dụ:

NHÂNVIấN LEFT OUTER JOIN NHÂNVIấN ON MósốNV = MósốNGS;

NHÂNVIấN RIGHT OUTER JOIN NHÂNVIấN ON MósốNV = MósốNGS;

Tiếp theo, giả sử ta muốn một nối ngoài tự nhiờn thay vỡ một nối ngoài tờta. Khi đú chỳng ta sẽ sử dụng từ khúa NATURAL đặt vào trược từ JOIN và bỏ ON đi.

Vớ dụ 24: Chỳng ta hóy xem lại vớ dụ 22, ở đú chỳng ta muốn nối hai quan hệ NHÂNVIấN và ĐƠNVỊ với điều kiện là cỏc thuộc tớnh MósốĐV của hai quan hệ là bằng nhau. Nếu chỳng ta sửa đổi vớ dụ này như sau

NHÂNVIấN NATURAL FULL OUTER JOIN ĐƠNVỊ

thỡ chỳng ta sẽ nhận được khụng chỉ là cỏc bộ được tạo nờn từ cỏc bộ tham gia nối mà cũn cú thờm cỏc bộ được độn vào cỏc giỏ trị NULL

Từ khoỏ FULL cú thể được thay thế bằng LEFT hoặc RIGHT trong phộp nối ngoài ở trờn.

Một phần của tài liệu Giao_trinh_SQL_server pptx (Trang 33 - 34)