Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Toán tử tập hợp Oracle

Sử dụng các toán tử tập hợp Oracle (Liên minh, Liên hợp Tất cả, Giao nhau và Trừ / Ngoại trừ)

Các toán tử Oracle Set có thể được sử dụng để chọn dữ liệu từ nhiều bảng. Chúng kết hợp các kết quả của hai hoặc nhiều truy vấn. Khi sử dụng toán tử Đặt

a) Mỗi ​​mệnh đề SELECT phải có cùng số cột

b) Cột phải có cùng kiểu dữ liệu

c) Cột phải được chỉ định theo cùng một thứ tự trong tất cả các mệnh đề đã chọn.

Có 4 toán tử Set:

UNION Nó trả về tất cả các hàng duy nhất được trả về từ cả hai truy vấn
ĐOÀN KẾT TẤT CẢ Nó trả về tất cả các hàng kể cả các hàng trùng lặp
INTERSECT Nó chỉ trả về các hàng được trả về từ cả hai truy vấn
TRỪ Nó trả về các hàng duy nhất được chọn bởi truy vấn đầu tiên nhưng không trả về các hàng được chọn từ truy vấn thứ hai

Nhà điều hành Oracle Union:

Toán tử Oracle Union được sử dụng để kết hợp các tập kết quả của hai hoặc nhiều câu lệnh SELECT. Nó kết hợp cả tập kết quả câu lệnh SELECT và loại bỏ các hàng trùng lặp giữa chúng. Vì vậy, về cơ bản nó trả về các hàng riêng biệt

CHỌN city_name TỪ CUST_DATA
UNION
CHỌN tên_thành phố TỪ SUPP_DATA;

Truy vấn này sẽ trả về các hàng thành phố riêng biệt từ “Cust_data” và “Supp_data”

Oracle Union All

Toán tử Oracle Union All được sử dụng để kết hợp các tập kết quả của hai hoặc nhiều câu lệnh SELECT. Nó kết hợp cả hai tập kết quả câu lệnh SELECT và trả về như nó vốn có. Vì vậy, nó cũng có thể chứa trùng lặp tùy thuộc vào tập dữ liệu

SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;

Truy vấn này sẽ trả về tất cả các hàng (Cũng có các hàng trùng lặp) của các thành phố từ “Cust_data” và “Supp_data”

Sự khác biệt giữa Union và Union All trong Oracle

Union trả về các hàng riêng biệt trong khi Union trả về tất cả các hàng. Vì vậy, chúng tôi phải rất cẩn thận khi chọn các toán tử tập hợp này

Giao lộ Oracle

Toán tử Oracle Intersect được sử dụng để kết hợp các tập kết quả của hai hoặc nhiều câu lệnh SELECT. Nó kết hợp cả hai tập dữ liệu câu lệnh SELECT và trả về các hàng chung khác nhau giữa các câu lệnh. Vì vậy, Nếu một bản ghi tồn tại trong một truy vấn và không tồn tại trong một truy vấn khác, nó sẽ bị bỏ qua khỏi kết quả INTERSECT.

Kết quả được hiển thị bằng phần tô bóng trong hình trên

SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;

Truy vấn này sẽ trả về tên thành phố phổ biến từ “Cust_data” và “Supp_data”

Sự khác biệt giữa Intersect Vs Join

1) Toán tử INTERSECT được sử dụng để truy xuất các bản ghi chung từ cả hai mệnh đề lựa chọn của Toán tử Intersect Trong khi Tham gia được sử dụng để lấy lại dữ liệu từ hai bảng dựa trên điều kiện cụ thể
2) INTERSECT thực hiện so sánh cho tất cả các cột trong khi INNER JOIN chỉ các cột được chỉ định.
3) Toán tử INTERSECT trả về kết quả gần giống như mệnh đề INNER JOIN nhiều lần.

Dấu trừ Oracle

Toán tử trừ Sql được sử dụng để kết hợp các tập kết quả của hai hoặc nhiều câu lệnh SELECT. Nó kết hợp cả câu lệnh SELECT và trả về các hàng được chọn từ câu lệnh chọn đầu tiên và sau đó xóa khỏi tập dữ liệu tất cả các hàng được truy xuất từ ​​câu lệnh chọn thứ hai

Kết quả được hiển thị bằng phần tô bóng trong hình trên

SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;

Truy vấn này sẽ trả về tên thành phố từ “Cust_data” trừ tên thành phố “Supp_data”

Ở đây vì tất cả dữ liệu trả về từ câu lệnh select đều giống nhau nên nó không tạo ra bất kỳ hàng nào.

Cho phép chèn một hàng khác trong cust_data và xem kết quả

Bây giờ, hãy xem chúng ta có trừ cust_data khỏi supp_data không

SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

Chúng tôi không trừ toán tử trong Nhiều RDBMS như máy chủ sql, mysql. Ở đó chúng tôi sử dụng ngoại trừ thay cho dấu trừ và nó có chức năng tương tự như dấu trừ

Tất cả các toán tử bộ sql này đều hợp lệ cho RDBMS được sử dụng trong Market như Oracle, mysql, sql server, Postgres, Teradata

Các bài viết có liên quan
xóa các bản ghi trùng lặp trong oracle:Mẹo và cách về Cách xóa các hàng trùng lặp khỏi bảng oracle. Các tùy chọn khác nhau được đưa ra để xóa các hàng trùng lặp mà không gặp bất kỳ sự cố nào
Hướng dẫn Oracle Sql:Chứa danh sách tất cả các bài viết Oracle sql hữu ích. Khám phá chúng để tìm hiểu về Oracle Sql ngay cả khi bạn biết Oracle Sql
Các câu hỏi phỏng vấn của Oracle:Hãy xem trang này để biết Top 49 câu hỏi và câu trả lời Phỏng vấn Oracle:Khái niệm cơ bản, Oracle SQL để giúp bạn trong các cuộc phỏng vấn. Tài liệu bổ sung cũng được cung cấp
mệnh đề where trong oracle:Hạn chế tập dữ liệu, mệnh đề where, mệnh đề where là gì trong câu lệnh sql, các hàm hàng đơn
của toán tử so sánh trong Oracle:Kiểm tra điều này để tìm hiểu các hàm hàng đơn trong dữ liệu sql, Oracle các hàm, Hàm số trong sql, Hàm ký tự trong sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm ASCIISTR () trong Oracle

  2. cách thay thế nhiều chuỗi với nhau trong Oracle

  3. Oracle:Tính chênh lệch múi giờ trong HH:MM:SS giữa 2 ngày

  4. sao chép từ cơ sở dữ liệu này sang cơ sở dữ liệu khác bằng oracle sql developer - kết nối không thành công

  5. Tại sao lại sử dụng mệnh đề JOIN thay vì điều kiện WHERE?