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:
- Paikallinen muuttuja
- 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.
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:
- Muuttujan määrityksen aikana DECLARE-avainsanalla.
- SET-toiminnolla
- 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
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
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
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:
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
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 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
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
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
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.
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
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.
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.
Muita esimerkkejä SQL-muuttujista
Muuttujan käyttäminen kyselyssä
kysely:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
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