Du bruger variabler i MySQL -forespørgsler til at gemme værdier hentet fra databasen eller indstillet under udførelsen af forespørgslen. Dette giver mulighed for dynamiske og genanvendelige forespørgsler. Her er en oversigt over, hvordan man bruger variabler i MySQL:
1. Erklæring af variabler:
- Brugerdefinerede variabler: Brug symbolet `@` efterfulgt af variablen. Disse variabler er sessionspecifikke.
`` `sql
Sæt @my_variable ='noget værdi';
`` `
- lokale variabler: Erklæret inden for lagrede procedurer eller funktioner ved hjælp af 'erklæringen' nøgleord. Disse har et begrænset omfang.
`` `sql
Opret procedure my_procedure ()
BEGYNDE
Erklære total_orders int;
- ... resten af din procedure
ENDE;
`` `
2. Tildeling af værdier til variabler:
- ved hjælp af `sæt ':
`` `sql
Sæt @user_id =123;
`` `
- fra en udvalgt forespørgsel:
`` `sql
Vælg tælling (*) i @Total_Products fra produkter;
`` `
- inden for en gemt procedure eller funktion:
`` `sql
Erklære produktnavn varchar (255);
Vælg navn i produktnavn fra produkter, hvor ID =1;
`` `
3. Brug af variabler i forespørgsler:
- I hvor klausuler:
`` `sql
Vælg * fra brugere, hvor id =@User_id;
`` `
- i udvalgte lister:
`` `sql
Vælg navn, @discount_percentage * Pris som rabat_price fra produkter;
`` `
- INTERTES, UPDATE og SLETESTREGNINGER:
`` `sql
Opdateringsprodukter sæt pris =@new_price hvor id =@product_id;
`` `
Eksempel:
Lad os sige, at du vil finde alle ordrer placeret af en bruger med et specifikt bruger -ID og beregne den samlede ordreværdi:
`` `sql
- Indstil bruger-ID
Sæt @User_id =1;
- Beregn den samlede ordreværdi for brugeren
VÆLGE
O.Order_id,
Sum (oi.quantity * p.price) som total_order_value
Fra ordrer o
Deltag i ordre_items oi på o.order_id =oi.order_id
Deltag i produkter p på oi.product_id =p.id
Hvor o.user_id =@User_id
Gruppe af O.Order_id;
`` `
Denne forespørgsel indstiller først `@user_id` -variablen til 1.. Derefter bruger den denne variabel i WHERE -klausulen til at filtrere ordrer placeret af brugeren med ID 1.
Nøglepunkter:
-Brugerdefinerede variabler er sessionspecifikke, og deres værdier går tabt, når sessionen slutter.
- Lokale variabler er kun tilgængelige inden for den lagrede procedure eller funktion, hvor de erklæres.
- Undgå at bruge de samme variable navne til brugerdefinerede og lokale variabler for at forhindre uventet opførsel.
- Brug variabler med omtanke for at forbedre forespørgselslæsbarheden og genanvendeligheden.