sql >> Database >  >> RDS >> Oracle

Oracle Set-operators

Oracle Set-operators gebruiken (Union, Union All, Intersect en Minus/Except)

Oracle Set-operators kunnen worden gebruikt om gegevens uit meerdere tabellen te selecteren. Ze combineren de resultaten van twee of meer zoekopdrachten. Bij gebruik van de Set-operators

a) Elke SELECT-clausule moet hetzelfde aantal kolommen hebben

b) Kolom moet van hetzelfde gegevenstype zijn

c) Kolom moet in alle geselecteerde clausules in dezelfde volgorde worden opgegeven.

Er zijn 4 Set-operators:

UNIE Het retourneert alle unieke rijen die zijn geretourneerd door beide zoekopdrachten
UNIE ALLEN Het retourneert alle rijen inclusief duplicaten
INTERSECTEN Het retourneert alleen de rijen die zijn geretourneerd door beide zoekopdrachten
MIN Het retourneert unieke rijen die zijn geselecteerd door de eerste zoekopdracht, maar niet de rijen die zijn geselecteerd uit de tweede zoekopdracht

Oracle Union-operator:

De Oracle Union-operator wordt gebruikt om de resultaatsets van twee of meer SELECT-instructies te combineren. Het combineert de resultaatset van beide SELECT-instructie en verwijdert dubbele rijen ertussen. Dus het retourneert in feite de afzonderlijke rijen

SELECT city_name FROM CUST_DATA
UNION
SELECT city_name FROM SUPP_DATA;

Deze zoekopdracht retourneert verschillende rijen met steden uit 'Cust_data' en 'Supp_data'

Oracle Union Allemaal

De operator Oracle Union All wordt gebruikt om de resultaatsets van twee of meer SELECT-instructies te combineren. Het combineert de resultatensets van de beide SELECT-instructie en retourneert zoals het is. Het kan dus ook duplicaat bevatten, afhankelijk van de dataset

SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;

Deze zoekopdracht retourneert alle rijen (ook dubbele rijen)  van steden uit 'Cust_data' en 'Supp_data'

Verschil tussen Union en Union All in Oracle

Union retourneert de afzonderlijke rijen, terwijl Union all alle rijen retourneert. We moeten dus heel voorzichtig zijn bij het kiezen van deze set-operators

Oracle Intersect

Oracle Intersect-operator wordt gebruikt om de resultaatsets van twee of meer SELECT-instructies te combineren. Het combineert de beide SELECT-instructiegegevenssets en retourneert de verschillende gemeenschappelijke rijen tussen de instructies. Dus als een record in de ene query bestaat en niet in de andere, wordt deze weggelaten uit de INTERSECT-resultaten.

De resultaten worden weergegeven door het gearceerde gedeelte in de bovenstaande afbeelding

SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;

Deze zoekopdracht retourneert de algemene stadsnaam van "Cust_data" en "Supp_data"

Verschil tussen Intersect versus Join

1) INTERSECT-operator wordt gebruikt om de gemeenschappelijke records op te halen uit zowel de select-clausule van de Intersect-operator, terwijl Join wordt gebruikt om gegevens uit twee tabellen op te halen op basis van een gespecificeerde voorwaarde
2) INTERSECT doet de vergelijking voor alle kolommen terwijl INNER JOIN alleen de opgegeven kolommen.
3) INTERSECT-operator geeft vaak bijna dezelfde resultaten als de INNER JOIN-clausule.

Oracle Minus

Sql min-operator wordt gebruikt om de resultaatsets van twee of meer SELECT-instructies te combineren. Het combineert de SELECT-instructie en retourneert de rijen die zijn geselecteerd uit de eerste select-instructie en verwijdert vervolgens uit de dataset alle rijen die zijn opgehaald uit de tweede select-instructie

De resultaten worden weergegeven door het gearceerde gedeelte in de bovenstaande afbeelding

SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;

Deze zoekopdracht retourneert de naam van de stad uit 'Cust_data' minus de plaatsnaam 'Supp_data'

Hier, aangezien alle gegevens die worden geretourneerd door de select-instructie hetzelfde zijn, zijn er geen rijen gegenereerd.

Laten we een andere rij invoegen in cust_data en de resultaten bekijken

Laten we nu kijken of we minus cust_data uit supp_data doen

SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

We nemen de operator niet weg in Veel RDBMS zoals sql-server, mysql. Daar gebruiken we behalve in plaats van min en heeft dezelfde functionaliteit als min

Deze operatoren voor alle sql-sets zijn geldig voor RDBMS die in Market wordt gebruikt, zoals Oracle, mysql, sql-server, Postgres, Teradata

Verwante artikelen
verwijder dubbele records in orakel:tips en manieren om dubbele rijen uit orakeltabel te verwijderen. Er worden verschillende opties gegeven om de dubbele rijen zonder problemen te verwijderen
Oracle Sql-zelfstudies:Bevat de lijst met alle nuttige Oracle SQL-artikelen. Verken ze om meer te weten te komen over Oracle Sql, zelfs als u Oracle Sql kent
Oracle-interviewvragen:bekijk deze pagina voor de top 49 Oracle-interviewvragen en -antwoorden:basisprincipes, Oracle SQL om u te helpen bij interviews. Er wordt ook aanvullend materiaal verstrekt
br/>where-clausule in orakel:beperking van de dataset, waar-clausule, wat is waar-clausule in sql-instructie, vergelijkingsoperator
enkele rij-functies in Oracle:bekijk dit om erachter te komen Enkele rij-functies in sql, Oracle-gegevens functies, numerieke functies in sql, karakterfunctie in sql


  1. Databaseschema-objectcontrole automatiseren

  2. Kan ik in een Oracle-trigger nieuw en oud toewijzen aan een rowtype-variabele?

  3. Wat is SQL? Wat is een databank? Relationele databasebeheersystemen (RDBMS) uitgelegd in gewoon Engels.

  4. Primaire MySQL-sleutels