Dans cette section SQL, nous verrons comment comparer deux ou plusieurs chaînes dans le langage de requête structuré.
Nous pouvons comparer deux chaînes ou plus à l'aide de la fonction de chaîne STRCMP, de l'opérateur LIKE et de l'opérateur Equal.
Fonction de chaîne STRCMP
STRCMP est une fonction de chaîne qui compare les deux chaînes spécifiées et donne 0 si la longueur de la première chaîne est égale à la longueur de la deuxième chaîne. Si la longueur de la première chaîne est supérieure à la longueur de la deuxième chaîne, alors la fonction renvoie 1 sinon -1.
Syntaxe de la fonction STRCMP
SELECT STRCMP (String_1, String_2);
Exemples de fonction de chaîne STRCMP
Exemple 1: La requête SELECT suivante compare la longueur des chaînes JAVATPOINT et EXAMPLES :
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Sortir:
1
Exemple 2 : La requête SELECT suivante compare la longueur de deux phrases transmises dans la fonction STRCMP :
SELECT STRCMP ('Website is good', 'javatpoint is good');
Sortir:
-1
Exemple 3 : La requête SELECT suivante compare la longueur de deux villes :
SELECT STRCMP ( 'Delhi', 'Noida');
Sortir:
0
Opérateur LIKE
L'opérateur LIKE fait correspondre le modèle particulier avec chaque ligne du champ et renvoie les valeurs correspondantes dans la sortie. Cet opérateur est toujours utilisé avec la clause WHERE dans l'instruction SQL.
Syntaxe de l'opérateur Like
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Exemple d'opérateur LIKE
Prenons la table Student suivante :
Roll_Non | Prénom | Ville | Âge | Pourcentage | Grade |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Oui | Delhi | vingt | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | vingt | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Vivek | Goa | vingt | 80 | B2 |
Requête 1 : La requête suivante affiche l'enregistrement des étudiants de la table Student ci-dessus dont First_Name commence par une lettre « B » :
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
Résultat de la requête ci-dessus :
Roll_Non | Prénom | Pourcentage | Grade |
---|---|---|---|
102 | Bhavesh | 93 | A1 |
104 | Bhavna | 78 | B1 |
Comme le montre le résultat ci-dessus, le tableau contient uniquement le dossier des étudiants de Bhavesh et Bhavna car leurs noms commencent par la lettre B.
Requête 2 : La requête suivante affiche l'enregistrement des étudiants de la table Student donnée dont First_Name contient le caractère « a » dans n'importe quelle position :
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
Résultat de la requête ci-dessus :
Roll_Non | Prénom | Ville | Âge | Pourcentage | Grade |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Oui | Delhi | vingt | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | vingt | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Opérateur égal (=)
Il s'agit d'un type d'opérateur de comparaison qui affiche les données correspondantes de la table SQL donnée.
Cet opérateur est très utilisé par les utilisateurs de bases de données en langage de requête structuré.
Cet opérateur renvoie VRAIES lignes de la table de base de données si la valeur de la colonne est la même que la valeur spécifiée dans la requête.
Syntaxe de l'opérateur Equal :
SELECT * FROM Table_Name WHERE Column_Name = Value;
Exemple d'opérateur égal
Prenons la table Worker suivante :
ID_travailleur | Nom_travailleur | Ville_travailleur | Travailleur_Salaire | Travailleur_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Touchar | Lucknow | 29000 | 3000 |
103 | Vivek | Calcutta | 35000 | 2500 |
104 | Shivam | Goa | 22000 | 3000 |
La requête suivante affiche l'enregistrement des travailleurs de la table des travailleurs dont Worker_Salary est 35 000 :
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Sortir:
ID_travailleur | Nom_travailleur | Ville_travailleur | Travailleur_Salaire | Travailleur_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
103 | Vivek | Calcutta | 35000 | 2500 |