Variabel SQL: Deklarasikan SQL Server, Atur dan Pilih Variabel
Apa itu Variabel di SQL Server?
Dalam MS SQL, variabel adalah objek yang bertindak sebagai pengganti lokasi memori. Variabel menampung nilai data tunggal.
Tipe Variabel dalam SQL: Lokal, Global
MS SQL memiliki dua jenis variabel:
- Variabel lokal
- Variabel global.
Namun, pengguna hanya dapat membuat variabel lokal.
Gambar di bawah menjelaskan dua jenis variabel yang tersedia di server MS SQL.
Variabel lokal
- Seorang pengguna mendeklarasikan variabel lokal.
- Secara default, variabel lokal dimulai dengan @.
- Setiap cakupan variabel lokal memiliki batasan pada batch atau prosedur saat ini dalam sesi tertentu.
Variabel global
- Sistem mempertahankan variabel global. Seorang pengguna tidak dapat mendeklarasikannya.
- Variabel global dimulai dengan @@
- Itu menyimpan informasi terkait sesi.
Cara MENYATAKAN variabel dalam SQL
- Sebelum menggunakan variabel apa pun dalam batch atau prosedur, Anda perlu melakukannya mendeklarasikan variabelnya.
- Perintah DECLARE digunakan untuk DECLARE variabel yang bertindak sebagai pengganti lokasi memori.
- Hanya setelah deklarasi dibuat, suatu variabel dapat digunakan pada bagian selanjutnya dari batch atau prosedur.
Sintaks TSQL:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
Aturan:
- Inisialisasi adalah hal opsional saat mendeklarasikan.
- Secara default, DECLARE menginisialisasi variabel ke NULL.
- Menggunakan kata kunci 'AS' adalah opsional.
- Untuk mendeklarasikan lebih dari satu variabel lokal, gunakan koma setelah definisi variabel lokal pertama, lalu tentukan nama variabel lokal berikutnya dan tipe data.
Contoh Mendeklarasikan Variabel
Pertanyaan: Dengan 'AS'
DECLARE @COURSE_ID AS INT;
Pertanyaan: Tanpa 'AS'
DECLARE @COURSE_NAME VARCHAR (10);
Kueri: DEKLARASIkan dua variabel
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
Menetapkan nilai ke Variabel SQL
Anda dapat menetapkan nilai ke variabel dengan cara berikut tiga cara:
- Pada saat deklarasi variabel menggunakan kata kunci DECLARE.
- Menggunakan SET
- Menggunakan PILIH
Mari kita lihat ketiga cara tersebut secara mendetail:
Pada saat deklarasi variabel menggunakan kata kunci DECLARE
Sintaks T-SQL:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
Di sini, setelah tipe data kita dapat menggunakan '=' diikuti dengan nilai yang akan diberikan
Query:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
Menggunakan VARIABEL SET SQL
Terkadang kita ingin memisahkan deklarasi dan inisialisasi. SET dapat digunakan untuk menetapkan nilai ke variabel, setelah mendeklarasikan variabel. Berikut adalah berbagai cara untuk menetapkan nilai menggunakan SET:
Example: Menetapkan nilai ke variabel menggunakan SET
sintaks:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
Query:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
Example: Menetapkan nilai ke beberapa variabel menggunakan SET.
sintaks:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
Aturan: Satu SET Kata Kunci hanya dapat digunakan untuk menetapkan nilai satu variabel.
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
Example: Menetapkan nilai ke variabel dengan a Subkueri Skalar menggunakan SET
sintaks:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
Aturan:
- Lampirkan kueri dalam tanda kurung.
- Kueri tersebut harus berupa kueri skalar. Kueri skalar adalah kueri dengan hasil hanya berupa satu baris dan satu kolom. Jika tidak, kueri akan menghasilkan kesalahan.
- Jika kueri mengembalikan baris nol, maka variabel disetel ke KOSONG, yaitu NULL.
Anggapan: Asumsikan kita memiliki tabel sebagai 'Guru99' dengan dua kolom seperti yang ditampilkan di bawah ini:
Kami akan menggunakan tabel 'Guru99' dalam tutorial selanjutnya
Contoh 1: Ketika subquery mengembalikan satu baris sebagai hasilnya.
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
Contoh 2: Ketika subquery mengembalikan baris nol sebagai hasilnya
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Dalam kasus khusus ini, nilai variabelnya adalah KOSONG, yaitu NULL.
Menggunakan VARIABEL SELECT SQL
Sama seperti SET, kita juga dapat menggunakan SELECT untuk memberikan nilai pada variabel, setelah mendeklarasikan variabel menggunakan DECLARE. Berikut adalah berbagai cara untuk menetapkan nilai menggunakan SELECT:
Example: Menetapkan nilai ke variabel menggunakan SELECT
sintaks:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
Query:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
Example: Menetapkan nilai ke beberapa variabel menggunakan SELECT
sintaks:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
Aturan: Berbeda dengan SET, SELECT dapat digunakan untuk menetapkan nilai ke beberapa variabel dipisahkan oleh koma.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Example: Menetapkan nilai ke variabel dengan Subquery menggunakan SELECT
sintaks:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
Aturan:
- Lampirkan kueri dalam tanda kurung.
- Kueri tersebut harus berupa kueri skalar. Kueri skalar adalah kueri dengan hasil berupa satu baris dan satu kolom. Jika tidak, kueri akan menghasilkan kesalahan.
- Jika kueri mengembalikan baris nol, maka variabelnya KOSONG, yaitu NULL.
- Pertimbangkan kembali tabel 'Guru99' kami
Contoh 1: Ketika subquery mengembalikan satu baris sebagai hasilnya.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
Contoh 2: Ketika subquery mengembalikan baris nol sebagai hasilnya
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
Dalam kasus khusus ini, variabelnya adalah KOSONG, yaitu NULL.
Contoh 3: Tetapkan nilai ke variabel dengan pernyataan SELECT biasa.
sintaks:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
Aturan:
- Berbeda dengan SET, jika kueri menghasilkan beberapa baris maka nilai variabel disetel ke nilai baris terakhir.
- Jika kueri mengembalikan baris nol, maka variabel disetel ke KOSONG, yaitu NULL.
Kueri 1: Kueri mengembalikan satu baris.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
Kueri 2: Kueri mengembalikan beberapa baris.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
Dalam kasus khusus ini, nilai variabelnya adalah atur ke nilai baris terakhir.
Kueri 3: Kueri mengembalikan nol baris.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
Dalam kasus khusus ini, variabelnya adalah KOSONG, yaitu NULL.
Contoh Variabel SQL Lainnya
Menggunakan variabel dalam kueri
Query:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
Fakta Menarik Tentang Variabel SQL Server!
- Variabel lokal dapat ditampilkan menggunakan PRINT dan SELECT COMMAND
- Tipe Data Tabel tidak mengizinkan penggunaan 'AS' selama deklarasi.
- SET mematuhi standar ANSI sedangkan SELECT tidak.
- Membuat variabel lokal dengan nama @ juga diperbolehkan. Kita dapat mendeklarasikannya sebagai, misalnya:
'DECLARE @@ as VARCHAR (10)'
Kesimpulan
- Variabel adalah objek yang bertindak sebagai pengganti.
- Ada dua jenis Variabel: Lokal dan Global
- Kita dapat menetapkan variabel dengan tiga cara berikut: Saat menggunakan 1) DECLARE 2) Menggunakan SET 3) MENGGUNAKAN SELECT