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

Saลพmite ovu objavu uz: