PostgreSQL Tham gia các loại với các ví dụ: Bên trong, bên ngoài, bên trái, bên phải

Tham gia là gì PostgreSQL?

PostgreSQL Tham gia được sử dụng để lấy dữ liệu từ nhiều bảng. Với Joins, chúng ta có thể kết hợp các câu lệnh SELECT và JOIN thành một câu lệnh duy nhất. Một điều kiện THAM GIA được thêm vào câu lệnh và tất cả các hàng đáp ứng các điều kiện sẽ được trả về. Các giá trị từ các bảng khác nhau được kết hợp dựa trên các cột chung. Cột chung chủ yếu là khóa chính trong bảng đầu tiên và khóa ngoại của bảng thứ hai.

PostgreSQL Tham gia các loại

Có hai loại Tham gia trong PostgreSQL:

  • Tham gia bên trong
  • Tham gia bên ngoài

PostgreSQL Tham gia bên trong

Có 3 loại Inner Joins trong PostgreSQL:

  • Theta tham gia
  • Tham gia tự nhiên
  • THIẾT BỊ tham gia

Theta Tham gia

Phép nối theta cho phép một người nối hai bảng dựa trên điều kiện được biểu thị bởi theta. Phép nối Theta có thể hoạt động với tất cả các toán tử so sánh. Trong hầu hết các trường hợp, phép nối theta được gọi là phép nối bên trong.

Tham gia theta là loại THAM GIA cơ bản nhất. Nó sẽ trả về tất cả các hàng từ các bảng có điều kiện THAM GIA được thỏa mãn.

Cú pháp:

SELECT columns
FROM table-1 
INNER JOIN table-2
ON table-1.column = table-2.column;

Hãy xem xét các bảng sau của cơ sở dữ liệu Demo:

Sách:

PostgreSQL Theta Tham gia

Giá:

PostgreSQL Theta Tham gia

Chúng tôi muốn xem tên của từng cuốn sách và Giá tương ứng. Chúng tôi có thể chạy lệnh sau:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Kết quả trả về sẽ như sau:

PostgreSQL Theta Tham gia

Chỉ có 3 hàng thỏa mãn điều kiện nối.

THIẾT BỊ Tham gia

Phép nối EQUI cung cấp cho chúng ta cách nối hai bảng dựa trên mối quan hệ khóa chính/khóa ngoại. Ví dụ:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Kết quả trả về sẽ như sau:

PostgreSQL THIẾT BỊ Tham gia

Các bản ghi đã được trả về từ cả hai bảng dựa trên các cột chung, tức là cột id.

Tham gia tự nhiên

Kiểu nối này cung cấp cho chúng ta một cách khác để viết một nối EQUI. Chúng ta có thể cải thiện ví dụ trước bằng cách thêm từ khóa NATURAL như dưới đây:

SELECT *
FROM Book
NATURAL JOIN Price;

Kết quả trả về sẽ như sau:

PostgreSQL Tham gia tự nhiên

Chỉ có một cột id được trả về. THAM GIA TỰ NHIÊN có thể lưu ý rằng cột id là cột phổ biến trong hai bảng. Chỉ có một được trả lại.

Postgres Tham gia bên ngoài

Có 3 loại Outer Joins trong PostgreSQL:

  • Tham gia bên ngoài bên trái
  • Tham gia bên ngoài bên phải
  • Tham gia đầy đủ bên ngoài

Postgres Left Outer Tham gia

LEFT OUTER JOIN sẽ trả về tất cả các hàng trong bảng ở phía bên trái và chỉ các hàng trong bảng bên phải nơi điều kiện nối đã được thỏa mãn.

Cú pháp:

SELECT columns
FROM table-1
LEFT OUTER JOIN table-2
ON table-1.column = table-2.column;

Chúng ta cần xem tên của từng cuốn sách và Giá tương ứng. Chúng ta có thể chạy lệnh sau:

SELECT Book.name, Price.price 
FROM Book   
LEFT JOIN Price 
ON Book.id = Price.id;   

Điều này trả về như sau:

Postgres Left Outer Tham gia

Tất cả 4 hàng trong bảng Sách đã được trả về. Chỉ có 3 hàng trong bảng Giá đáp ứng điều kiện nối. Do đó họ đã được trả lại. Cuốn sách cuối cùng không có giá trị tương ứng.

Postgres Right Outer Tham gia

RIGHT OUTER JOIN trả về tất cả các hàng trong bảng ở phía bên phải và các hàng trong bảng ở phía bên trái nơi điều kiện nối đã được thỏa mãn.

Cú pháp:

SELECT columns
FROM table-1
RIGHT OUTER JOIN table-2
ON table-1.column = table-2.column;

Ví dụ:

SELECT Book.name, Price.price 
FROM Book
RIGHT JOIN Price 
ON Book.id = Price.id;

Điều này trả về như sau:

Postgres Right Outer Tham gia

Tất cả các hàng trong bảng Giá đã được trả về. Chỉ những hàng trong bảng Sách đáp ứng điều kiện nối mới được trả về. 3rd hàng không có giá trị cho tên vì không tìm thấy kết quả trùng khớp.

