U gebruikt variabelen in MySQL -query's om waarden op te slaan die zijn opgehaald uit de database of ingesteld tijdens de uitvoering van de query. Dit zorgt voor dynamische en herbruikbare vragen. Hier is een uitsplitsing van het gebruik van variabelen in MySQL:
1. Variabelen verklaren:
- door de gebruiker gedefinieerde variabelen: Gebruik het `@` symbool gevolgd door de variabele naam. Deze variabelen zijn sessiespecifiek.
`` `SQL
Set @my_variable ='enige waarde';
`` `
- Lokale variabelen: Aangegeven binnen opgeslagen procedures of functies met behulp van het trefwoord 'Declare'. Deze hebben een beperkte reikwijdte.
`` `SQL
Procedure maken My_Procedure ()
BEGINNEN
Declareer total_orders int;
- ... Rest van uw procedure
EINDE;
`` `
2. Waarden toewijzen aan variabelen:
- met `set`:
`` `SQL
Set @user_id =123;
`` `
- van een select query:
`` `SQL
Selecteer Count (*) in @Total_Products uit producten;
`` `
- Binnen een opgeslagen procedure of functie:
`` `SQL
Declareer product_name varchar (255);
Selecteer naam in product_naam uit producten waar id =1;
`` `
3. Variabelen gebruiken in query's:
- In waar clausules:
`` `SQL
Selecteer * uit gebruikers waar id =@user_id;
`` `
- In selecteren lijsten:
`` `SQL
Selecteer naam, @discount_percentage * Prijs als korting_price van producten;
`` `
- In invoegen, bijwerken en verwijderen:
`` `SQL
Update producten Set Price =@New_Price waar id =@product_id;
`` `
Voorbeeld:
Stel dat u alle bestellingen wilt vinden die door een gebruiker worden geplaatst met een specifieke gebruikers -ID en de totale bestelwaarde berekenen:
`` `SQL
- Stel de gebruikers-ID in
Set @user_id =1;
- Bereken de totale bestelwaarde voor de gebruiker
Uitkiezen
o.order_id,
Som (oi.quantity * p.Price) als total_order_value
Van bestellingen o
Join Order_Items Oi op O.Order_ID =OI.Order_ID
Word lid van producten P op OI.Product_id =P.ID
Waar o.user_id =@user_id
Groep door O.Order_ID;
`` `
Deze query stelt eerst de variabele `@user_id` op 1 in. Vervolgens gebruikt deze deze variabele in de WHERE -clausule om bestellingen te filteren die door de gebruiker worden geplaatst met ID 1.
Sleutelpunten:
-Door de gebruiker gedefinieerde variabelen zijn sessiespecifiek en hun waarden gaan verloren wanneer de sessie eindigt.
- Lokale variabelen zijn alleen toegankelijk binnen de opgeslagen procedure of functie waar ze worden aangegeven.
- Vermijd het gebruik van dezelfde variabele namen voor door de gebruiker gedefinieerde en lokale variabelen om onverwacht gedrag te voorkomen.
- Gebruik variabelen oordeelkundig om de leesbaarheid en herbruikbaarheid van query te verbeteren. |