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

Tiivistรค tรคmรค viesti seuraavasti: