Du bruker variabler i MySQL -spørsmål for å lagre verdier hentet fra databasen eller settes under utførelsen av spørringen. Dette gir mulighet for dynamiske og gjenbrukbare spørsmål. Her er en oversikt over hvordan du bruker variabler i MySQL:
1. Deklarerende variabler:
- Brukerdefinerte variabler: Bruk `@` symbolet etterfulgt av variabelnavnet. Disse variablene er øktspesifikke.
`` SQL
Set @my_variable ='noen verdi';
`` `
- Lokale variabler: Erklært innen lagrede prosedyrer eller funksjoner ved å bruke `erklærte søkeord. Disse har et begrenset omfang.
`` SQL
Opprett prosedyre my_procedure ()
BEGYNNE
Erklære total_ordere int;
- ... resten av prosedyren din
SLUTT;
`` `
2. Tilordne verdier til variabler:
- Bruke `set`:
`` SQL
Set @user_id =123;
`` `
- fra en valgt spørring:
`` SQL
Velg Count (*) til @Total_Products fra produkter;
`` `
- innenfor en lagret prosedyre eller funksjon:
`` SQL
Erklære produktnavn varchar (255);
Velg navn i produktnavn fra produkter der ID =1;
`` `
3. Bruke variabler i spørsmål:
- i hvor klausuler:
`` SQL
Velg * fra brukere der ID =@User_id;
`` `
- I utvalgte lister:
`` SQL
Velg Navn, @Discount_Percentage * Pris som Discounted_Price fra produkter;
`` `
- i sett inn, oppdater og slette utsagn:
`` SQL
Oppdater produkter angitt pris =@new_price hvor id =@product_id;
`` `
Eksempel:
La oss si at du vil finne alle bestillinger plassert av en bruker med en spesifikk bruker -ID og beregne den totale ordreverdien:
`` SQL
- Angi bruker-ID
Set @user_id =1;
- Beregn den totale ordreverdien for brukeren
VELGE
O.Order_id,
Sum (oi.quantity * p.price) som total_order_value
Fra bestillinger o
Bli med ordre_items oi på O.Order_id =oi.order_id
Bli med produkter P på OI.Product_id =P.ID
Hvor o.user_id =@user_id
Gruppe av o.order_id;
`` `
Denne spørringen angir først `@user_id` -variabelen til 1. Deretter bruker den denne variabelen i hvor leddet for å filtrere ordrer plassert av brukeren med ID 1.
Nøkkelpunkter:
-Brukerdefinerte variabler er øktspesifikke og verdiene deres går tapt når økten slutter.
- Lokale variabler er bare tilgjengelige i den lagrede prosedyren eller funksjonen der de er erklært.
- Unngå å bruke de samme variabelnavnene for brukerdefinerte og lokale variabler for å forhindre uventet oppførsel.
- Bruk variabler med omtanke for å forbedre spørringens lesbarhet og gjenbrukbarhet.