SQL-variabler: SQL Server erklærer, indstil og vælg variabel

Hvad er en variabel i SQL Server?

I MS SQL er variabler det objekt, der fungerer som en pladsholder til en hukommelsesplacering. Variabel hold enkelt dataværdi.

Variabeltyper i SQL: Lokal, Global

MS SQL har to typer variabler:

  1. Lokal variabel
  2. Global variabel.

Brugeren kan dog kun oprette en lokal variabel.

Nedenstående figur forklarer to typer variabler tilgængelige i MS SQL server.

SQL-variabler
Variabletype i SQL Server

Lokal variabel

  • En bruger erklærer den lokale variabel.
  • Som standard starter en lokal variabel med @.
  • Hver lokal variabel rækkevidde har begrænsningen til nuværende batch eller procedure inden for en given session.

Global variabel

  • Systemet vedligeholder den globale variabel. En bruger kan ikke erklære dem.
  • Den globale variabel starter med @@
  • Det gemmer session relateret information.

Sådan ERKLÆRER du en variabel i SQL

  • Før du bruger en variabel i batch eller procedure, skal du erklære variablen.
  • DECLARE-kommandoen bruges til at DECLARE variabel, der fungerer som en pladsholder for hukommelsesplaceringen.
  • Først når deklarationen er foretaget, kan en variabel bruges i den efterfølgende del af batch eller procedure.

TSQL syntaks:

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

Regler:

  • Initialisering er en valgfri ting, mens du erklærer.
  • Som standard initialiserer DECLARE variabel til NULL.
  • Det er valgfrit at bruge søgeordet 'AS'.
  • For at erklære mere end én lokal variabel skal du bruge et komma efter den første lokale variabeldefinition og derefter definere det næste lokale variabelnavn og datatype.

Eksempler på at deklarere en variabel

Forespørgsel: Med 'AS'

DECLARE @COURSE_ID AS INT;

Forespørgsel: Uden 'AS'

DECLARE @COURSE_NAME VARCHAR (10);

Forespørgsel: ERKLÆR to variable

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

Tildeling af en værdi til SQL-variabel

Du kan tildele en værdi til en variabel i det følgende tre måder:

  1. Under variabel erklæring ved hjælp af DECLARE nøgleord.
  2. Brug af SET
  3. Brug af SELECT

Lad os se nærmere på alle tre måder:

Under variabel erklæring ved hjælp af DECLARE nøgleord

T-SQL syntaks:

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

Her, efter datatype, kan vi bruge '=' efterfulgt af værdi, der skal tildeles

Forespørgsel:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Tildeling af en værdi til SQL-variabel

Brug af SQL SET VARIABLE

Nogle gange ønsker vi at holde erklæring og initialisering adskilt. SET kan bruges til at tildele værdier til variablen, efter at deklarere en variabel. Nedenfor er de forskellige måder at tildele værdier ved hjælp af SET:

Eksempel: Tildeling af en værdi til en variabel ved hjælp af SET

Syntaks:

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

Forespørgsel:

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

SQL SET VARIABEL

Eksempel: Tildel en værdi til flere variabler ved hjælp af SET.

Syntaks:

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

Regel: Et SET nøgleord kan kun bruges til at tildele en værdi til én variabel.

Forespørgsel:

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 VARIABEL

Eksempel: Tildeling af en værdi til en variabel med en Skalær underforespørgsel ved hjælp af SET

Syntaks:

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

Regler:

  • Indsæt forespørgslen i parentes.
  • Forespørgslen skal være en skalær forespørgsel. En skalær forespørgsel er en forespørgsel med resultater som kun én række og én kolonne. Ellers vil forespørgslen give en fejl.
  • Hvis forespørgslen returnerer nul rækker, sættes variablen til EMPTY, dvs. NULL.

Antagelse: Antag, at vi har tabellen som 'Guru99' med to kolonner som vist nedenfor:

SQL SET VARIABEL

Vi vil bruge 'Guru99'-tabellen i de yderligere tutorials

Eksempel 1: Når underforespørgsel returnerer en række som et resultat.

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

SQL SET VARIABEL

Eksempel 2: Når underforespørgsel returnerer nul række som et resultat

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

I dette særlige tilfælde er variabelværdien EMPTY, dvs. NULL.

SQL SET VARIABEL

Brug af SQL SELECT VARIABLE

Ligesom SET kan vi også bruge SELECT til at tildele værdier til variablerne, efter at deklarere en variabel ved hjælp af DECLARE. Nedenfor er der forskellige måder at tildele en værdi ved hjælp af SELECT:

Eksempel: Tildeling af en værdi til en variabel ved hjælp af SELECT

Syntaks:

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

Forespørgsel:

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

SQL VÆLG VARIABEL

Eksempel: Tildeling af en værdi til flere variable ved hjælp af SELECT

Syntaks:

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

Regler: I modsætning til SET kan SELECT bruges til at tildele en værdi til flere variable adskilt af komma.

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

SQL VÆLG VARIABEL

Eksempel: Tildeling af værdien til en variabel med en underforespørgsel ved hjælp af SELECT

Syntaks:

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

Regler:

  • Indsæt forespørgslen i parentes.
  • Forespørgslen skal være en skalær forespørgsel. Den skalære forespørgsel er forespørgslen med resultatet som én række og én kolonne. Ellers vil forespørgslen give en fejl.
  • Hvis forespørgslen returnerer nul rækker, er variablen EMPTY, dvs. NULL.
  • Genovervej vores 'Guru99'-tabel

Eksempel 1: Når underforespørgsel returnerer en række som et resultat.

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

SQL VÆLG VARIABEL

Eksempel 2: Når underforespørgsel returnerer nul række som et resultat

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

I dette særlige tilfælde er variablen til EMPTY, dvs. NULL.

SQL VÆLG VARIABEL

Eksempel 3: Tildel en værdi til en variabel med en almindelig SELECT-sætning.

Syntaks:

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

Regler:

  • I modsætning til SET, hvis forespørgslen resulterer i flere rækker, indstilles variabelværdien til værdien af ​​den sidste række.
  • Hvis forespørgslen returnerer nul rækker, sættes variablen til EMPTY, dvs. NULL.

Forespørgsel 1: Forespørgslen returnerer én række.

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

SQL VÆLG VARIABEL

Forespørgsel 2: Forespørgslen returnerer flere rækker.

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

I dette specielle tilfælde er variabel værdi indstillet til værdien af ​​den sidste række.

SQL VÆLG VARIABEL

Forespørgsel 3: Forespørgslen returnerer nul rækker.

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

I dette særlige tilfælde er variablen EMPTY, dvs. NULL.

SQL VÆLG VARIABEL

Andre SQL-variable eksempler

Brug af variabel i forespørgslen

Forespørgsel:

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

Anden SQL-variabel

Interessante fakta om SQL Server-variabler!

  • En lokal variabel kan vises ved hjælp af PRINT samt SELECT COMMAND
  • Tabel Datatype tillader ikke brug af 'AS' under indberetning.
  • SET overholder ANSI-standarder, hvorimod SELECT ikke gør.
  • Det er også tilladt at oprette en lokal variabel med navnet @. Vi kan erklære det som for eksempel:
    'DECLARE @@ as VARCHAR (10)'
    

Resumé

  • Variabler er det objekt, der fungerer som en pladsholder.
  • Der findes to typer variabler: Lokale og Globale
  • Vi kan tildele variablen på følgende tre måder: Mens du bruger 1) DECLARE 2) Brug af SET 3) BRUG AF SELECT