SQL-muuttujat: SQL Server Declare, Set and Select Variable

Mikä on muuttuja SQL Serverissä?

MS SQL:ssä muuttujat ovat objekti, joka toimii muistipaikan paikkamerkkinä. Muuttuja pitää yksittäisen dataarvon.

SQL:n muuttujatyypit: paikallinen, globaali

MS SQL:ssä on kahdenlaisia ​​muuttujia:

  1. Paikallinen muuttuja
  2. Globaali muuttuja.

Käyttäjä voi kuitenkin luoda vain paikallisen muuttujan.

Alla oleva kuva selittää kahden tyyppisiä muuttujia, jotka ovat käytettävissä MS SQL -palvelin.

SQL-muuttujat
SQL Serverin muuttujien tyyppi

Paikallinen muuttuja

  • Käyttäjä ilmoittaa paikallisen muuttujan.
  • Oletuksena paikallinen muuttuja alkaa @.
  • Jokaisella paikallisella muuttujan laajuudella on rajoitus nykyinen erä tai menettely minkä tahansa istunnon aikana.

Globaali muuttuja

  • Järjestelmä ylläpitää globaalia muuttujaa. Käyttäjä ei voi ilmoittaa niitä.
  • Globaali muuttuja alkaa @@
  • Se tallentaa istuntoon liittyvät tiedot.

Kuinka ILMOITTAA muuttuja SQL:ssä

  • Ennen kuin käytät muuttujia erässä tai menettelyssä, sinun on tehtävä se ilmoittaa muuttuja.
  • DECLARE-komentoa käytetään DECLARE-muuttujaan, joka toimii muistipaikan paikkamerkkinä.
  • Vasta kun ilmoitus on tehty, muuttujaa voidaan käyttää erän tai menettelyn seuraavassa osassa.

TSQL-syntaksi:

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

Säännöt:

  • Alustus on valinnainen asia ilmoittamisen yhteydessä.
  • Oletusarvoisesti DECLARE alustaa muuttujan arvoon NULL.
  • Avainsanan "AS" käyttö on valinnaista.
  • Jos haluat ilmoittaa useamman kuin yhden paikallisen muuttujan, käytä pilkkua ensimmäisen paikallismuuttujan määritelmän jälkeen ja määritä sitten seuraavan paikallisen muuttujan nimi ja tietotyyppi.

Esimerkkejä muuttujan ilmoittamisesta

Kysely: "AS"

DECLARE @COURSE_ID AS INT;

Kysely: ilman "AS"

DECLARE @COURSE_NAME VARCHAR (10);

Kysely: ILMOITTAA kaksi muuttujaa

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

Arvon määrittäminen SQL-muuttujalle

Voit määrittää muuttujalle arvon seuraavassa kolmella tavalla:

  1. Muuttujan määrityksen aikana DECLARE-avainsanalla.
  2. SET-toiminnolla
  3. Käyttämällä SELECT

Katsotaanpa kaikkia kolmea tapaa yksityiskohtaisesti:

Muuttujan määrityksen aikana DECLARE-avainsanalla

T-SQL-syntaksi:

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

Tässä tietotyypin jälkeen voimme käyttää '=', jota seuraa määritettävä arvo

kysely:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Arvon määrittäminen SQL-muuttujalle

SQL SET VARIABLE:n käyttö

Joskus haluamme pitää ilmoituksen ja alustuksen erillään. SET:tä voidaan käyttää arvojen määrittämiseen muuttujalle, muuttujan ilmoittamisen jälkeen. Alla on erilaisia ​​tapoja määrittää arvoja SET:n avulla:

esimerkki: Arvon antaminen muuttujalle SET-komennolla

Syntaksi:

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

kysely:

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

SQL SET VARIABLE

esimerkki: Määritä arvo useita muuttujia käyttämällä SET-toimintoa.

Syntaksi:

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

Sääntö: Yhtä SET-avainsanaa voidaan käyttää vain arvon määrittämiseen yksi muuttuja.

kysely:

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 VARIABLE

esimerkki: Arvon antaminen muuttujalle a:lla Skalaari-alikysely käyttämällä SET-toimintoa

Syntaksi:

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

Säännöt:

  • Laita kysely sulkeisiin.
  • Kyselyn tulee olla skalaarikysely. Skalaarikysely on kysely, jonka tulokset ovat vain yksi rivi ja yksi sarake. Muussa tapauksessa kysely antaa virheilmoituksen.
  • Jos kysely palauttaa nolla riviä, muuttujaksi asetetaan EMPTY, eli NULL.

