SQL-muutujad: SQL Serveri deklareerimine, määramine ja muutuja valimine
Mis on muutuja SQL Serveris?
MS SQL-is on muutujad objektid, mis toimivad mälukoha kohahoidjana. Muutuja säilitab ühe andmeväärtuse.
SQL-i muutujate tüübid: kohalik, globaalne
MS SQL-il on kahte tüüpi muutujaid:
- Kohalik muutuja
- Globaalne muutuja.
Kuid kasutaja saab luua ainult kohaliku muutuja.
Alloleval joonisel selgitatakse kahte tüüpi muutujaid, mis on saadaval MS SQL server.

Kohalik muutuja
- Kasutaja deklareerib kohaliku muutuja.
- Vaikimisi algab kohalik muutuja tähega @.
- Igal kohaliku muutuja ulatusel on piirang praegune partii või protseduur mis tahes seansi jooksul.
Globaalne muutuja
- Süsteem säilitab globaalse muutuja. Kasutaja ei saa neid deklareerida.
- Globaalne muutuja algab tähega @@
- See salvestab seansiga seotud teave.
Kuidas SQL-is muutujat DEKLAREERIDA
- Enne mis tahes muutuja kasutamist partiis või protseduuris peate tegema deklareerida muutuja.
- DECLARE käsku kasutatakse muutuja DECLARE jaoks, mis toimib mälukoha kohahoidjana.
- Ainult siis, kui deklaratsioon on tehtud, saab muutujat kasutada partii või protseduuri järgmises osas.
TSQL-i süntaks:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
Reeglid:
- Initsialiseerimine on deklareerimisel valikuline.
- Vaikimisi lähtestab DECLARE muutuja väärtuseks NULL.
- Märksõna „AS” kasutamine on valikuline.
- Rohkem kui ühe kohaliku muutuja deklareerimiseks kasutage koma pärast esimest kohaliku muutuja määratlust ja seejärel määrake järgmise kohaliku muutuja nimi ja andmetüüp.
Näited muutuja deklareerimisest
Päring: AS-iga
DECLARE @COURSE_ID AS INT;
Päring: ilma AS-ita
DECLARE @COURSE_NAME VARCHAR (10);
Päring: DECLARE kaks muutujat
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
SQL-muutujale väärtuse määramine
Muutujale saate määrata väärtuse järgmiselt kolm kuidas:
- Muutujate deklareerimisel märksõna DECLARE abil.
- SET-i kasutamine
- Kasutades SELECT
Vaatame üksikasjalikult kõiki kolme võimalust:
Muutujate deklareerimisel märksõna DECLARE abil
T-SQL süntaks:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
Siin saame pärast andmetüüpi kasutada '=', millele järgneb omistatav väärtus
Päring:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
SQL SET VARIABLE kasutamine
Mõnikord tahame deklareerimise ja initsialiseerimise lahus hoida. SET-i saab kasutada muutujale väärtuste määramiseks, pärast muutuja deklareerimist. Allpool on erinevad viisid väärtuste määramiseks SET-i abil:
Näide: muutujale väärtuse määramine SET abil
süntaksit:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
Päring:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
Näide: määrake väärtus mitu muutujat kasutades SET.
süntaksit:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
Reegel: Ühte SET-märksõna saab kasutada ainult väärtuse määramiseks üks muutuja.
Päring:
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Näide: a-ga muutujale väärtuse määramine Skalaarne alampäring kasutades SET
süntaksit:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
Reeglid:
- Lisage päring sulgudesse.
- Päring peaks olema skalaarpäring. Skalaarpäring on päring, mille tulemused on ainult üks rida ja üks veerg. Vastasel juhul ilmub päringule tõrketeade.
- Kui päring tagastab nulli rida, määratakse muutuja väärtuseks EMPTY, st NULL.
Eeldus: Oletame, et meil on tabel "Guru99" kahe veeruga, nagu allpool näidatud:
Edaspidistes õpetustes kasutame tabelit 'Guru99'
Näide 1: Kui alampäring tagastab tulemuseks ühe rea.
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
Näide 2: kui alampäring tagastab tulemuseks nullirea
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Sel konkreetsel juhul on muutuja väärtus EMPTY, st NULL.
SQL SELECT VARIABLE kasutamine
Täpselt nagu SET, saame muutujatele väärtuste määramiseks kasutada ka valikut SELECT, muutuja deklareerimiseks kasutades DECLARE. Allpool on erinevad võimalused väärtuse määramiseks funktsiooni SELECT abil.
Näide: muutujale väärtuse määramine SELECT abil
süntaksit:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
Päring:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
Näide: SELECT abil väärtuse määramine mitmele muutujale
süntaksit:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
Reeglid: Erinevalt SET-st saab väärtuse määramiseks kasutada valikut SELECT mitmele muutujale eraldatud koma.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Näide: Alampäringuga muutujale väärtuse määramine SELECT abil
süntaksit:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
Reeglid:
- Lisage päring sulgudesse.
- Päring peaks olema skalaarpäring. Skalaarpäring on päring, mille tulemuseks on üks rida ja üks veerg. Vastasel juhul ilmub päringule tõrketeade.
- Kui päring tagastab null rida, siis on muutuja EMPTY, st NULL.
- Mõelge uuesti meie "Guru99" tabelile
Näide 1: Kui alampäring tagastab tulemuseks ühe rea.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
Näide 2: Kui alampäring tagastab tulemuseks nulli rea
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Sel konkreetsel juhul on muutuja EMPTY, st NULL.
Näide 3: Määrake muutujale väärtus tavalise SELECT-lausega.
süntaksit:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
Reeglid:
- Erinevalt SET-st, kui päringu tulemuseks on mitu rida, määratakse muutuja väärtuseks viimase rea väärtus.
- Kui päring tagastab nulli rida, määratakse muutuja väärtuseks EMPTY, st NULL.
Päring 1: päring tagastab ühe rea.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
Päring 2: päring tagastab mitu rida.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
Sel erijuhul on muutuja väärtus seatud viimase rea väärtusele.
Päring 3: päring tagastab null rida.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
Sel konkreetsel juhul on muutuja EMPTY, st NULL.
Muud SQL-muutujate näited
Muutuja kasutamine päringus
Päring:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
Huvitavaid fakte SQL Serveri muutujate kohta!
- Kohalikku muutujat saab kuvada nii PRINT kui ka SELECT COMMAND abil
- Tabel Andmetüüp ei luba deklareerimisel AS-i kasutada.
- SET vastab ANSI standarditele, samas kui SELECT mitte.
- Lubatud on ka kohaliku muutuja loomine nimega @. Võime seda deklareerida näiteks järgmiselt:
'DECLARE @@ as VARCHAR (10)'
kokkuvõte
- Muutujad on objekt, mis toimib kohahoidjana.
- Muutujaid on kahte tüüpi: kohalik ja globaalne
- Muutuja saab määrata kolmel järgmisel viisil: Kasutades 1) DECLARE 2) Kasutades SET 3) KASUTAMINE SELECT














