SQL Değişkenleri: SQL Server Değişkeni Bildirin, Ayarlayın ve Seçin
SQL Server'da Değişken Nedir?
MS SQL'de değişkenler, bir bellek konumuna yer tutucu görevi gören nesnelerdir. Değişken tutma tek veri değeri.
SQL'de Değişken Türleri: Yerel, Global
MS SQL'de iki tür değişken vardır:
- Yerel değişken
- Küresel değişken.
Ancak kullanıcı yalnızca yerel bir değişken oluşturabilir.
Aşağıdaki şekil, mevcut iki değişken tipini açıklamaktadır. MSSQL sunucusu.
Yerel değişken
- Kullanıcı yerel değişkeni bildirir.
- Varsayılan olarak yerel bir değişken şununla başlar: @.
- Her yerel değişken kapsamının kısıtlaması vardır. mevcut parti veya prosedür herhangi bir oturumda.
Küresel değişken
- Sistem global değişkeni korur. Bir kullanıcı bunları beyan edemez.
- Global değişken şununla başlar: @@
- Depolar oturumla ilgili bilgiler.
SQL'de bir değişken nasıl DECLARE edilir?
- Toplu iş veya prosedürde herhangi bir değişkeni kullanmadan önce şunları yapmanız gerekir: değişkeni bildirin.
- DECLARE komutu, bellek konumu için yer tutucu görevi gören DECLARE değişkenine kullanılır.
- Yalnızca beyan yapıldıktan sonra bir değişken serinin veya prosedürün sonraki kısmında kullanılabilir.
TSQL Sözdizimi:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
Kurallar:
- Başlatma, bildirim sırasında isteğe bağlı bir şeydir.
- DECLARE varsayılan olarak değişkeni NULL olarak başlatır.
- 'AS' anahtar kelimesini kullanmak isteğe bağlıdır.
- Birden fazla yerel değişken bildirmek için, ilk yerel değişken tanımından sonra virgül kullanın ve ardından bir sonraki yerel değişkenin adını ve adını tanımlayın. veri tipi.
Değişken bildirme örnekleri
Sorgu: 'AS' ile
DECLARE @COURSE_ID AS INT;
Sorgu: 'AS' olmadan
DECLARE @COURSE_NAME VARCHAR (10);
Sorgu: İki değişkeni DECLARE
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
SQL Değişkenine değer atama
Aşağıdaki şekilde bir değişkene değer atayabilirsiniz üç yolları:
- DECLARE anahtar sözcüğünü kullanarak değişken bildirimi sırasında.
- SET'i kullanma
- SELECT'i kullanma
Her üç yola da ayrıntılı olarak bakalım:
DECLARE anahtar kelimesini kullanarak değişken bildirimi sırasında
T-SQL Söz Dizimi:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
Burada veri türünden sonra '=' ve ardından atanacak değeri kullanabiliriz.
Sorgu:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
SQL SET VARIABLE'ı kullanma
Bazen bildirimi ve başlatmayı ayrı tutmak isteriz. SET, bir değişkeni bildirdikten sonra değişkene değer atamak için kullanılabilir. Aşağıda SET kullanarak değer atamanın farklı yolları verilmiştir:
Örnek E-posta: SET kullanarak bir değişkene değer atamak
Sözdizimi:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
Sorgu:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
Örnek E-posta: Bir değer atayın çoklu değişkenler SET'i kullanarak.
Sözdizimi:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
Kural: Bir SET Anahtar Kelimesi yalnızca bir değer atamak için kullanılabilir. bir değişken.
Sorgu:
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Örnek E-posta: Bir değişkene bir değer atamak Skaler Alt Sorgu SET'i kullanma
Sözdizimi:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
Kurallar:
- Sorguyu parantez içine alın.
- Sorgu skaler bir sorgu olmalıdır. Skaler bir sorgu, sonuçları yalnızca bir satır ve bir sütun olarak veren bir sorgudur. Aksi takdirde, sorgu bir hata verecektir.
- Sorgu sıfır satır döndürürse değişken EMPTY, yani NULL olarak ayarlanır.
Varsayım: Aşağıda gösterildiği gibi iki sütunlu 'Guru99' tablosuna sahip olduğumuzu varsayalım:
Sonraki derslerde 'Guru99' tablosunu kullanacağız
Örnek 1: Alt sorgu sonuç olarak bir satır döndürdüğünde.
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
Örnek 2: Alt sorgu sonuç olarak sıfır satır döndürdüğünde
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Bu özel durumda değişken değeri EMPTY'dir, yani NULL'dur.
SQL SELECT VARIABLE'ı kullanma
Tıpkı SET gibi, değişkenlere değer atamak ve DECLARE kullanarak bir değişken bildirmek için SELECT'i de kullanabiliriz. Aşağıda SELECT kullanarak değer atamanın farklı yolları verilmiştir:
Örnek E-posta: SELECT kullanarak bir değişkene değer atama
Sözdizimi:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
Sorgu:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
Örnek E-posta: SELECT kullanarak birden fazla değişkene değer atama
Sözdizimi:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
Kurallar: SET'ten farklı olarak SELECT, bir değer atamak için kullanılabilir birden fazla değişkene tarafından ayrılmış virgül.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Örnek E-posta: SELECT kullanarak bir alt sorgu ile değerin bir değişkene atanması
Sözdizimi:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
Kurallar:
- Sorguyu Parantez içine alın.
- Sorgu skaler bir sorgu olmalıdır. Skaler sorgu, sonucu bir satır ve bir sütun olarak veren sorgudur. Aksi takdirde sorgu bir hata verecektir.
- Sorgu sıfır satır döndürürse değişken EMPTY'dir, yani NULL'dur.
- 'Guru99' tablomuzu yeniden düşünün
Örnek 1: Alt sorgu sonuç olarak bir satır döndürdüğünde.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
Örnek 2: Alt sorgu sonuç olarak sıfır satır döndürdüğünde
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Bu özel durumda değişken EMPTY'dir, yani NULL'dur.
Örnek 3: Normal bir SELECT ifadesi ile bir değişkene değer atayın.
Sözdizimi:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
Kurallar:
- SET'ten farklı olarak, sorgu birden fazla satırla sonuçlanırsa değişken değeri son satırın değerine ayarlanır.
- Sorgu sıfır satır döndürürse değişken EMPTY, yani NULL olarak ayarlanır.
Sorgu 1: Sorgu bir satır döndürür.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
Sorgu 2: Sorgu birden fazla satır döndürür.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
Bu özel durumda değişken değeri son satırın değerine ayarlandı.
Sorgu 3: Sorgu sıfır satır döndürür.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
Bu özel durumda değişken EMPTY'dir, yani NULL'dur.
Diğer SQL Değişken Örnekleri
Sorguda değişken kullanma
Sorgu:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
SQL Server Değişkenleri Hakkında İlginç Gerçekler!
- Yerel bir değişken PRINT ve SELECT COMMAND kullanılarak görüntülenebilir
- Tablo Veri türü bildirim sırasında 'AS' kullanımına izin vermiyor.
- SET ANSI standartlarına uygundur, ancak SELECT uymaz.
- @ adıyla yerel bir değişken oluşturmaya da izin verilir. Bunu örneğin şu şekilde beyan edebiliriz:
'DECLARE @@ as VARCHAR (10)'
ÖZET
- Değişkenler yer tutucu görevi gören nesnelerdir.
- İki tür Değişken mevcuttur: Yerel ve Küresel
- Değişkeni aşağıdaki üç şekilde atayabiliriz: 1) DECLARE kullanarak 2) SET kullanarak 3) SELECT kullanarak