http://mysql.phi-integration.com/sql/penggunaan-variable
Variable dan Penamaannya di MySQL
Pada berbagai kondisi, kita memiliki beberapa perintah atau statement SQL dan kita ingin menyimpan hasil eksekusi dari perintah yang satu ke perintah selanjutnya. Sebagai contoh :
- kita mengambil suatu kode transaksi yang kita anggap tidak valid.
- dari kode transaksi yang sudah kita ketahui tersebut kita masukkan data ke suatu audit table.
- kemudian kita hapus data transaksi dari header maupun detilnya, atau ..
- kita rubah saja data transaksi tersebut dengan status "tidak valid"
Bagaimana
kita melakukan hal tersebut ? Jika Anda terbayang menggunakan subquery
untuk melakukan hal tersebut tentunya akan sangat memberatkan server
MySQL sendiri karena perlu banyak cache.
Solusinya adalah dengan menggunakan variable
yang berfungsi sebagai "pengingat" nilai tersebut dan dapat
direferensikan dengan suatu nama di statement-statement berikutnya yang
independen. Tetapi ini tentunya hanya dalam satu sesi koneksi yang sama.
Penamaan variable pada sql memiliki prefix @, artinya setiap nama variable diawali dengan simbol @ diikuti nama variable. Sebagai contoh : @var1, @kode_transaksi, @nilai_awal, dan lain-lain.
Inisialisasi Variable
Inisialisasi variable pada MySQL dapat dilakukan dengan penggunaan perintah SET dan dalam konstruksi perintah lainnya seperti SELECT, syntax dan perbedaannya adalah sebagai berikut :
- SET digunakan untuk inisialisasi variable dengan satu nilai pada suatu waktu dengan penggunaan operator assignment " = " atau " := ".
Syntax :SET @namavar1 = nilai [, @namavar2 = nilai2 [, @namavar = nilai3] ] ;
SET @namavar1 := nilai [, @namavar2 = nilai2 [, @namavar := nilai3] ] ;
atau
Contoh : - SET @kolom_pertama = 'kode_produk';
- SET @nilai1 = 10, @nilai2 = 20, @kolom = "nilai_penjualan";
- dan seterusnya
- SELECT digunakan untuk inisialisasi variable dengan operator assignment " := " dan mengisi variable dengan nilai lain sesuai iterasi hasil row dari eksekusi query. Operator " = " pada statement ini dianggap sebagai operator pembanding nilai (value omparison).Syntax :SELECT @namavar1 := nilai [, @namavar2 := nilai2 [, @namavar := nilai3] ] ;
Contoh : - SELECT @nilai1 := 10, @nilai2 := 20, @kolom := "nilai_penjualan";
- SELECT @nilai1 from (SELECT @nilai1 := 20) T;
- dan seterusnya
Urutan Pemberian Nilai Variable pada SELECT
Jika
Anda sudah jelas dengan pemberian nilai variable, mari kita lihat
proses urutan proses pemberian nilai ini pada SELECT statement :
- Jika
terdapat daftar variable dengan pemisah koma. Maka operasi variable di
depan akan didahulukan dan memberi efek kepada variable di belakangnya.
Contoh : - SET @nilai := 10; SELECT @nilai, @nilai := 20; -- Hasilnya 10, 20
- SET @nilai := 10; SELECT @nilai := 10, @nilai; -- Hasilnya 10, 10
- Jika
operasi variable terdapat subquery maka operasi tersebut akan terjadi
terlebih dahulu dibandingkan query yang memanggil subquery tersebut.
Contoh : - SET @nilai := 20; SELECT @nilai from (select @nilai := 10) as T; -- Hasilnya 10
Penutup
Demikian artikel singkat mengenai penggunaan variable ini kami sajikan. Semoga bisa berguna buat kita semua dalam penggunaannya sehari-hari. Jika Anda ingin berdiskusi lebih lanjut silahkan bergabung ke user group belajar sql.
Dan untuk Anda yang ingin mengambil script SQL dari contoh-contoh pada artikel ini silahkan mengunjungi halaman Daftar Script SQL. Script yang terkait dengan artikel ini adalah penggunaan_variable.sql.
0 Response to "Penggunaan Variable di MySQL"
Post a Comment