Ada tiga jenis variabel di MySQL:
-
Variabel yang ditentukan pengguna (diawali dengan
@
):Anda dapat mengakses variabel yang ditentukan pengguna tanpa mendeklarasikannya atau menginisialisasinya. Jika Anda merujuk ke variabel yang belum diinisialisasi, ia memiliki nilai
NULL
dan jenis string.SELECT @var_any_var_name
Anda dapat menginisialisasi variabel menggunakan
SET
atauSELECT
pernyataan:SET @start = 1, @finish = 10;
atau
SELECT @start := 1, @finish := 10; SELECT * FROM places WHERE place BETWEEN @start AND @finish;
Variabel pengguna dapat diberi nilai dari kumpulan tipe data terbatas:integer, desimal, titik-mengambang, string biner atau nonbiner, atau nilai NULL.
Variabel yang ditentukan pengguna adalah khusus sesi. Artinya, variabel pengguna yang ditentukan oleh satu klien tidak dapat dilihat atau digunakan oleh klien lain.
Mereka dapat digunakan di
SELECT
kueri menggunakan Teknik variabel pengguna MySQL lanjutan . -
Variabel Lokal (tanpa awalan) :
Variabel lokal perlu dideklarasikan menggunakan
DECLARE
sebelum mengaksesnya.Mereka dapat digunakan sebagai variabel lokal dan parameter input di dalam prosedur tersimpan:
DELIMITER // CREATE PROCEDURE sp_test(var1 INT) BEGIN DECLARE start INT unsigned DEFAULT 1; DECLARE finish INT unsigned DEFAULT 10; SELECT var1, start, finish; SELECT * FROM places WHERE place BETWEEN start AND finish; END; // DELIMITER ; CALL sp_test(5);
Jika
DEFAULT
klausa tidak ada, nilai awalnya adalahNULL
.Lingkup variabel lokal adalah
BEGIN ... END
blok di mana ia dideklarasikan. -
Variabel Sistem Server (diawali dengan
@@
):Server MySQL memelihara banyak variabel sistem dikonfigurasi ke nilai default. Mereka dapat bertipe
GLOBAL
,SESSION
atauBOTH
.Variabel global mempengaruhi operasi keseluruhan server sedangkan variabel sesi mempengaruhi operasinya untuk koneksi klien individu.
Untuk melihat nilai saat ini yang digunakan oleh server yang sedang berjalan, gunakan
SHOW VARIABLES
pernyataan atauSELECT @@var_name
.SHOW VARIABLES LIKE '%wait_timeout%'; SELECT @@sort_buffer_size;
Mereka dapat diatur saat server mulai menggunakan opsi pada baris perintah atau dalam file opsi. Sebagian besar dapat diubah secara dinamis saat server berjalan menggunakan
SET GLOBAL
atauSET SESSION
:-- Syntax to Set value to a Global variable: SET GLOBAL sort_buffer_size=1000000; SET @@global.sort_buffer_size=1000000; -- Syntax to Set value to a Session variable: SET sort_buffer_size=1000000; SET SESSION sort_buffer_size=1000000; SET @@sort_buffer_size=1000000; SET @@local.sort_buffer_size=10000;