Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Vyhlásenie premenných:
- Užívateľom definované premenné: Použite symbol `@`, za ktorým nasleduje názov premennej. Tieto premenné sú špecifické pre reláciu.
`` sql
Set @my_variable ='nejakú hodnotu';
`` `
- Lokálne premenné: Deklarované v rámci uložených postupov alebo funkcií pomocou kľúčového slova „Declare`. Majú obmedzený rozsah.
`` sql
Vytvorte postup my_procedure ()
Začať
Deklarovať total_orders int;
- ... Zvyšok vášho postupu
Koniec;
`` `
2. Priradenie hodnôt premenným:
- pomocou `set`:
`` sql
Set @user_id =123;
`` `
- Z výberového dotazu:
`` sql
Vyberte počet (*) do @total_products z produktov;
`` `
- v rámci uloženej procedúry alebo funkcie:
`` sql
Deklarovať produkt_name varchar (255);
Vyberte názov do produktu_name z produktov, kde id =1;
`` `
3. Použitie premenných v dotazoch:
- , kde klauzuly:
`` sql
Vyberte * od používateľov, kde id =@user_id;
`` `
- v výberových zoznamoch:
`` sql
Vyberte názov, @discount_percentage * Cena ako Discumed_price z produktov;
`` `
- V príkazoch Vložte, aktualizovať a vymazať:
`` sql
Aktualizujte produkty set cena =@New_price, kde id =@product_id;
`` `
Príklad:
Povedzme, že chcete nájsť všetky objednávky zadané používateľom s konkrétnym ID používateľa a vypočítať celkovú hodnotu objednávky:
`` sql
- Nastavte ID používateľa
Set @user_id =1;
- Vypočítajte celkovú hodnotu objednávky pre používateľa
Vybraný
O.order_id,
Suma (oi.Quantity * p.price) ako total_order_value
Z objednávok o
Pripojte sa
Pripojte sa k produktom P na OI.Product_id =P.ID
Kde O.user_id =@user_id
Skupina od O.Order_id;
`` `
Tento dotaz najskôr nastaví premennú `@user_id` na 1.
Kľúčové body:
-Premenné definované používateľom sú špecifické pre reláciu a ich hodnoty sa stratia po konci relácie.
- Miestne premenné sú prístupné iba v rámci uloženého postupu alebo funkcie, ak sú deklarované.
- Vyhnite sa používaniu rovnakých názvov premenných pre používateľské a miestne premenné, aby ste zabránili neočakávanému správaniu.
- Používajte premenné uvážlivo na zlepšenie čitateľnosti a opakovaného použitia dotazov.