Untuk pembuatan query yang cukup kompleks, kita bisa menggunakan variabel di dalam MySQL. Dalam tutorial belajar MySQL kali ini saya akan membahas tentang cara membuat variabel di dalam MySQL.
Pengertian Variabel dalam MySQL
Secara sederhana, variabel adalah 'penampung nilai'. Nilai dari variabel bisa berubah-ubah dari waktu ke waktu, dan juga bisa dihasilkan ketika program sudah berjalan. Dalam matematika kita juga sering menemui istilah variabel yang sering ditulis sebagai x, y atau z.
Walaupun bukan merupakan 'bahasa pemrograman', MySQL menyediakan fitur untuk membuat variabel. Variabel ini bisa digunakan dalam pembuatan query yang kompleks agar lebih sederhana.
Untuk membuat variabel di dalam MySQL, format dasarnya adalah sebagai berikut:
SET @nama_variabel = nilai_variabel
atau
SET @nama_variabel := nilai_variabel
Perhatikan bahwa kita bisa menggunakan tanda sama dengan ( = ) atau titik dua sama dengan ( := ) dalam mendefinisikan variabel.
Selain itu, MySQL juga membolehkan nilai variabel berasal dari hasil query SELECT, dengan format dasar sebagai berikut:
SELECT @nama_variabel := 'query select disini'.
Kita akan melihat contoh penggunaannya sesaat lagi.
Cara Membuat Variabel di dalam MySQL
Sebagai tabel praktek, saya akan menggunakan database mahasiswa yang dibuat dalam tutorial Cara Menjalankan Query MySQL dari File Teks.
Berikut contoh cara membuat variabel di dalam MySQL:
D:\MySQL 5.6\bin>mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 25 Server version: 5.6.22 MySQL Community Server (GPL)  Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.  Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql> USE mahasiswa; Database changed mysql> set @kota = 'Jakarta'; Query OK, 0 rows affected (0.00 sec)  mysql> SELECT * FROM daftar_dosen WHERE alamat = @kota; +------------+--------------+------------+---------+ | NIP       | nama_dosen  | no_hp     | alamat | +------------+--------------+------------+---------+ | 0576431001 | M. Siddiq   | 0812979005 | Jakarta | | 1080432007 | Arif Budiman | 0812456345 | Jakarta | +------------+--------------+------------+---------+ 2 rows in set (0.00 sec)
Dalam query diatas, saya membuat sebuah variabel @kota yang di-set dengan nilai 'Jakarta', kemudian variabel ini digunakan di dalam kondisi WHERE dari query SELECT.
Selain karakter string (huruf), kita juga bisa mengisi nilai variabel yang berasal dari hitungan matematis, seperti berikut:
mysql> set @jum_sks := 1+1; Query OK, 0 rows affected (0.11 sec)  mysql> SELECT @jum_sks; +----------+ | @jum_sks | +----------+ |       2 | +----------+ 1 row in set (0.00 sec)  mysql> SELECT * FROM mata_kuliah WHERE jumlah_SKS = @jum_sks; +-------------+------------------+------------+----------+------------+ | kode_matkul | nama_matkul     | jumlah_SKS | semester | NIP_dosen | +-------------+------------------+------------+----------+------------+ | FISDAS     | Fisika Dasar    |         2 |       1 | 0480432066 | | MIKROP     | Mikro Prosesor  |         2 |       5 | 0480432066 | | SISOPR     | Sistem Operasi  |         2 |       4 | 0160436012 | | TEKKOM     | Teknik Kompilasi |         2 |       6 | 0480432066 | +-------------+------------------+------------+----------+------------+ 4 rows in set (0.00 sec)
Kali ini saya membuat variabel @jum_sks dengan nilai 1+1. Kemudian saya melihat isi dari variabel ini menggunakan perintah SELECT @jum_sks. Terakhir saya menggunakan perintah SELECT untuk menampilkan seluruh mata kuliah yang memiliki jumlah SKS = 2.
Yang perlu diingat, variabel ini hanya bisa digunakan pada bagian expression dari sebuah query (seperti pada kondisi WHERE). Kita tidak bisa menggunakan variabel untuk konstanta seperti perintah berikut:
mysql> SET @nama_table = 'jurusan'; Query OK, 0 rows affected (0.00 sec) Â mysql> CREATE TABLE @nama_table (nama_jur CHAR(25)); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@nama_table (nama_jur CHAR(25))' at line 1
Selain menggunakan perintah SET, nilai variabel juga bisa berasal dari hasil query SELECT, seperti contoh berikut:
mysql> SELECT @kota := alamat FROM daftar_dosen WHERE nama_dosen = 'Maya Ari Putri'; +-----------------+ | @kota := alamat | +-----------------+ | Palembang      | +-----------------+ 1 row in set (0.00 sec)  mysql> SELECT * FROM daftar_dosen WHERE alamat = @kota; +------------+----------------+------------+-----------+ | NIP       | nama_dosen    | no_hp     | alamat   | +------------+----------------+------------+-----------+ | 0260432002 | Maya Ari Putri | 0812345234 | Palembang | | 0275430005 | Susi Indriani | 0812656532 | Palembang | +------------+----------------+------------+-----------+ 2 rows in set (0.00 sec)
Pada perintah pertama, saya mencari hasil dari query SELECT alamat FROM daftar_dosen WHERE nama_dosen = 'Maya Ari Putri', kemudian menyimpan hasilnya kedalam variabel @kota. Dengan demikian, variabel @kota sekarang akan berisi 'Palembang'. Perhatikan cara 'penyisipan' ini.
Kemudian saya menggunakan nilai variabel @kota untuk menampilkan seluruh dosen yang beralamat di Palembang.
Fitur variabel di dalam MySQL mungkin tidak terlalu sering di gunakan, tetapi pada situasi tertentu, ini bisa membantu kita menyederhanakan query yang cukup kompleks.
mantaap
mudah di pahami
Terimakasih gan.. semoga bisa bermanfaat :)
buat tutorial mysql stored procedure donk
Requestnya di tampung y gan…
gan, bagaimana create database dengan variabel
$data = database
contoh : create database $Data
Dicoba saja langsung gan, misalnya dengan kode program mysql_query("create database $Data").
Gan, Ada masa hidupnya tdk untuk sebuah variabel dalam Mysql yang Kalau Deklarasi Variabelnya cukup Hanya dibuat dalam satu kali sj? Jadi kenapa untuk Query selanjutnya kita gak perlu tampilin variabel ntu kayak bahasa program yg lain.? Terus kalo memang ada Memori dari Mysql bisa nyimpen Variabel yng kita buat, dimana kita bisa lihat variabel apa aja yg udah kita buat? sori gan nyubi banget…:P
Alur hidup variabel di MySQL adalah di dalam satu kali session, yakni selama kita terhubung ke MySQL Server. Jika koneksi terputus, variabel tersebut tidak bisa diakses lagi. Sebaliknya, selama koneksi tidak terputus, variabel tetap terus bisa diakses.
Untuk melihat seluruh variabel yang sudah ditulis, saya juga kurang tau nih. Mungkin ada teman2 lain yang bisa membantu…