Commande Postgres intersect

Commande Postgres intersect
La fonctionnalité PostgreSQL intersects combine les valeurs résultantes de deux instructions de sélection ou plus. Cette option est utilisée pour récupérer les entités communes dans deux tables ou plus. Alors une seule valeur résultante est obtenue. Un ensemble de lignes est obtenu qui est présent dans les deux tables. Cette fonctionnalité est très utile pour récupérer tous les enregistrements communs dans une seule requête en utilisant plus.

Syntaxe

Sélectionnez Column_Name1, Column_name2 dans la table
COUPER
Sélectionnez Column_Name1, Column_name2 dans la table

Ceci est une syntaxe de base de la fonction d'intersection. Cela peut être modifié en ajoutant un astérisque pour toutes les données en ne spécifiant pas les noms de colonne. La commande fonctionne d'une manière que les deux instructions sélectionnées fonctionneront et récupéreront l'enregistrement, puis la fonctionnalité intersecte choisira les données courantes et supprimera l'inhabituelle.

Fonctionnement de la fonction intersecte dans PostgreSQL

  • Cette fonctionnalité n'est utilisée que lorsque nous avons des données courantes ou des données en double dans les deux colonnes spécifiées.
  • Il est utile de gérer plus d'une table qui va chercher les mêmes entités à partir des tables.

Pour implémenter la commande Intersect, nous devons créer trois tables ici. Nous pouvons utiliser n'importe quelle table par exemple mais pour comprendre le concept d'intersection, nous devons hériter de certains attributs et créer un joint. Le premier contiendra l'information concernant l'élève. Tandis que les deuxième et troisième tableaux contiendront une partie des informations ajoutées dans la première. Nous allons donc créer le premier tableau nommé Student.

>> créer un étudiant de table (
Student_id Serial Primary Key,
Student_name Varchar (255) pas null
));

Le tableau contient deux colonnes, l'identifiant de l'élève et le nom de l'élève. Maintenant, nous allons créer deux tables nommées sujet et pratique. Les deux tables sont originaires de l'élève de la table parentale. Donc, pour les connecter, les deux tables contiendront la clé principale du tableau étudiant comme contrainte de clé étrangère pour créer un joint entre toutes les tables. Les deux tableaux mentionnés ci-dessous ont un attribut de leur propre et un attribut en tant que clé principale exportée du tableau étudiant.

Créer un sujet de table (
Student_id int clé primaire,
join_date Date pas null,
Clé étrangère (Student_id) références étudiante (Student_id)
));
Créer une table pratique (
Student_id int clé primaire,
join_date Date pas null,
Clé étrangère (Student_id) références étudiante (Student_id)
));

Après la création de toutes les tables, nous utiliserons une instruction INSERT pour saisir les données. Chaque tableau obtiendra des données après l'exécution de la commande.

>> Insérer dans Student (Student_name) Values ​​('Thomas'), ('Bay Hikel'), ('Jason Sily'), ('Robert Hunt'), ('Arjit Suba'), ('Micky Angel'),,,, («Shweta Singh»), («Tom Ridle»), («Sabana»), («Timmy Honad»);

Vous pouvez voir que les données sont insérées uniquement dans la colonne du nom; La colonne ID est remplie automatiquement comme le numéro de série. Et les valeurs de la colonne ID du sujet et des tables pratiques seront remplies à partir du tableau des sujets. Mais l'insertion dans le sujet et le tableau pratique seront de telle manière que certains identifiants dans les deux tables devraient être similaires à la situation de la situation que nous avions appliquée.

De même, le sujet et les tables pratiques sont insérés par des données.

Insérer dans les valeurs du sujet (1, «2000-02-01»), (2, «2001-06-01»), (5, «2002-01-01»), (7, «2005-06-01» ));
>> Insérer dans les valeurs pratiques (9, '2000-01-01'), (2, '2002-06-01'), (5, '2006-06-01'), (10, '2005-06- 01 ');

Tableau de sujet:

Tableau pratique:

Maintenant, nous utiliserons une instruction SELECT pour voir les données insérées dans le tableau étudiant.

>> Sélectionner * chez Student;

Exemple 1

Cet exemple montrera le dossier des étudiants qui ont rejoint les matières et la pratique de la table des étudiants. Cela se fera en utilisant une déclaration intersecte appliquée à la fois sur le sujet et le tableau pratique. Cette commande fonctionnera de telle manière qu'elle considérera les identifiants d'étudiant à la fois dans le sujet et dans la classe pratique. Les ID qui sont communs dans les deux tables seront récupérés séparément.

>> sélectionnez Student_id dans le sujet Intersect SELECT Student_id From Practical;

Cela va récupérer deux lignes car seuls deux étudiants se sont inscrits à la fois dans les matières et les. Les deux ID ont des dates de jointure séparées, c'est pourquoi nous n'avons pas récupéré cette colonne.

Considérons maintenant un scénario dans lequel nous voulons récupérer l'enregistrement à partir de la colonne ID et de la colonne join_date d'un tableau qui coupe les données dans la colonne ID du tableau pratique, puis devinez ce qui se passera?

>> SELECT Student_id, join_date From Sujet intersect select Student_id from Practical;

Une erreur se produira car pour que la fonction d'intersection soit appliquée, nous devons avoir mentionné le même nombre de colonnes dans les deux tables. Sinon, la requête ne fonctionnera pas.

Donc, pour surmonter cette erreur, nous allons maintenant prendre les deux colonnes pour que les deux tables s'appliquent à intersect, mais malheureusement, il n'y a pas une seule ligne qui correspond au join_date. Si une date d'adhésion aux deux tables est la même, alors la valeur résultante doit avoir deux colonnes avec une rangée commune des deux tables affectées.

>> SELECT Student_id, join_date à partir du sujet Intersect Select Student_id, join_date from Practical;

Exemple 2

Cet exemple comprend la même commande Intersect, mais maintenant certaines fonctionnalités supplémentaires sont ajoutées dans la commande qui est l'ordre par clause. Cette fonction est utilisée pour organiser le résultat récupéré. Mais comme nous mentionnons «desc» avec cette clause, alors le résultat est organisé par ordre décroissant.

>> Sélectionnez Student_id dans le sujet intersecte Select Student_id dans l'ordre pratique de Student_id Desc;

À partir de la sortie, vous pouvez voir que les valeurs ont d'abord été organisées par ordre croissant, mais Desc les a convertis réverse.

Exemple 3

Dans cet exemple, nous appliquerons la commande Intersect sur la colonne Student_id du sujet et le tableau étudiant. Ensuite, ces identifiants que nous avons entrés uniquement dans le tableau des sujets seront récupérés.

>> Sélectionnez Student_id dans le sujet Intersect Select Student_id dans Student;

Exemple 4

Si vous appliquez une fonction d'intersect sur le même tableau que vous avez sélectionné, il rapportera tous les enregistrements du tableau, tout comme la valeur résultante obtenue à partir de l'instruction SELECT. Vous pouvez voir que nous avons appliqué la commande Intersect sur le tableau pratique sans spécifier la colonne, donc toutes les données avec la date de jointure sont récupérées.

>> Sélectionner * à partir de l'intersection pratique Sélectionner * à partir de pratique;

Commande Postgres intersect via pgadmin

Maintenant, nous allons vérifier la commande Intersect dans le tableau de bord Pgadmin tout comme PSQL. Après avoir ouvert l'interface, accédez aux tables de la base de données Postgres et des options de séquence. Continuez à vous développer jusqu'à ce que vous obteniez l'option de tables, sélectionnez maintenant l'étudiant de la table, puis passez à l'outil de requête pour utiliser une commande.

>> Sélectionnez Student_id From Practical Intersect Select Student_id From Student;

Nous avons modifié la requête ci-dessus dans laquelle la fonction d'intersect est appliquée sur le tableau pratique et le tableau étudiant.

Après avoir appliqué la requête, exécutez-la en sélectionnant l'option. Vous verrez que tous les ID communs sont récupérés à partir des deux tables spécifiées de la commande.

Conclusion

L'article «Postgres Intersect Command» décrit le fonctionnement de cet opérateur dans le système de base de données PostgreSQL. Certains exemples élémentaires sont utilisés ici pour décrire son travail en détail. Chaque données courantes peut être récupérée facilement en utilisant cette fonction d'intersection dans les commandes pour éviter toute redondance et couplage des données dans une base de données.