0
Tải bản đầy đủ (.doc) (177 trang)

Cỏc biểu thức nối của SQL

Một phần của tài liệu GIAO_TRINH_SQL_SERVER PPTX (Trang 31 -32 )

Chỳng ta cú thể xõy dựng cỏc quan hệ bằng cỏc phộp nối khỏc nhau ỏp dụng trờn hai quan hệ. Cỏc cỏch này gồm tớch, nối tự nhiờn, nối tờta, và nối ngoài. Kết quả cú thể là một truy vấn. Vỡ cỏc biểu thức này tạo ra cỏc quan hệ nờn chỳng cú thể được sử dụng như cỏc truy vấn con trong mệnh đề FROM của một biểu thức select-from-where.

Dạng đơn giản nhất của một biểu thức nối là nối chộo (cross join). Thuật ngữ này đồng nghĩa với tớch Đềcac hoặc tớch. Vớ dụ, nếu chỳng ta muốn cú tớch Đềcac của hai quan hệ NHÂNVIấN và ĐƠNVỊ. Chỳng ta cú thể núi NHÂNVIấN CROSS JOIN ĐƠNVỊ ;

và kết quả sẽ là một quan hệ cú 13 cột, chứa tất cả cỏc thuộc tớnh của NHÂNVIấN và ĐƠNVỊ. Mỗi một cặp gồm một bộ của NHÂNVIấN một bộ của ĐƠNVỊ sẽ là một bộ của quan hệ kết quả.

Cỏc thuộc tớnh trong quan hệ tớch cú thể được gọi là R.A, trong đú R là một trong hai quan hệ nối và A là một trong cỏc thuộc tớnh của nú. Nếu chỉ cú một trong cỏc quan hệ cú thuộc tớnh là A thỡ cú thể bỏ R và dấu chấm đi. Trong hoàn cảnh hiện tại, bởi vỡ quan hệ NHÂNVIấN và quan hệ ĐƠNVỊ cú một thuộc tớnh chung là MósốĐV, nờn ở trong quan hệ tớch cần phải phõn biệt chỳng NHÂNVIấN.MósốĐV và ĐƠNVỊ.MÃsốĐV, cỏc tờn khỏc của cỏc thuộc tớnh trong hai quan hệ là khỏc nhau nờn khụng cần cú tờn quan hệ và dấu chấm ở trước. Tuy nhiờn, phộp toỏn tớch là một phộp toỏn ớt khi được sử dụng. Phộp nối tờta là thuận tiện hơn. Phộp nối này gồm từ khoỏ JOIN được đặt giữa hai tờn quan hệ R và S, sau chỳng là từ khoỏ ON và một điều kiện. í nghĩa của JOIN ...ON ... là phộp tớnh tớch R x S, sau đú là một phộp chọn theo điều kiờn đi sau ON.

Vớ dụ 21: Giả sử chỳng ta muốn nối hai quan hệ NHÂNVIấN và ĐƠNVỊ với điều kiện là cỏc bộ được nối là cỏc bộ tham chiếu đến cựng một mó số đơn vị. Như vậy, cỏc mó số đơn vị từ cả hai quan hệ phải như nhau. Chỳng ta cú thể đũi hỏi truy vấn này là:

Kết quả lại là một quan hệ với 13 cột cựng với cỏc tờn thuộc tớnh như trờn. Tuy nhiờn, bõy giờ một bộ từ NHÂNVIấN và một bộ từ ĐƠNVỊ kết hợp với nhau để tạo thành một bộ kết quả chỉ khi hai bộ cú mó số đơn vị như nhau. Trong kết quả, một cột là thừa bởi vỡ mỗi một bộ của kết quả sẽ cựng giỏ trị trong cả hai thành phần MósốĐV

Nếu chỳng ta lo lắng với sự kiện là phộp nối ở trờn cú một thành phần thừa, chỳng ta cú thể sử dụng biểu thức đầy đủ như là một truy vấn con trong mệnh đề FROM và sử dụng mệnh đề SELECT để loại bỏ cỏc thuộc tớnh khụng mong muốn. Như vậy, chỳng ta cú thể viết:

SELECT <danh sỏch cỏc thuộc tớnh trong hai quan hệ nhưng thuộc tớnh MósốĐV chỉ xuất hiện một lần>

FROM NHÂNVIấN JOIN ĐƠNVỊ ON NHÂNVIấN.MósốĐV = ĐƠNVỊ.MósốĐV;

để nhận được một quan hệ cú 12 cột, đú là cỏc bộ của quan hệ NHÂNVIấN được mở rộng thờm cỏc bộ của ĐƠNVỊ

Một phần của tài liệu GIAO_TRINH_SQL_SERVER PPTX (Trang 31 -32 )

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×