Oletus: Oletetaan, että meillä on taulukko "Guru99", jossa on kaksi saraketta, kuten alla näytetään:

SQL SET VARIABLE

Käytämme 'Guru99'-taulukkoa muissa opetusohjelmissa

Esimerkki 1: Kun alikysely palauttaa yhden rivin tuloksena.

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

SQL SET VARIABLE

Esimerkki 2: Kun alikysely palauttaa tuloksena nollan rivin

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

Tässä nimenomaisessa tapauksessa muuttujan arvo on EMPTY, eli NULL.

SQL SET VARIABLE

SQL SELECT VARIABLE:n käyttö

Aivan kuten SET, voimme myös käyttää SELECT-toimintoa arvojen määrittämiseen muuttujille ja muuttujan ilmoittamisen jälkeen käyttämällä DECLARE-toimintoa. Alla on erilaisia ​​tapoja määrittää arvo käyttämällä SELECT:

esimerkki: Arvon antaminen muuttujalle SELECT-toiminnolla

Syntaksi:

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

kysely:

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

SQL SELECT VARIABLE

esimerkki: Arvon määrittäminen usealle muuttujalle SELECT-toiminnolla

Syntaksi:

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

Säännöt: Toisin kuin SET, SELECT:tä voidaan käyttää arvon määrittämiseen useisiin muuttujiin erottaa momentti.

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

SQL SELECT VARIABLE

esimerkki: Arvon määrittäminen muuttujalle alikyselyllä SELECT-toiminnolla

Syntaksi:

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

Säännöt:

  • Liitä kysely sulkuihin.
  • Kyselyn tulee olla skalaarikysely. Skalaarikysely on kysely, jonka tuloksena on yksi rivi ja yksi sarake. Muussa tapauksessa kysely antaa virheilmoituksen.
  • Jos kysely palauttaa nolla riviä, muuttuja on EMPTY, eli NULL.
  • Harkitse 'Guru99'-pöytäämme uudelleen

Esimerkki 1: Kun alikysely palauttaa yhden rivin tuloksena.

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

SQL SELECT VARIABLE

Esimerkki 2: Kun alikysely palauttaa tuloksena nollan rivin

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

Tässä nimenomaisessa tapauksessa muuttuja on EMPTY, eli NULL.

SQL SELECT VARIABLE

Esimerkki 3: Anna muuttujalle arvo tavallisella SELECT-käskyllä.

Syntaksi:

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

Säännöt:

  • Toisin kuin SET, jos kysely johtaa useisiin riveihin, muuttujan arvoksi asetetaan viimeisen rivin arvo.
  • Jos kysely palauttaa nolla riviä, muuttujaksi asetetaan EMPTY, eli NULL.

Kysely 1: Kysely palauttaa yhden rivin.

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

SQL SELECT VARIABLE

Kysely 2: Kysely palauttaa useita rivejä.

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

Tässä erikoistapauksessa muuttuva arvo on asetetaan viimeisen rivin arvoon.

SQL SELECT VARIABLE

Kysely 3: Kysely palauttaa nolla riviä.

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

Tässä nimenomaisessa tapauksessa muuttuja on EMPTY, eli NULL.

SQL SELECT VARIABLE

Muita esimerkkejä SQL-muuttujista

Muuttujan käyttäminen kyselyssä

kysely:

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

Muu SQL-muuttuja

Mielenkiintoisia faktoja SQL Serverin muuttujista!

  • Paikallinen muuttuja voidaan näyttää käyttämällä PRINT- ja SELECT COMMAND -komentoja
  • Taulukon tietotyyppi ei salli 'AS':n käyttöä ilmoituksen aikana.
  • SET on ANSI-standardien mukainen, kun taas SELECT ei.
  • Paikallisen muuttujan luominen nimellä @ on myös sallittua. Voimme ilmoittaa sen esimerkiksi seuraavasti:
    'DECLARE @@ as VARCHAR (10)'
    

Yhteenveto

  • Muuttujat ovat objekti, joka toimii paikkamerkkinä.
  • Muuttujia on kahta tyyppiä: paikallinen ja globaali
  • Voimme määrittää muuttujan seuraavilla kolmella tavalla: Käytettäessä 1) DECLARE 2) käyttämällä SET 3) KÄYTTÖÄ SELECT