Vous utilisez des variables dans les requêtes MySQL pour stocker les valeurs extraites de la base de données ou définies pendant l'exécution de la requête. Cela permet des requêtes dynamiques et réutilisables. Voici une ventilation de la façon d'utiliser des variables dans MySQL:
1. Déclaration des variables:
- Variables définies par l'utilisateur: Utilisez le symbole `@` suivi du nom de la variable. Ces variables sont spécifiques à la session.
`` SQL
Set @my_variable ='Some Value';
`` '
- Variables locales: Déclaré dans les procédures ou fonctions stockées à l'aide du mot-clé «Declare». Ceux-ci ont une portée limitée.
`` SQL
Créer une procédure my_procedure ()
COMMENCER
Déclarer total_orders int;
- ... reste de votre procédure
FIN;
`` '
2. Attribuer des valeurs aux variables:
- en utilisant `set`:
`` SQL
Set @user_id =123;
`` '
- dans une requête sélectionnée:
`` SQL
Sélectionnez Count (*) dans @Total_Products à partir de produits;
`` '
- dans une procédure ou une fonction stockée:
`` SQL
Declare Product_name Varchar (255);
Sélectionnez le nom dans Product_name à partir de produits où id =1;
`` '
3. Utilisation de variables dans les requêtes:
- dans où les clauses:
`` SQL
Sélectionnez * dans les utilisateurs où id =@user_id;
`` '
- dans certains listes:
`` SQL
Sélectionnez Nom, @Discount_Percentage * Prix As Discouted_Price à partir de produits;
`` '
- dans Insert, Update et Supprimer les instructions:
`` SQL
Mettre à jour les produits set Price =@new_price où id =@product_id;
`` '
Exemple:
Disons que vous souhaitez trouver toutes les commandes passées par un utilisateur avec un ID utilisateur spécifique et calculer la valeur de commande totale:
`` SQL
- Définissez l'ID utilisateur
Set @user_id =1;
- Calculez la valeur de commande totale pour l'utilisateur
SÉLECTIONNER
O.Order_id,
Sum (oi.quantity * p.price) comme total_order_value
Des ordres o
Rejoignez Order_Items Oi sur O.Order_id =Oi.Order_Id
Rejoignez les produits P sur oi.product_id =p.id
Où o.user_id =@user_id
Groupe par o.order_id;
`` '
Cette requête définit d'abord la variable `@ user_id` vers 1. Ensuite, il utilise cette variable dans la clause où filtrer les commandes passées par l'utilisateur avec l'ID 1.
Points clés:
- Les variables définies par l'utilisateur sont spécifiques à la session et leurs valeurs sont perdues à la fin de la session.
- Les variables locales ne sont accessibles que dans la procédure ou la fonction stockée où elles sont déclarées.
- Évitez d'utiliser les mêmes noms de variables pour les variables définies par l'utilisateur et locales pour éviter un comportement inattendu.
- Utilisez les variables judicieusement pour améliorer la lisibilité et la réutilisabilité des requêtes.
|