Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser l'instruction CASE dans MySQL ?

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
&nbsp;&nbsp;WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
&nbsp;&nbsp;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.