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:

  1. Kohalik muutuja
  2. Globaalne muutuja.

Kuid kasutaja saab luua ainult kohaliku muutuja.

Alloleval joonisel selgitatakse kahte tüüpi muutujaid, mis on saadaval MS SQL server.

SQL-i muutujad
Muutujate tüüp SQL Serveris

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:

  1. Muutujate deklareerimisel märksõna DECLARE abil.
  2. SET-i kasutamine
  3. 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-muutujale väärtuse määramine

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

SQL SET VARIABLE

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

SQL SET VARIABLE

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:

SQL SET VARIABLE

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

SQL SET VARIABLE

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 SET VARIABLE

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

SQL SELECT VARIABLE

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

SQL SELECT VARIABLE

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

SQL SELECT VARIABLE

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.

SQL SELECT VARIABLE

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

SQL SELECT VARIABLE

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.

SQL SELECT VARIABLE

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.

SQL SELECT VARIABLE

Muud SQL-muutujate näited

Muutuja kasutamine päringus

Päring:

DECLARE @COURSE_ID Int = 1
SELECT * from Guru99 where Tutorial_id = @COURSE_ID

Muu SQL-muutuja

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

Võta see postitus kokku järgmiselt: