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_DATAUNION
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