Variabile SQL: SQL Server Declara, Setează și Selectează Variabile

Ce este o variabilă în SQL Server?

În MS SQL, variabilele sunt obiectul care acționează ca un substituent pentru o locație de memorie. Variabila păstrează o singură valoare a datelor.

Tipuri de variabile în SQL: Local, Global

MS SQL are două tipuri de variabile:

  1. Variabilă locală
  2. Variabila globala.

Cu toate acestea, utilizatorul poate crea doar o variabilă locală.

Figura de mai jos explică două tipuri de variabile disponibile în Server MS SQL.

Variabile SQL
Tipul de variabile în SQL Server

Variabilă locală

  • Un utilizator declară variabila locală.
  • În mod implicit, o variabilă locală începe cu @.
  • Fiecare domeniu de aplicare a variabilei locale are restricția la lotul sau procedura curentă în cadrul oricărei sesiuni date.

Variabilă globală

  • Sistemul menține variabila globală. Un utilizator nu le poate declara.
  • Variabila globală începe cu @@
  • Se stochează informații legate de sesiune.

Cum să DECLARE o variabilă în SQL

  • Înainte de a utiliza orice variabilă în lot sau procedură, trebuie declara variabila.
  • Comanda DECLARE este folosită pentru a DECLARE variabila care acționează ca un substituent pentru locația de memorie.
  • Doar odată ce declarația este făcută, o variabilă poate fi utilizată în partea ulterioară a lotului sau a procedurii.

Sintaxa TSQL:

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

reguli:

  • Inițializarea este un lucru opțional în timpul declarării.
  • În mod implicit, DECLARE inițializează variabila la NULL.
  • Utilizarea cuvântului cheie „AS” este opțională.
  • Pentru a declara mai multe variabile locale, utilizați o virgulă după prima definiție a variabilei locale, apoi definiți următorul nume de variabilă locală și tip de date.

Exemple de declarare a unei variabile

Interogare: cu „AS”

DECLARE @COURSE_ID AS INT;

Interogare: fără „AS”

DECLARE @COURSE_NAME VARCHAR (10);

Interogare: DECLARE două variabile

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

Atribuirea unei valori variabilei SQL

Puteți atribui o valoare unei variabile în cele ce urmează trei modalități de:

  1. În timpul declarației variabilei folosind cuvântul cheie DECLARE.
  2. Folosind SET
  3. Folosind SELECT

Să aruncăm o privire la toate cele trei moduri în detaliu:

În timpul declarației variabilei folosind cuvântul cheie DECLARE

Sintaxa T-SQL:

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

Aici, după tipul de date putem folosi „=” urmat de valoarea de atribuit

Solicitare:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Atribuirea unei valori variabilei SQL

Folosind SQL SET VARIABLE

Uneori dorim să păstrăm separat declarația și inițializarea. SET poate fi folosit pentru a atribui valori variabilei, după declararea unei variabile. Mai jos sunt diferitele modalități de a atribui valori folosind SET:

Exemplu: Atribuirea unei valori unei variabile folosind SET

Sintaxă:

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

Solicitare:

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

SQL SET VARIABILĂ

Exemplu: Atribuiți o valoare lui variabile multiple folosind SET.

Sintaxă:

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

Regulă: Un cuvânt cheie SET poate fi folosit pentru a atribui o valoare numai lui o variabilă.

Solicitare:

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 VARIABILĂ

Exemplu: Atribuirea unei valori unei variabile cu a Subinterogare scalară folosind SET

Sintaxă:

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

reguli:

  • Introduceți interogarea între paranteze.
  • Interogarea ar trebui să fie o interogare scalară. O interogare scalară este o interogare cu rezultate pe un singur rând și o coloană. În caz contrar, interogarea va genera o eroare.
  • Dacă interogarea returnează zero rânduri, atunci variabila este setată la EMPTY, adică NULL.

Presupunere: Să presupunem că avem tabelul ca „Guru99” cu două coloane, așa cum este afișat mai jos:

SQL SET VARIABILĂ

Vom folosi tabelul „Guru99” în tutorialele ulterioare

Exemplu 1: Atunci când subinterogarea returnează un rând ca rezultat.

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

SQL SET VARIABILĂ

Exemplul 2: Când subinterogarea returnează zero rând ca rezultat

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

În acest caz particular, valoarea variabilei este EMPTY, adică NULL.

SQL SET VARIABILĂ

Folosind SQL SELECT VARIABLE

La fel ca SET, putem folosi și SELECT pentru a atribui valori variabilelor, după declararea unei variabile folosind DECLARE. Mai jos sunt diferite moduri de a atribui o valoare folosind SELECT:

Exemplu: Atribuirea unei valori unei variabile folosind SELECT

Sintaxă:

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

Solicitare:

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

SQL SELECTARE VARIABILĂ

Exemplu: Atribuirea unei valori mai multor variabile folosind SELECT

Sintaxă:

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

reguli: Spre deosebire de SET, SELECT poate fi folosit pentru a atribui o valoare la mai multe variabile separate de virgulă.

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

SQL SELECTARE VARIABILĂ

Exemplu: Atribuirea valorii unei variabile cu o subinterogare folosind SELECT

Sintaxă:

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

reguli:

  • Introduceți interogarea în paranteză.
  • Interogarea ar trebui să fie o interogare scalară. Interogarea scalară este interogarea cu rezultatul pe un rând și o coloană. În caz contrar, interogarea va genera o eroare.
  • Dacă interogarea returnează zero rânduri, atunci variabila este EMPTY, adică NULL.
  • Reconsiderați tabelul nostru „Guru99”.

Exemplu 1: Atunci când subinterogarea returnează un rând ca rezultat.

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

SQL SELECTARE VARIABILĂ

Exemplu 2: Când subinterogarea returnează zero rând ca rezultat

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

În acest caz particular, variabila este la EMPTY, adică NULL.

SQL SELECTARE VARIABILĂ

Exemplu 3: Atribuiți o valoare unei variabile cu o instrucțiune obișnuită SELECT.

Sintaxă:

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

reguli:

  • Spre deosebire de SET, dacă interogarea are ca rezultat mai multe rânduri, atunci valoarea variabilei este setată la valoarea ultimului rând.
  • Dacă interogarea returnează zero rânduri, atunci variabila este setată la EMPTY, adică NULL.

Interogarea 1: interogarea returnează un rând.

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

SQL SELECTARE VARIABILĂ

Interogarea 2: interogarea returnează mai multe rânduri.

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

În acest caz special, valoarea variabilă este setată la valoarea ultimului rând.

SQL SELECTARE VARIABILĂ

Interogarea 3: interogarea returnează zero rânduri.

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

În acest caz particular, variabila este EMPTY, adică NULL.

SQL SELECTARE VARIABILĂ

Alte exemple de variabile SQL

Utilizarea variabilei în interogare

Solicitare:

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

Altă variabilă SQL

Fapte interesante despre variabilele SQL Server!

  • O variabilă locală poate fi afișată folosind PRINT, precum și SELECT COMMAND
  • Tipul de date de tabel nu permite utilizarea „AS” în timpul declarației.
  • SET respectă standardele ANSI, în timp ce SELECT nu.
  • Crearea unei variabile locale cu numele @ este de asemenea permisă. O putem declara ca, de exemplu:
    'DECLARE @@ as VARCHAR (10)'
    

Rezumat

  • Variabilele sunt obiectul care acționează ca substituent.
  • Există două tipuri de variabile: locale și globale
  • Putem aloca variabila în următoarele trei moduri: În timpul utilizării 1) DECLARE 2) Folosind SET 3) UTILIZARE SELECT

Rezumați această postare cu: