Ici, nous allons voir comment comparer les colonnes de deux tables différentes en SQL. Nous allons prendre quelques exemples pour voir comment nous pouvons le faire de différentes manières.
Aperçu :
Dans ce document, nous comprendrons la vue d’ensemble de la requête SQL pour l’opération requise pour effectuer Comment comparer des colonnes dans deux tables différentes en SQL. Nous allons comprendre chaque concept à l’aide d’exemples.
Étape 1 : Création de la base de données :
Pour créer la base de données, utilisez la requête SQL suivante comme suit.
Syntaxe –
créer nom_base de données ;
Exemple –
créer STUDENTS_DATA
Étape 2 : Utilisation de la base de données :
Pour utiliser cette base de données comme suit.
Syntaxe –
utiliser nom_base de données ;
Exemple –
utiliser STUDENT_DATA
Etape 3 : Création du tableau :
Création d’une table pour effectuer des requêtes comme suit.
Tableau-1 : Syntaxe –
create table table_name ( type de colonne1, type de colonne2, … );
Exemple –
créer la table studentData1 ( roll_number int clé primaire, prénom varchar (100), nom varchar (100), marques int );
Étape 4 : Insertion des enregistrements :
Insertion d’enregistrements dans la table studentData1 comme suit.
Syntaxe –
insérer dans table_name(column1, column2 …) les valeurs (value1, value2 …);
Insertion dans la table studentData1 –
insérer dans studentData1 (roll_number, firstname, lastname, marks) les valeurs (1, ‘albert’, ‘einstein’,356) ; insérer dans studentData1 (roll_number, firstname, lastname, marks) les valeurs (2, ‘isaac’, ‘newton’,412) ; insérer dans studentData1 (roll_number, firstname, lastname, notes) les valeurs (3, ‘marie’, ‘curie’, 436); insérer dans studentData1 (roll_number, firstname, lastname, marks) les valeurs (4, ‘philip’, ‘jsam’, 389); insérer dans studentData1 (roll_number, firstname, lastname, marks) les valeurs (5, ‘tom’, ‘jsam’,452) ; insérer dans studentData1 (roll_number, firstname, lastname, marks) les valeurs (6, ‘tucker’, ‘jose’, 412); insérer dans studentData1 (roll_number, firstname, lastname, marks) les valeurs (7, ‘drawn’, ‘csate’, 389);
Etape 5 : Création de table2 :
Ici, nous allons créer le studentData2 en utilisant la requête SQL comme suit.
créer la table studentData2 ( id int primary key, firstname varchar (100), lastname varchar (100), marques int );
Etape 6 : Insertion des enregistrements :
Insertion d’enregistrements dans la table studentData2 comme suit.
insérer dans studentData2 (id, firstname, lastname, marks) les valeurs (2, ‘isaac’, ‘newton’,412); insérer dans studentData2 (id, prénom, nom, notes) les valeurs (3, ‘marie’, ‘curie’, 436); insérer dans studentData2 (id, prénom, nom, notes) les valeurs (6, ‘tucker’, ‘jose’, 412); insérer dans studentData2 (id, prénom, nom, notes) les valeurs (4, ‘philip’, ‘jsam’, 389);
Exemple 1 :
Utilisation de la clause where pour comparer les colonnes de deux tables différentes. Il ne peut pas gérer les valeurs nulles.
Syntaxe :
(pour sélectionner tous les enregistrements avec toutes les colonnes)
select * from table1, table où table1.col1 = table2.col2 et table1.col1 > someValue;
Syntaxe (Alternative) :
(pour sélectionner des colonnes spécifiques dans les tableaux)
sélectionnez t1.col1, t2.col2,t3. col3 …., t2.col1, t2.col2, t2.col3…. de table1 t1, table t2 où t1.col1 = t2.col2 et t1.col1 <> t2.col2 ;
Mettre en doute –
sélectionnez * à partir de studentData1, studentData2 où studentData1.roll_number = studentData2.id;
Sortir :
Résultat basé sur la comparaison de roll_number et id comme suit.
numéro de rôle | prénom | nom de famille | Des marques | identifiant |
---|---|---|---|---|
2 | Isaac | newton | 412 | 2 |
3 | Marie | curie | 436 | 3 |
4 | Philippe | jsam | 389 | 4 |
6 | tueur | José | 412 | 6 |
Exemple-2 :
Utilisation de jointures pour comparer les colonnes par priorité dans la table. Par exemple, la jointure gauche renvoie toutes les valeurs de la première table et la valeur nulle pour les enregistrements sans correspondance de la deuxième table. De même, nous pouvons utiliser la jointure droite, la jointure interne, la jointure complète et la jointure automatique selon nos besoins. Dans l’exemple ci-dessous, nous avons comparé deux tables basées sur les colonnes roll_number et id en utilisant la jointure gauche.
Syntaxe –
sélectionnez t1.col1, t1.col2… , t2.col1, t2.col2… , à partir de table1 en tant que t1 à gauche, rejoignez table2 en tant que t2 sur tabe1.col1 = table2.col1 ;
Mettre en doute –
sélectionnez a.roll_number, a.firstname, b.id de studentData1 à gauche, joignez studentData2 en tant que b sur a.roll_number = b.id ;
Sortir :
Join basé sur la table de gauche, c’est-à-dire sutdentData1 comme suit.
numéro de rôle | prénom | identifiant |
---|---|---|
1 | albert | |
2 | Isaac | 2 |
3 | Marie | 3 |
4 | Philippe | 4 |
5 | à M | |
6 | tueur | 6 |
7 | dessiné |
Exemple-3 :
UNION nous permet de comparer deux mêmes types de tables ou de jeux de données. Nous pouvons utiliser union pour comparer les colonnes une fois que nous pouvons avoir l’union des deux tables. Il peut rapidement vérifier quelles sont les données manquantes ou modifiées dans l’une ou l’autre des tables. Il est capable de gérer les valeurs nulles qui ne peuvent pas être gérées par la clause where.
Noter –
Ceci n’est utilisé que lorsque nous avons le même type de tables.
Syntaxe –
select col1, col2, col3 …. from (select col1, col2, col3 … from Table1 union all select col1, col2, col3 … from Table2) cmpr ordre par ID ;
Exemple –
select * from (select * from studentData1 où roll_number > 4 union all select * from studentData2 où id < 6) cmpr ordre par notes ;
Sortir :
Comparaison des mêmes enregistrements où roll_number > 4 et id < 6 comme suit.
numéro de rôle | prénom | nom de famille | Des marques |
---|---|---|---|
7 | dessiné | csate | 389 |
4 | Philippe | jsam | 389 |
6 | tueur | José | 412 |
3 | Marie | curie | 436 |
5 | à M | jsam | 452 |
Attention lecteur ! N’arrêtez pas d’apprendre maintenant. Apprendre SQL pour les entretiens en utilisant Cours SQL par GeeksforGeeks.