Comment utiliser l'opérateur d'union sql

La UNION

Sommaire

l'opérateur est la mise en œuvre de SQL de l'exploitant de l'union de l'algèbre relationnelle. La UNION l'opérateur vous permet de dessiner des informations à partir de deux ou plusieurs tables qui ont la même structure. Même structure moyens

  • Les tableaux doivent tous avoir le même nombre de colonnes.

  • Les colonnes correspondantes doivent tous avoir des types de données identiques et des longueurs.

Lorsque ces critères sont remplis, les tableaux sont Union-compatible: L'union des deux tables renvoie toutes les lignes qui apparaissent dans l'une des tables et élimine les doublons.

Supposons que vous créez une base de données statistiques de baseball-. Il contient deux tableaux syndicaux compatible nommés américaine et nationale. Les deux tableaux ont trois colonnes, et les colonnes correspondantes sont tous du même type. En fait, les colonnes correspondantes ont des noms de colonnes identiques (bien que cette condition ne soit pas nécessaire pour la compatibilité de l'union).

NATIONAL répertorie les noms des joueurs et le nombre de jeux complets inclinés par lanceurs de la Ligue nationale. AMERICAN répertorie les mêmes informations sur les lanceurs dans la Ligue américaine. La UNION des deux tables vous donne une table de résultat virtuel contenant toutes les lignes de la première table ainsi que toutes les lignes de la seconde table. Pour cet exemple, quelques rangées ont été mis dans chaque tableau pour illustrer le fonctionnement:




SELECT * FROM NATIONAL -FirstName NOM CompleteGames --------- -------- ------------- Sal Maglie 11Don Newcombe9Sandy Koufax 13Don Drysdale12SELECT * FROM -FirstName AMÉRICAIN NOM CompleteGames --------- -------- ------------- Whitey Ford 12Don Larson 10Bob Turley 8Allie Reynolds14SELECT * FROM NATIONALUNIonselect * d'American -FirstName NOM CompleteGames --------- -------- ------------- Allie Reynolds14Bob Turley 8Don Drysdale12Don Larson 10Don Newcombe9Sal Maglie 11Sandy Koufax 13Whitey Ford 12

La UNION DISTINCT fonctions de commande identique à la UNION opérateur sans le DISTINCT mot-clé. Dans les deux cas, les lignes en double sont éliminés du jeu de résultats.

L'astérisque (*) Peut être utilisé comme raccourci pour toutes les colonnes d'une table. Ce raccourci est bien la plupart du temps, mais il peut vous causer des ennuis lorsque vous utilisez les opérateurs relationnels dans intégré ou de langue de module SQL.

Si vous ajoutez une ou plusieurs nouvelles colonnes à une table et non à un autre, ou que vous ajoutez des colonnes différentes pour les deux tableaux, les deux tables ne sont plus compatibles avec l'union - et votre programme sera invalide la prochaine fois qu'il est recompilé.

Même si les mêmes nouvelles colonnes sont ajoutées aux deux tables de sorte qu'ils sont encore syndicat compatible, votre programme est probablement pas prêt à traiter avec des données supplémentaires. Vous devez énumérer les colonnes que vous voulez, plutôt que de compter sur la * sténographie. Lorsque vous entrez dans des requêtes SQL ad hoc de la console, l'astérisque fonctionne très bien, parce que vous pouvez afficher rapidement une structure de table pour vérifier la compatibilité de l'union si les requêtes ne sont pas réussies.

Le ALL opération UNION

La UNION opération élimine généralement des lignes en double qui résultent de son fonctionnement, ce qui est le résultat souhaité plupart du temps. Parfois, cependant, vous voudrez peut-être de préserver les lignes en double. À ces occasions, l'utilisation UNION ALL.

En se référant à l'exemple, supposons que “ Bullet ” Bob Turley avait été échangé en mi-saison des Yankees de New York dans la Ligue américaine pour les Dodgers de Brooklyn dans la Ligue nationale. Supposons maintenant que pendant la saison, il a lancé huit jeux complets pour chaque équipe.

L'ordinaire UNION affichée dans l'exemple jette une des deux lignes contenant les données de Turley. Bien qu'il semblait à la hauteur de seulement 8 jeux complets de la saison, il a effectivement lancé un remarquable 16 jeux complets. La requête suivante vous donne les faits réels:

SELECT * FROM NATIONALUNION globaleSélectionner * d'American -

Vous pouvez parfois former un UNION de deux tables, même si elles ne sont pas compatibles avec l'union. Si les colonnes que vous voulez dans votre table de résultat sont présents et compatible dans les deux tables, vous pouvez effectuer une UNION CORRESPONDANT opération. Seules les colonnes spécifiées sont considérées - et ils sont les seuls colonnes affichées dans le tableau de résultats.

L'opération CORRESPONDANT

Statisticiens de baseball gardent diverses statistiques sur les cruches qu'ils continuent à voltigeurs. Dans les deux cas, prénoms, noms de famille, putouts, les erreurs et les pourcentages de mise en service sont enregistrées. Voltigeurs ne disposent pas d'un won / perdu fiche, une fiche arrêts, ou un certain nombre d'autres statistiques qui se rapportent à tangage. Vous pouvez toujours effectuer une UNION qui prend les données de la table de voltigeur et de la table de lanceur de vous donner des informations à propos de compétence défensive:

SELECT * FROM OUTFIELDERUNION CORRESPONDANT (Prénom, Nom, putouts, erreurs, FieldPct) SELECT * FROM PICHET -

La table de résultats contient les noms et prénoms de tous les voltigeurs et pichets, avec le putouts, erreurs, et le pourcentage de mise en service de chaque joueur. Comme avec la simple UNION, les doublons sont éliminés. Ainsi, si un joueur a passé quelque temps dans le champ extérieur et aussi aigu dans un ou plusieurs jeux, le UNION CORRESPONDANT opération perd certains de ses statistiques. Pour éviter ce problème, utilisez UNION ALL CORRESPONDANT.

Chaque nom de colonne dans la liste suivante l' CORRESPONDANT mot-clé doit être un nom qui existe dans les deux tables syndicales-joint. Si vous omettez cette liste de noms, une liste implicite de tous les noms qui apparaissent dans les deux tables est utilisé. Mais cette liste implicite de noms peut changer lorsque de nouvelles colonnes sont ajoutées aux tables. Par conséquent, vous êtes mieux listant explicitement les noms de colonnes que vous les omettre.


» » » » Comment utiliser l'opérateur d'union sql