Avec une énorme quantité de données générées chaque jour, il est important de récupérer des données en fonction de quelques conditions. Dans cet article sur l'instruction CASE dans MySQL, je vais expliquer comment utiliser cette instruction, pour récupérer des données sur une ou plusieurs conditions.
Les sujets suivants seront abordés dans cet article :
- Introduction à SQL
- À quoi sert SQL ?
- CASE dans MySQL
- Syntaxe de CASE dans MySQL
- Exemple de CASE dans MySQL
Qu'est-ce que SQL ?
SQL est un langage spécifique à un domaine qui est largement utilisé dans la programmation. Il est conçu pour gérer les données contenues dans un système de gestion de base de données relationnelle (RDBMS) ou pour le traitement de flux dans un système de gestion de flux de données relationnelles. En général, SQL est un langage standard qui permet de stocker, manipuler et récupérer des données dans des bases de données.
Quel est le but de SQL ?
SQL est essentiellement utilisé pour communiquer avec une base de données. Selon l'ANSI (American National Standards Institute), il est considéré comme le langage standard pour les systèmes de gestion de bases de données relationnelles (RDBMS). Nous utilisons des instructions SQL pour effectuer des tâches telles que mettre à jour, insérer, supprimer ou récupérer des données d'une base de données.
Qu'est-ce que l'instruction CASE dans MySQL ?
L'instruction CASE dans MySQL est un moyen de gérer la logique if/else. C'est une sorte d'instruction de contrôle qui forme la cellule des langages de programmation car ils contrôlent l'exécution d'autres ensembles d'instructions.
L'instruction CASE passe par diverses conditions et renvoie des valeurs au fur et à mesure que la première condition est remplie (comme une instruction IF-THEN-ELSE dans les langages de bas niveau). Une fois qu'une condition est vraie, elle arrête de traverser et renvoie le résultat. Si aucune des conditions n'est vraie, il renvoie la valeur dans la clause ELSE.
S'il n'y a pas de clause ELSE et qu'aucune des conditions n'est vraie, il renvoie simplement NULL.
Syntaxe de l'instruction CASE dans MySQL
Syntaxe de base :
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionx THEN resultx ELSE result END;
Il existe deux manières d'obtenir des instructions CASE-Switch :
- Prend une variable appelée case_value et la met en correspondance avec une déclaration_list.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END;
- Considérez une condition de recherche au lieu d'une égalité de variable et exécutez la liste_instruction en conséquence.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END;
Exemple d'instruction CASE dans MySQL
Considérons une table :ÉTUDIANT
Table des élèves
Identifiant étudiant | Nom | Département | Sexe |
001 | Akash | CS | M |
002 | Bikram | Mec | M |
003 | Chandan | CS | M |
004 | Deepak | CS | M |
005 | Elicia | CE | F |
006 | Fernandes | Mec | F |
Exemple : Considérez un scénario dans lequel vous devez modifier les noms de service dans leur forme complète. Si le nom du département est CS, il doit être converti en informatique ; De même, Mech doit être converti en Mécanique et EC en Électronique et Communication.
Exemple de requête
CASE department_name WHEN 'CS' THEN UPDATE Student SET department='Computer Science'; WHEN 'EC' THEN UPDATE Student SET department='Electronics and Communication'; ELSE UPDATE Student SET department=’Mechanical'; END;
Sortie :
Les noms de département correspondants sont renommés comme suit :
Identifiant étudiant | Nom | Département | Sexe |
001 | Akash | Informatique | M |
002 | Bikram | Mécanique | M |
003 | Chandan | Informatique | M |
004 | Deepak | Informatique | M |
005 | Elicia | Électronique et communication | F |
006 | Fernandes | Mécanique | F |
Exemple : Considérez un scénario où vous devez sélectionner tous les champs correspondant à la table Student. Étant donné que les valeurs écrites dans le champ Sexe sont des valeurs à un seul caractère (M/F), écrivons une requête pour changer M en Homme et F en Femme.
Exemple de requête
SELECT Student ID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Student;
Sortie :
Identifiant étudiant | Nom | Département | Sexe |
001 | Akash | Informatique | Homme |
002 | Bikram | Mécanique | Homme |
003 | Chandan | Informatique | Homme |
004 | Deepak | Informatique | Homme |
005 | Elicia | Électronique et communication | Femme |
006 | Fernandes | Mécanique | Femme |
Commutateur CASE dans SQL - Tri personnalisé
Exemple de requête
CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS SELECT StudentID, Name, Gender, Department FROM Student ORDER BY CASE WHEN @ColToSort='Department' THEN Department WHEN @ColToSort='Name' THEN Name WHEN @ColToSort='Gender' THEN Gender ElSE StudentID END;
Sortie :
La sortie est triée en fonction du champ fourni.
La procédure (fonction) ci-dessus prend une variable de type de données varchar comme argument, et sur cette base, trie les tuples dans la table Student. De plus, nous pouvons également utiliser des instructions CASE pour comparer les conditions.
Exemple : Considérez une table nommée CONTACTS qui contient contactID et un websiteID. Selon ces détails, un utilisateur peut naviguer à travers ces liens :"TechOnTheNet.com" ou "CheckYourMath.com".
Exemple de requête
SELECT CASE WHEN contact_id < 1000 THEN 'TechOnTheNet.com' WHEN website_id = 2 THEN 'CheckYourMath.com' END FROM contacts;
Il doit être clair maintenant que lors de l'écriture d'instructions Case dans MySQL, l'un des facteurs les plus importants est de « les ordonner de la bonne manière ». N'oubliez pas que les conditions sont évaluées dans l'ordre indiqué par vous. Une fois qu'une condition devient vraie, l'instruction CASE renvoie le résultat et n'évalue plus les conditions. Soyez donc prudent lorsque vous sélectionnez l'ordre dans lequel vous indiquez vos conditions.
Si vous souhaitez en savoir plus sur MySQL et découvrir cette base de données relationnelle open-source, consultez notre formation de certification MySQL DBA qui comprend une formation en direct dirigée par un instructeur et de vrais expérience de projet de vie. Cette formation vous aidera à comprendre MySQL en profondeur et vous aidera à maîtriser le sujet.
Vous avez une question pour nous ? Veuillez le mentionner dans la section des commentaires de cette "Déclaration CASE dans MySQL" et nous vous répondrons.