SQL varijable: deklaracija, postavljanje i odabir varijable SQL Servera

Što je varijabla u SQL Serveru?

U MS SQL-u, varijable su objekti koji djeluju kao rezervirano mjesto za memorijsku lokaciju. Varijabla drži jednu vrijednost podataka.

Vrste varijabli u SQL-u: lokalne, globalne

MS SQL ima dvije vrste varijabli:

  1. Lokalna varijabla
  2. Globalna varijabla.

Međutim, korisnik može stvoriti samo lokalnu varijablu.

Donja slika objašnjava dvije vrste dostupnih varijabli MS SQL poslužitelj.

SQL varijable
Vrsta varijabli u SQL Serveru

Lokalna varijabla

  • Korisnik deklarira lokalnu varijablu.
  • Prema zadanim postavkama, lokalna varijabla počinje s @.
  • Svaki opseg lokalne varijable ima ograničenje na trenutna serija ili postupak unutar bilo koje sesije.

Globalna varijabla

  • Sustav održava globalnu varijablu. Korisnik ih ne može prijaviti.
  • Globalna varijabla počinje s @@
  • Pohranjuje informacije vezane uz sesiju.

Kako DEKLARIRATI varijablu u SQL-u

  • Prije korištenja bilo koje varijable u seriji ili postupku, trebate deklarirati varijablu.
  • Naredba DECLARE koristi se za DEKLIRANJE varijable koja služi kao rezervirano mjesto za memorijsku lokaciju.
  • Tek nakon što je deklaracija napravljena, varijabla se može koristiti u sljedećem dijelu serije ili postupka.

TSQL sintaksa:

DECLARE  { @LOCAL_VARIABLE[AS] data_type  [ = value ] }

Pravila:

  • Inicijalizacija je neobavezna stvar prilikom deklariranja.
  • Prema zadanim postavkama, DECLARE inicijalizira varijablu na NULL.
  • Upotreba ključne riječi 'AS' nije obavezna.
  • Da biste deklarirali više od jedne lokalne varijable, upotrijebite zarez nakon definicije prve lokalne varijable, a zatim definirajte naziv sljedeće lokalne varijable i tip podataka.

Primjeri deklariranja varijable

Upit: s 'AS'

DECLARE @COURSE_ID AS INT;

Upit: Bez 'AS'

DECLARE @COURSE_NAME VARCHAR (10);

Upit: DEKLIRAJ dvije varijable

DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);

Dodjeljivanje vrijednosti SQL varijabli

Možete dodijeliti vrijednost varijabli na sljedeći način tri načina:

  1. Tijekom deklaracije varijable pomoću ključne riječi DECLARE.
  2. Korištenje SET
  3. Korištenje SELECT

Pogledajmo detaljno sva tri načina:

Tijekom deklaracije varijable pomoću ključne riječi DECLARE

T-SQL sintaksa:

DECLARE { @Local_Variable [AS] Datatype [ = value ] }

Ovdje nakon tipa podataka možemo koristiti '=' nakon kojeg slijedi vrijednost koju treba dodijeliti

upita:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Dodjeljivanje vrijednosti SQL varijabli

Korištenje SQL SET VARIABLE

Ponekad želimo držati deklaraciju i inicijalizaciju odvojene. SET se može koristiti za dodjeljivanje vrijednosti varijabli nakon deklariranja varijable. U nastavku su različiti načini dodjele vrijednosti pomoću SET-a:

Primjer: Dodjeljivanje vrijednosti varijabli pomoću SET

Sintaksa:

DECLARE @Local_Variable <Data_Type>
SET @Local_Variable =  <Value>

upita:

DECLARE @COURSE_ID AS INT
SET @COURSE_ID = 5
PRINT @COURSE_ID

SQL SET VARIJABLA

Primjer: Dodijelite vrijednost više varijabli koristeći SET.

Sintaksa:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>,
SET @Local_Variable_1 = <Value_1>
SET @Local_Variable_2 = <Value_2>

Pravilo: Jedna SET ključna riječ može se koristiti samo za dodjelu vrijednosti jedna varijabla.

upita:

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 VARIJABLA

Primjer: Dodjeljivanje vrijednosti varijabli s a Skalarni podupit koristeći SET

Sintaksa:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)

Pravila:

  • Stavite upit u zagradu.
  • Upit bi trebao biti skalarni upit. Skalarni upit je upit s rezultatima u obliku samo jednog retka i jednog stupca. U suprotnom, upit će izbaciti pogrešku.
  • Ako upit vrati nula redaka, tada je varijabla postavljena na EMPTY, tj. NULL.

