Di bawah ini adalah contoh cara mendeklarasikan variabel di MySQL yang disebut vSite
DECLARE vSite VARCHAR[40];
Contoh ini akan mendeklarasikan variabel yang disebut vSite sebagai tipe data VARCHAR[40].
Anda kemudian dapat mengatur atau mengubah nilai variabel vSite, sebagai berikut
SET vSite = 'TechOnTheNet.com';_
Pernyataan SET ini akan menyetel variabel vSite ke nilai 'TechOnTheNet. com'
Contoh - Mendeklarasikan variabel dengan nilai awal [bukan konstanta]
Di bawah ini adalah contoh cara mendeklarasikan variabel di MySQL dan memberinya nilai awal. Ini berbeda dari konstanta karena nilai variabel dapat diubah nanti
DECLARE vSite VARCHAR[40] DEFAULT 'TechOnTheNet.com';
Ini akan mendeklarasikan variabel yang disebut vSite sebagai tipe data VARCHAR[40] dan menetapkan nilai awal 'TechOnTheNet. com'
Anda nanti bisa mengubah nilai variabel vSite, sebagai berikut
SET vSite = 'CheckYourMath.com';
Pernyataan SET ini akan mengubah variabel vSite dari nilai 'TechOnTheNet. com' ke nilai 'CheckYourMath. com'
Mysql juga mendukung konsep variabel yang ditentukan pengguna, yang memungkinkan penerusan nilai dari satu pernyataan ke pernyataan lainnya. Variabel yang ditentukan pengguna di Mysql ditulis sebagai @var_name di mana, var_name adalah nama variabel dan dapat terdiri dari karakter alfanumerik,. , _, dan $
- Variabel yang ditentukan pengguna adalah khusus sesi i. Variabel yang ditentukan oleh satu klien tidak dibagikan ke klien lain dan ketika sesi berakhir, variabel ini secara otomatis kedaluwarsa
- Variabel ini tidak peka huruf besar-kecil. Jadi, @mark atau @Mark keduanya mengacu pada nilai yang sama
- Panjang maksimal variabel bisa 64 karakter
- Nama variabel dapat menyertakan karakter lain seperti- {. , #, ^, -,. } dalam namanya, jika dikutip. Misalnya- @’var@1′ atau @”var^2″ atau @`var3`
- Variabel-variabel ini tidak dapat dideklarasikan, mereka hanya diinisialisasi i. e pada saat deklarasi mereka harus diberi nilai
- Variabel yang tidak dideklarasikan juga dapat diakses dalam pernyataan SQL tetapi nilainya ditetapkan sebagai NULL
- Variabel-variabel ini dapat mengambil nilai dari kumpulan tipe data berikut- { integer, floating-point, desimal, biner, string nonbiner atau nilai NULL
Sintaksis
SET @var_name = expression_
Contoh
1. Menetapkan nilai ke variabel menggunakan perintah SET
mysql>SET @var1 = 2+6; mysql>SET @var2 := @var1-2;
Nilai dari variabel-variabel ini dapat ditampilkan dengan merujuknya dalam pernyataan SELECT-
mysql>SELECT @var1, @var2;_
Keluaran
+-------+-------+ | @var1 | @var2 | +-------+-------+ | 8 | 6 | +-------+-------+
2. Mengakses variabel yang tidak dideklarasikan
mysql>SELECT @var3;_
Keluaran
+-------+ | @var3 | +-------+ | NULL | +-------+_
Di sini, variabel @var3 tidak dideklarasikan sehingga nilai defaultnya adalah NULL
3. Menetapkan nilai ke variabel tanpa menggunakan SET
mysql>SELECT @var3 := 4;
Keluaran
+----------+ | @var3:=4 | +----------+ | 4 | +----------+
Dalam contoh di atas - variabel @var3 harus diberi nilai hanya menggunakan. = tidak =, yang terakhir diperlakukan sebagai perbandingan dalam pernyataan non-SET. Suka-
mysql>SELECT @var4 = 5;
Keluaran
+----------+ | @var4=5 | +----------+ | NULL | +----------+
Bagaimana variabel ini digunakan untuk menyimpan nilai, yang akan digunakan di masa mendatang
Pertimbangkan, tabel Siswa berikut-
s_ids_namemark1shagun152taruna53riya154palak105neha76garima17Sekarang, kita harus mencari peringkat siswa ini dengan menggunakan variabel yang ditentukan pengguna
Untuk ini, kami menginisialisasi dua variabel- @rank dan @prev_mark
mysql>SET @var1 = 2+6; mysql>SET @var2 := @var1-2;0
Pertanyaan
mysql>SET @var1 = 2+6; mysql>SET @var2 := @var1-2;1
Di sini, variabel @rank digunakan untuk menyimpan peringkat siswa dan @prev_mark digunakan untuk menyimpan nilai siswa sebelumnya
Perbandingan antar nilai dibuat agar jika dua siswa memiliki nilai yang sama maka kenaikan variabel @rank dapat dihindari
Perubahan kedua variabel tersebut terjadi setelah tabel siswa diurutkan secara menurun berdasarkan kolom “mark”.
Keluaran
s_namerankmarksgarima117shagun215riya215palak310neha47taruna55Dengan demikian, kami mendapatkan tabel siswa yang dihasilkan diurutkan berdasarkan kolom "nilai" dalam urutan menurun bersama dengan peringkat siswa
Catatan. Dalam kueri di atas, perhatikan urutan kolom dalam pernyataan pilih. Jika kolom “marks” ditulis sebelum kolom “rank” maka kita tidak mendapatkan output yang diinginkan. Karena setiap kali @prev_mark diberikan nilai siswa saat ini yang merupakan hasil evaluasi @prev_mark. =tandai sebagai salah. Jadi, peringkat setiap siswa ditampilkan sebagai i yang tidak bertambah. e itu akan tetap sebagai 0
Kita dapat mendeklarasikan variabel di MySQL dengan bantuan perintah SELECT dan SET. Sebelum mendeklarasikan variabel, kita perlu memberi awalan simbol '@'
Sintaksnya adalah sebagai berikut −
SELECT @ yourVariableName;
Simbol '@' memberi tahu bahwa itu adalah variabel yang ditentukan pengguna atau tidak. Jika tidak ada simbol, itu berarti itu adalah variabel lokal. Awalan dengan dua '@@' menceritakan tentang variabel sistem server
Di sini, kita akan belajar tentang variabel yang ditentukan pengguna. Kita dapat mengatur beberapa nilai ke variabel dengan bantuan perintah SET
Sintaksnya adalah sebagai berikut −
SET @yourVariableName=value;
Catatan - Dalam pernyataan SELECT, "yourVariableName" berisi nilai NULL dan setelah menggunakan perintah SET berisi nilai yang telah kami berikan
Sekarang, kami akan memeriksa dengan menerapkan kueri di atas. Pertama, mari kita mendeklarasikan variabel
mysql> SELECT @engine;
Setelah menjalankan kueri di atas, variabel awalnya mendapatkan nilai NULL. Berikut ini adalah outputnya −
+---------+ | @engine | +---------+ | NULL | +---------+ 1 row in set [0.00 sec]
Tetapkan beberapa nilai ke variabel dengan bantuan perintah SET −
mysql> SET @engine='start'; Query OK, 0 rows affected [0.00 sec]
Setelah itu, kita dapat memeriksa nilai yang telah kita berikan di atas. Untuk itu, gunakan pernyataan SELECT. Berikut ini adalah kueri −