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:
- Lokal variabel
- Global variabel.
Imidlertid kan brukeren bare opprette en lokal variabel.
Figuren nedenfor forklarer to typer variabler tilgjengelig i MS 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:
- Under variabeldeklarasjon med DECLARE nøkkelord.
- Ved hjelp av SET
- 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
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
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
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:
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
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.
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
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
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
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.
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
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.
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.
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
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