SQL-variabelen: SQL Server declareert, stelt in en selecteert variabele

Wat is een variabele in SQL Server?

In MS SQL zijn variabelen het object dat fungeert als tijdelijke aanduiding voor een geheugenlocatie. Variabele bevat één gegevenswaarde.

Variabeletypen in SQL: lokaal, globaal

MS SQL heeft twee soorten variabelen:

  1. Lokale variabele
  2. Globale variabele.

De gebruiker kan echter alleen een lokale variabele maken.

Onderstaande afbeelding legt twee soorten variabelen uit die beschikbaar zijn in MS SQL-server.

SQL-variabelen
Type variabelen in SQL Server

Lokale variabele

  • Een gebruiker declareert de lokale variabele.
  • Standaard begint een lokale variabele met @.
  • Elke lokale variabele scope heeft de beperking tot de huidige batch of procedure binnen een bepaalde sessie.

Globale variabele

  • Het systeem onderhoudt de globale variabele. Een gebruiker kan deze niet declareren.
  • De globale variabele begint met @@
  • Het slaat op sessiegerelateerde informatie.

Hoe een variabele in SQL te DECLARE

  • Voordat u een variabele in batch of procedure gebruikt, moet u dit doen declareer de variabele.
  • DECLARE-opdracht wordt gebruikt voor de DECLARE-variabele die fungeert als tijdelijke aanduiding voor de geheugenlocatie.
  • Pas nadat de aangifte is gedaan, kan een variabele worden gebruikt in het volgende deel van de batch of procedure.

TSQL-syntaxis:

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

Reglement:

  • Initialisatie is een optioneel iets tijdens het declareren.
  • DECLARE initialiseert de variabele standaard naar NULL.
  • Het gebruik van het trefwoord 'AS' is optioneel.
  • Om meer dan één lokale variabele te declareren, gebruikt u een komma na de eerste definitie van de lokale variabele en definieert u vervolgens de naam van de volgende lokale variabele en data type.

Voorbeelden van het declareren van een variabele

Zoekopdracht: met 'AS'

DECLARE @COURSE_ID AS INT;

Zoekopdracht: zonder 'AS'

DECLARE @COURSE_NAME VARCHAR (10);

Query: DECLARE twee variabelen

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

Een waarde toewijzen aan SQL-variabele

U kunt op de volgende manier een waarde aan een variabele toewijzen drie manieren:

  1. Tijdens het declareren van variabelen met het trefwoord DECLARE.
  2. SET gebruiken
  3. Met behulp van SELECT

Laten we alle drie de manieren in detail bekijken:

Tijdens het declareren van variabelen met het trefwoord DECLARE

T-SQL-syntaxis:

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

Hier kunnen we na datatype '=' gebruiken, gevolgd door de toe te kennen waarde

Query:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Een waarde toewijzen aan SQL-variabele

Met behulp van SQL SET VARIABELE

Soms willen we declaratie en initialisatie gescheiden houden. SET kan worden gebruikt om waarden aan de variabele toe te wijzen, na het declareren van een variabele. Hieronder staan ​​de verschillende manieren om waarden toe te wijzen met behulp van SET:

Voorbeeld: Een waarde toewijzen aan een variabele met behulp van SET

Syntax:

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

Query:

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

SQL SET VARIABELE

Voorbeeld: Wijs een waarde toe aan meerdere variabelen met behulp van SET.

Syntax:

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

Regel: Er kan slechts één SET-trefwoord worden gebruikt om een ​​waarde aan toe te wijzen één variabele.

Query:

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 VARIABELE

Voorbeeld: Een waarde toekennen aan een variabele met a Scalaire subquery met behulp van SET

Syntax:

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

Reglement:

  • Plaats de query tussen haakjes.
  • De query moet een scalaire query zijn. Een scalaire query is een query met resultaten als slechts één rij en één kolom. Anders zal de query een fout genereren.
  • Als de query nul rijen retourneert, wordt de variabele ingesteld op EMPTY, dwz NULL.

