Tải bản đầy đủ (.pdf) (5 trang)

Data Integrity and Advanced Query Technique- P5 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.05 MB, 5 trang )

thể select data từ nhiều table dựa trên mối quan hệ
logic giữa các table (logical relationships). Có thể
tóm tắt các loại Join thông dụng bằng các hình sau:

Thứ tự từ trái sang phải: Inner Join, Left Outer Join,
Right Outer Join, Full Outer Join
Inner Joins
Dùng Inner Join để select data từ 2 hay nhiều tables
trong đó giá trị của các cột được join phải xuất hiện
ở cả 2 tables tức là phần gạch chéo trên hình. Ví dụ:
SELECT t.Title, p.Pub_name
FROM Publishers AS p INNER JOIN Titles
AS t
ON p.Pub_id = t.Pub_id
ORDER BY Title ASC
Left Outer Joins
Dùng Left Outer Join để select data từ 2 hay nhiều
tables trong đó tất cả cột bên table thứ nhất và
không tồn tại bên table thứ hai sẽ được select cộng
với các giá trị của các cột được inner join. Số cột
select được sẽ bằng với số cột của table thứ nhất.
Tức là phần tô màu đỏ trên hình. Ví dụ:
USE Pubs
SELECT a.Au_fname, a.Au_lname,
p.Pub_name
FROM Authors a LEFT OUTER JOIN
Publishers p
ON a.City = p.City
ORDER BY p.Pub_name ASC, a.Au_lname
ASC, a.Au_fname ASC
Right Outer Joins


Dùng Right Outer Join để select data từ 2 hay nhiều
tables trong đó tất cả cột bên table thứ hai và không
tồn tại bên table thứ nhất sẽ được select cộng với
các giá trị của các cột được inner join. Số cột select
được sẽ bằng với số cột của table thứ hai. Tức là
phần tô màu đỏ trên hình. Ví dụ:
USE Pubs
SELECT a.Au_fname, a.Au_lname,
p.Pub_name
FROM Authors a RIGHT OUTER JOIN
Publishers p
ON a.City = p.City
ORDER BY p.Pub_name ASC, a.Au_lname
ASC, a.Au_fname ASC
Full Outer Joins
Dùng Full Outer Join để select data từ 2 hay nhiều
tables trong đó tất cả cột bên table thứ nhất và thứ
hai đều được chọn các giá trị bên hai table bằng
nhau thì chỉ lấy một lần. Tức là phần tô màu đỏ trên
hình. Ví dụ:
USE Pubs
SELECT a.Au_fname, a.Au_lname,
p.Pub_name
FROM Authors a FULL OUTER JOIN
Publishers p
ON a.City = p.City
ORDER BY p.Pub_name ASC, a.Au_lname
ASC, a.Au_fname ASC
Cross Joins
Dùng Cross Join ghép data từ hai table trong đó số

hàng thu được bằng với số hàng của table thứ nhất
nhân với số hàng của table thứ hai. Ví dụ:
USE pubs
SELECT au_fname, au_lname, pub_name
FROM authors CROSS JOIN publishers
WHERE authors.city = publishers.city
ORDER BY au_lname DESC
Ðể ý là trong câu lệnh này không có keyword "On".
Muốn hiểu rõ hơn về các loại join bạn cho chạy thử
trên SQL Server và làm phần bài tập số 1.
Tóm lại trong bài này chúng ta đã tìm hiểu data
integrity trong SQL Server bằng cách dùng các loại
Constraint. Ngoài ra Chúng ta cũng biết qua về một
số kỹ thuật query nâng cao. Sau bài học này các bạn
cần làm bài tập số 1 để hệ thống hóa lại kiến thức đã
học từ bài 1 đến bài 5 trước khi bạn học tiếp bài số
6. Khi làm bài tập nhớ phải làm theo thứ tự và tuân
thủ theo các yêu cầu của bài tập đặt ra. Không nên
bỏ qua bước nào.

×