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:
Giá:
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:
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:
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:
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:
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:
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:
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
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễn.
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
Nó sẽ trả về kết quả sau:
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)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễn.
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.
Nó sẽ trả về kết quả sau:
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)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễ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.
Nó sẽ trả về kết quả sau:
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)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễ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.
Nó sẽ trả về kết quả sau:
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)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễ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 LEFT JOIN Price ON Book.id = Price.id;
Bước 4) Nhấp vào nút Thực hiện.
Nó sẽ trả về kết quả sau:
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)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễ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 RIGHT JOIN Price ON Book.id = Price.id;
Bước 4) Nhấp vào nút Thực hiện.
Nó sẽ trả về kết quả sau:
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)
- Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
- Nhấp vào Bản trình diễ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 FULL OUTER JOIN Price ON Book.id = Price.id;
Bước 4) Nhấp vào nút Thực hiện.
Nó sẽ trả về kết quả sau:
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