Oracle
 sql >> Base de données >  >> RDS >> Oracle

Opérateurs d'ensemble Oracle

Utilisation des opérateurs Oracle Set (Union, Union All, Intersect and Minus/Except)

Les opérateurs Oracle Set peuvent être utilisés pour sélectionner des données dans plusieurs tables. Ils combinent les résultats de deux requêtes ou plus. Lors de l'utilisation des opérateurs Set

a) Chaque clause SELECT doit avoir le même nombre de colonnes

b) La colonne doit être du même type de données

c) La colonne doit être spécifiée dans le même ordre dans toutes les clauses de sélection.

Il existe 4 opérateurs Set :

UNION Il renvoie toutes les lignes uniques renvoyées par les deux requêtes
UNION TOUS Il renvoie toutes les lignes, y compris les doublons
INTERSECTION Il ne renvoie que les lignes renvoyées par les deux requêtes
MOINS Il renvoie des lignes uniques sélectionnées par la première requête mais pas les lignes sélectionnées par la deuxième requête

Opérateur Oracle Union :

L'opérateur Oracle Union est utilisé pour combiner les ensembles de résultats de deux ou plusieurs instructions SELECT. Il combine les deux ensembles de résultats de l'instruction SELECT et supprime les lignes en double entre eux. Il renvoie donc essentiellement les lignes distinctes

SELECT city_name FROM CUST_DATA
UNION
SELECT nom_ville FROM SUPP_DATA ;

Cette requête renverra des lignes distinctes de villes à partir de "Cust_data" et "Supp_data"

Oracle Union Tous

L'opérateur Oracle Union All est utilisé pour combiner les ensembles de résultats de deux ou plusieurs instructions SELECT. Il combine les ensembles de résultats de l'instruction SELECT et renvoie tel quel. Il peut donc contenir des doublons également en fonction de l'ensemble de données

SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;

Cette requête renverra toutes les lignes (les lignes en double également) des villes de "Cust_data" et "Supp_data"

Différence entre Union et Union All dans Oracle

Union renvoie les lignes distinctes tandis que Union all renvoie toutes les lignes. Nous devons donc être très prudents lors du choix de ces opérateurs d'ensemble

Intersection d'Oracle

L'opérateur Oracle Intersect est utilisé pour combiner les ensembles de résultats de deux ou plusieurs instructions SELECT. Il combine les ensembles de données de l'instruction SELECT et renvoie les lignes communes distinctes entre les instructions. Donc, si un enregistrement existe dans une requête et pas dans l'autre, il sera omis des résultats INTERSECT.

Les résultats sont indiqués par la partie ombrée dans la figure ci-dessus

SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;

Cette requête renverra le nom de ville commun à partir de "Cust_data" et "Supp_data"

Différence entre l'intersection et la jointure

1) L'opérateur INTERSECT est utilisé pour récupérer les enregistrements communs à la fois de la clause select de l'opérateur Intersect tandis que Join est utilisé pour récupérer les données de deux tables en fonction de la condition spécifiée
2) INTERSECT effectue la comparaison pour toutes les colonnes tandis que INNER JOIN uniquement les colonnes spécifiées.
3) L'opérateur INTERSECT renvoie presque les mêmes résultats que la clause INNER JOIN plusieurs fois.

Oracle moins

L'opérateur Sql moins est utilisé pour combiner les ensembles de résultats de deux ou plusieurs instructions SELECT. Il combine à la fois l'instruction SELECT et renvoie les lignes sélectionnées à partir de la première instruction de sélection, puis supprime de l'ensemble de données toutes les lignes extraites de la deuxième instruction de sélection

Les résultats sont indiqués par la partie ombrée dans la figure ci-dessus

SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;

Cette requête renverra le nom de la ville de "Cust_data" moins le nom de la ville "Supp_data"

Ici, puisque toutes les données renvoyées par l'instruction select sont identiques, aucune ligne n'a été générée.

Insérons une ligne différente dans cust_data et voyons les résultats

Voyons maintenant si nous faisons moins de cust_data à partir de supp_data

SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

Nous n'utilisons pas l'opérateur moins dans de nombreux SGBDR comme le serveur sql, mysql. Là, nous utilisons sauf à la place de moins et il a la même fonctionnalité que moins

Tous ces opérateurs d'ensemble SQL sont valides pour les SGBDR utilisés dans Market comme Oracle, mysql, sql server, Postgres, Teradata

Articles connexes
supprimer les enregistrements en double dans oracle :astuces et méthodes pour supprimer les lignes en double de la table oracle. Diverses options sont proposées pour supprimer les lignes en double sans aucun problème
Tutoriels Oracle SQL :Contient la liste de tous les articles Oracle SQL utiles. Explorez-les pour en savoir plus sur Oracle Sql même si vous connaissez Oracle Sql. br/>clause where dans oracle :restriction de l'ensemble de données, clause where, clause what is where dans l'instruction sql, fonctions de ligne unique de l'opérateur de comparaison dans Oracle :consultez ceci pour découvrir les fonctions de ligne unique dans sql, données Oracle fonctions,Fonctions numériques en sql,Fonction caractère en sql