Toàn bộ bên ngoài Tham gia vào PostgreSQL

Kiểu THAM GIA này sẽ trả về tất cả các hàng trong bảng ở phía bên trái và tất cả các hàng trong bảng ở phía bên phải có giá trị rỗng khi điều kiện nối không được thỏa mãn.

Cú pháp:

SELECT columns
FROM table-1
FULL OUTER JOIN table-2
ON table-1.column = table-2.column;

Ví dụ:

SELECT Book.name, Price.price 
FROM Book
FULL OUTER JOIN Price 
ON Book.id = Price.id;

Điều này trả về như sau:

Postgres Tham gia toàn bộ bên ngoài

Tất cả các hàng từ tất cả các bảng đã được trả về, với các giá trị rỗng không tìm thấy kết quả khớp.

Sử dụng pgAdmin

Các tác vụ trên có thể được thực hiện trong pgAdmin như sau:

pgAdmin Nội bộ Tham gia

Cách sử dụng Theta Tham gia PostgreSQL sử dụng pgAdmin

Dưới đây là các bước để sử dụng Theta Join trong Postgres bằng pgAdmin:

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn

Mở pgAdmin và Đăng nhập bằng thông tin đăng nhập của bạn

Bước 2) Tạo cơ sở dữ liệu Demo

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

pgAdmin Nội bộ Tham gia

Bước 3) Nhập truy vấn

Nhập truy vấn bên dưới vào trình chỉnh sửa truy vấn:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Bước 4) Thực hiện truy vấn

Bấm vào nút Thực hiện

pgAdmin Nội bộ Tham gia

Nó sẽ trả về kết quả sau:

pgAdmin Nội bộ Tham gia

THIẾT BỊ Tham gia

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

pgAdmin THIẾT BỊ Tham gia

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Bước 4) Nhấp vào nút Thực hiện.

pgAdmin THIẾT BỊ Tham gia

Nó sẽ trả về kết quả sau:

pgAdmin THIẾT BỊ Tham gia

Tham gia tự nhiên

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

pgAdmin Tham gia tự nhiên

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT *
FROM Book 
NATURAL JOIN Price;

Bước 4) Nhấp vào nút Thực hiện.

pgAdmin Tham gia tự nhiên

Nó sẽ trả về kết quả sau:

pgAdmin Tham gia tự nhiên

pgAdmin Tham gia nội bộ đơn giản

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

pgAdmin Tham gia nội bộ đơn giản

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Bước 4) Nhấp vào nút Thực hiện.

pgAdmin Tham gia nội bộ đơn giản

Nó sẽ trả về kết quả sau:

pgAdmin Tham gia nội bộ đơn giản

pgAdmin Tham gia bên ngoài

Tham gia bên ngoài bên trái

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

pgAdmin Bên trái Tham gia bên ngoài

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT Book.name, Price.price 
FROM Book   
LEFT JOIN Price 
ON Book.id = Price.id;   

Bước 4) Nhấp vào nút Thực hiện.

pgAdmin Bên trái Tham gia bên ngoài

Nó sẽ trả về kết quả sau:

pgAdmin Bên trái Tham gia bên ngoài

Tham gia bên ngoài bên phải

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

pgAdmin Tham gia bên ngoài bên phải

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT Book.name, Price.price 
FROM Book
RIGHT JOIN Price 
ON Book.id = Price.id;

Bước 4) Nhấp vào nút Thực hiện.

pgAdmin Tham gia bên ngoài bên phải

Nó sẽ trả về kết quả sau:

pgAdmin Tham gia bên ngoài bên phải

Tham gia đầy đủ bên ngoài

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

pgAdmin Toàn bộ bên ngoài Tham gia

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT Book.name, Price.price 
FROM Book
FULL OUTER JOIN Price 
ON Book.id = Price.id;

Bước 4) Nhấp vào nút Thực hiện.

pgAdmin Toàn bộ bên ngoài Tham gia

Nó sẽ trả về kết quả sau:

pgAdmin Toàn bộ bên ngoài Tham gia

Tổng kết

  • In PostgreSQL, chúng ta sử dụng JOIN khi cần truy xuất các giá trị từ nhiều bảng.
  • INNER JOIN là loại JOIN cơ bản nhất. Nó trả về tất cả các bản ghi mà điều kiện THAM GIA đã chỉ định được thỏa mãn.
  • LEFT OUTER JOIN trả về tất cả các hàng trong bảng bên trái và chỉ các hàng trong bảng khác nơi điều kiện nối đã được thỏa mãn.
  • RIGHT OUTER JOIN trả về tất cả các hàng trong bảng bên phải và chỉ các hàng trong bảng khác nơi điều kiện nối đã được thỏa mãn.
  • Kiểu THAM GIA này trả về tất cả các hàng trong bảng bên trái và tất cả các hàng trong bảng bên phải có giá trị rỗng khi điều kiện nối không được thỏa mãn.

Tải xuống Cơ sở dữ liệu được sử dụng trong Hướng dẫn này