Pretpostavka: Pretpostavimo da imamo tablicu kao 'Guru99' s dva stupca kao što je prikazano u nastavku:

SQL SET VARIJABLA

U daljnjim uputama koristit ćemo tablicu 'Guru99'

Primjer 1: Kada podupit vrati jedan redak kao rezultat.

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3)
PRINT @COURSE_NAME

SQL SET VARIJABLA

Primjer 2: Kada podupit kao rezultat vrati nulti redak

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

U ovom konkretnom slučaju vrijednost varijable je PRAZNA, tj. NULL.

SQL SET VARIJABLA

Korištenje SQL SELECT VARIABLE

Baš kao i SET, također možemo koristiti SELECT za dodjeljivanje vrijednosti varijablama, nakon deklariranja varijable pomoću DECLARE. U nastavku su različiti načini za dodjeljivanje vrijednosti pomoću SELECT:

Primjer: Dodjeljivanje vrijednosti varijabli pomoću SELECT

Sintaksa:

DECLARE @LOCAL_VARIABLE <Data_Type>
SELECT @LOCAL_VARIABLE = <Value>

upita:

DECLARE @COURSE_ID INT
SELECT @COURSE_ID = 5
PRINT @COURSE_ID

SQL SELECT VARIJABLA

Primjer: Dodjeljivanje vrijednosti višestrukoj varijabli pomoću SELECT

Sintaksa:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>,  @Local_Variable _2 = <Value_2>

Pravila: Za razliku od SET, SELECT se može koristiti za dodjeljivanje vrijednosti na više varijabli odvojen od zarez.

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 VARIJABLA

Primjer: Dodjeljivanje vrijednosti varijabli s podupitom pomoću SELECT

Sintaksa:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)

Pravila:

  • Stavite upit u zagradu.
  • Upit bi trebao biti skalarni upit. Skalarni upit je upit s rezultatom kao jednim redom i jednim stupcem. U suprotnom, upit će izbaciti pogrešku.
  • Ako upit vrati nula redaka, tada je varijabla PRAZNA, tj. NULL.
  • Ponovno razmotrite našu tablicu 'Guru99'

Primjer 1: Kada podupit vrati jedan redak kao rezultat.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1)
PRINT @COURSE_NAME

SQL SELECT VARIJABLA

Primjer 2: Kada podupit kao rezultat vrati nulti redak

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

U ovom konkretnom slučaju, varijabla je EMPTY, tj. NULL.

SQL SELECT VARIJABLA

Primjer 3: Dodijelite vrijednost varijabli uobičajenom naredbom SELECT.

Sintaksa:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>

Pravila:

  • Za razliku od SET-a, ako upit rezultira s više redaka, tada se vrijednost varijable postavlja na vrijednost posljednjeg retka.
  • Ako upit vrati nula redaka, tada je varijabla postavljena na EMPTY, tj. NULL.

Upit 1: Upit vraća jedan red.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3
PRINT @COURSE_NAME

SQL SELECT VARIJABLA

Upit 2: Upit vraća više redaka.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99
PRINT @COURSE_NAME

U ovom posebnom slučaju, vrijednost varijable je postaviti na vrijednost posljednjeg reda.

SQL SELECT VARIJABLA

Upit 3: Upit vraća nula redaka.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5
PRINT @COURSE_NAME

U ovom konkretnom slučaju varijabla je PRAZNA, tj. NULL.

SQL SELECT VARIJABLA

Ostali primjeri SQL varijabli

Korištenje varijable u upitu

upita:

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

Druga SQL varijabla

Zanimljive činjenice o varijablama SQL Servera!

  • Lokalna varijabla može se prikazati korištenjem PRINT kao i SELECT COMMAND
  • Vrsta podataka tablice ne dopušta korištenje 'AS' tijekom deklaracije.
  • SET je u skladu s ANSI standardima, dok SELECT nije.
  • Stvaranje lokalne varijable s imenom kao @ također je dopušteno. Možemo to deklarirati kao, na primjer:
    'DECLARE @@ as VARCHAR (10)'
    

rezime

  • Varijable su objekti koji djeluju kao rezervirano mjesto.
  • Postoje dvije vrste varijabli: lokalne i globalne
  • Varijablu možemo dodijeliti na sljedeća tri načina: koristeći 1) DECLARE 2) koristeći SET 3) koristeći SELECT