SQL-variabler: SQL Server-erklære, angi og velge variabel

Hva er en variabel i SQL Server?

I MS SQL er variabler objektet som fungerer som en plassholder til en minneplassering. Variabel hold enkelt dataverdi.

Variabletyper i SQL: Lokal, Global

MS SQL har to typer variabler:

  1. Lokal variabel
  2. Global variabel.

Imidlertid kan brukeren bare opprette en lokal variabel.

Figuren nedenfor forklarer to typer variabler tilgjengelig i MS SQL server.

SQL-variabler
Type variabler i SQL Server

Lokal variabel

  • En bruker erklærer den lokale variabelen.
  • Som standard starter en lokal variabel med @.
  • Hvert lokale variabelomfang har begrensningen til gjeldende batch eller prosedyre i en gitt økt.

Global variabel

  • Systemet opprettholder den globale variabelen. En bruker kan ikke deklarere dem.
  • Den globale variabelen starter med @@
  • Den lagrer øktrelatert informasjon.

Hvordan ERKLÆRE en variabel i SQL

  • Før du bruker en variabel i batch eller prosedyre, må du erklære variabelen.
  • DECLARE-kommandoen brukes til DECLARE-variabelen som fungerer som en plassholder for minneplasseringen.
  • Først når erklæringen er laget, kan en variabel brukes i den påfølgende delen av batch eller prosedyre.

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.
  • Å bruke søkeordet 'AS' er valgfritt.
  • For å deklarere mer enn én lokal variabel, bruk et komma etter den første lokale variabeldefinisjonen, og definer deretter det neste lokale variabelnavnet og data-type.

Eksempler på å deklarere en variabel

Spørring: Med 'AS'

DECLARE @COURSE_ID AS INT;

Spørring: Uten 'AS'

DECLARE @COURSE_NAME VARCHAR (10);

Spørring: ERKLÆR to variabler

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

Tilordne en verdi til SQL-variabel

Du kan tilordne en verdi til en variabel i det følgende tre måter:

  1. Under variabeldeklarasjon med DECLARE nøkkelord.
  2. Ved hjelp av SET
  3. Ved å bruke SELECT

La oss se på alle tre måtene i detalj:

Under variabeldeklarasjon med DECLARE nøkkelord

T-SQL-syntaks:

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

Her, etter datatype, kan vi bruke '=' etterfulgt av verdi som skal tildeles

Spørsmål:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Tilordne en verdi til SQL-variabel

Bruker SQL SET VARIABLE

Noen ganger ønsker vi å holde erklæring og initialisering atskilt. SET kan brukes til å tilordne verdier til variabelen, etter deklarering av en variabel. Nedenfor er de forskjellige måtene å tilordne verdier ved å bruke SET:

Eksempel: Tilordne en verdi til en variabel ved hjelp av SET

Syntaks:

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

Spørsmål:

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

SQL SET VARIABEL

Eksempel: Tilordne en verdi til flere variabler ved å bruke 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: Ett SET-nøkkelord kan kun brukes til å tilordne en verdi én variabel.

Spørsmål:

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: Tilordne en verdi til en variabel med en Skalær underspørring ved å bruke 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:

  • Sett søket i parentes.
  • Spørringen skal være et skalært søk. Et skalært søk er et søk med resultater som bare én rad og én kolonne. Ellers vil spørringen gi en feil.
  • Hvis spørringen returnerer null rader, settes variabelen til EMPTY, dvs. NULL.

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

SQL SET VARIABEL

Vi vil bruke 'Guru99'-tabellen i de videre opplæringene

Eksempel 1: Når subquery returnerer én rad 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 underspørring returnerer null rad 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 spesielle tilfellet er variabelverdien EMPTY, dvs. NULL.

SQL SET VARIABEL

Bruker SQL SELECT VARIABLE

Akkurat som SET, kan vi også bruke SELECT for å tilordne verdier til variablene, etter å deklarere en variabel ved å bruke DECLARE. Nedenfor er forskjellige måter å tilordne en verdi ved å bruke SELECT:

Eksempel: Tilordne en verdi til en variabel ved å bruke SELECT

Syntaks:

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

Spørsmål:

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

SQL VELG VARIABEL

Eksempel: Tilordne en verdi til flere variabler ved å bruke 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 motsetning til SET, kan SELECT brukes til å tilordne en verdi til flere variabler adskilt av 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 VELG VARIABEL

Eksempel: Tilordne verdien til en variabel med en underspørring ved å bruke 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:

  • Legg ved spørringen i parentes.
  • Spørringen skal være et skalært søk. Den skalære spørringen er spørringen med resultatet som én rad og én kolonne. Ellers vil spørringen gi en feil.
  • Hvis spørringen returnerer null rader, er variabelen EMPTY, dvs. NULL.
  • Vurder vår 'Guru99'-tabell på nytt

Eksempel 1: Når subquery returnerer én rad som et resultat.

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

SQL VELG VARIABEL

Eksempel 2: Når subquery returnerer null rad 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 spesielle tilfellet er variabelen til EMPTY, dvs. NULL.

SQL VELG VARIABEL

Eksempel 3: Tilordne en verdi til en variabel med en vanlig SELECT-setning.

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 motsetning til SET, hvis spørringen resulterer i flere rader, settes variabelverdien til verdien av den siste raden.
  • Hvis spørringen returnerer null rader, settes variabelen til EMPTY, dvs. NULL.

Spørring 1: Spørringen returnerer én rad.

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

SQL VELG VARIABEL

Spørring 2: Spørringen returnerer flere rader.

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

I dette spesielle tilfellet er variabelverdi satt til verdien av den siste raden.

SQL VELG VARIABEL

Spørring 3: Spørringen returnerer null rader.

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

I dette spesielle tilfellet er variabelen EMPTY, dvs. NULL.

SQL VELG VARIABEL

Andre SQL-variable eksempler

Bruker variabel i spørringen

Spørsmål:

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

Annen SQL-variabel

Interessante fakta om SQL Server-variabler!

  • En lokal variabel kan vises ved å bruke PRINT samt SELECT COMMAND
  • Tabell Datatype tillater ikke bruk av 'AS' under deklarering.
  • SET overholder ANSI-standarder, mens SELECT ikke gjør det.
  • Det er også tillatt å lage en lokal variabel med navnet @. Vi kan erklære det som for eksempel:
    'DECLARE @@ as VARCHAR (10)'
    

Sammendrag

  • Variabler er objektet som fungerer som en plassholder.
  • Det finnes to typer variabler: Lokale og Globale
  • Vi kan tilordne variabelen på følgende tre måter: Mens du bruker 1) DECLARE 2) Bruker SET 3) BRUKER SELECT