Veronderstelling: Stel dat we de tabel 'Guru99' hebben met twee kolommen zoals hieronder weergegeven:

SQL SET VARIABELE

We zullen de 'Guru99'-tabel gebruiken in de verdere tutorials

Voorbeeld 1: Wanneer de subquery één rij retourneert als resultaat.

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

SQL SET VARIABELE

Voorbeeld 2: Wanneer de subquery als resultaat een rij nul retourneert

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

In dit specifieke geval is de variabelewaarde EMPTY, dwz NULL.

SQL SET VARIABELE

Gebruik SQL SELECT VARIABELE

Net als SET kunnen we SELECT ook gebruiken om waarden aan de variabelen toe te wijzen, nadat we een variabele hebben gedeclareerd met DECLARE. Hieronder vindt u verschillende manieren om een ​​waarde toe te wijzen met behulp van SELECT:

Voorbeeld: Een waarde toewijzen aan een variabele met behulp van SELECT

Syntax:

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

Query:

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

SQL SELECTEER VARIABELE

Voorbeeld: Een waarde toewijzen aan meerdere variabelen met behulp van SELECT

Syntax:

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

Reglement: In tegenstelling tot SET kan SELECT worden gebruikt om een ​​waarde toe te kennen naar meerdere variabelen gescheiden door de 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 SELECTEER VARIABELE

Voorbeeld: De waarde toewijzen aan een variabele met een subquery met behulp van SELECT

Syntax:

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

Reglement:

  • Plaats de query tussen haakjes.
  • De query moet een scalaire query zijn. De scalaire query is de query met het resultaat als één rij en één kolom. Anders zal de query een fout genereren.
  • Als de query nul rijen retourneert, is de variabele EMPTY, dat wil zeggen NULL.
  • Heroverweeg onze 'Guru99'-tabel

Voorbeeld 1: Wanneer de subquery één rij retourneert als resultaat.

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

SQL SELECTEER VARIABELE

Voorbeeld 2: Wanneer de subquery als resultaat een nulrij retourneert

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

In dit specifieke geval is de variabele EMPTY, dwz NULL.

SQL SELECTEER VARIABELE

Voorbeeld 3: Wijs een waarde toe aan een variabele met een reguliere SELECT-instructie.

Syntax:

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

Reglement:

  • In tegenstelling tot SET wordt, als de zoekopdracht in meerdere rijen resulteert, de variabelewaarde ingesteld op de waarde van de laatste rij.
  • Als de query nul rijen retourneert, wordt de variabele ingesteld op EMPTY, dwz NULL.

Query 1: De query retourneert één rij.

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

SQL SELECTEER VARIABELE

Query 2: De query retourneert meerdere rijen.

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

In dit speciale geval is de variabele waarde dat wel ingesteld op de waarde van de laatste rij.

SQL SELECTEER VARIABELE

Query 3: De query retourneert nul rijen.

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

In dit specifieke geval is de variabele EMPTY, dwz NULL.

SQL SELECTEER VARIABELE

Andere voorbeelden van SQL-variabelen

Variabele gebruiken in de query

Query:

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

Andere SQL-variabele

Interessante feiten over SQL Server-variabelen!

  • Een lokale variabele kan worden weergegeven met behulp van PRINT en SELECT COMMAND
  • Tabelgegevenstype staat het gebruik van 'AS' tijdens declaratie niet toe.
  • SET voldoet aan de ANSI-normen, terwijl SELECT dat niet doet.
  • Het maken van een lokale variabele met de naam @ is ook toegestaan. We kunnen het bijvoorbeeld declareren als:
    'DECLARE @@ as VARCHAR (10)'
    

Samenvatting

  • Variabelen zijn het object dat als tijdelijke aanduiding fungeert.
  • Er bestaan ​​twee typen variabelen: Lokaal en Globaal
  • We kunnen de variabele op de volgende drie manieren toewijzen: Bij gebruik van 1) DECLARE 2) Bij gebruik van SET 3) BIJ GEBRUIK VAN SELECT