Untuk perancangan query yang lumayan kompleks, kita dapat menggunakan variabel di di MySQL. Di panduan belajar MySQL kali ini saya akan membahas mengenai cara membuat variabel di dalam MySQL.
Pengertian Variabel di MySQL
Secara sederhana, variabel yakni ‘penampung nilai’. Nilai dari variabel dapat berubah-ubah dari waktu ke waktu, dan pun dapat diraih ketika program telah berjalan. Di matematika kita pun sering menemui istilah variabel yang sering ditulis selaku x, y atau z.
Walaupun bukan yaitu sebuah ‘bahasa pemrograman’, MySQL menyediakan fitur untuk membangun variabel. Variabel ini dapat digunakan di perancangan query yang kompleks agar lebih sederhana.
Untuk membangun variabel di di MySQL, format dasarnya yakni selaku berikut:
1 |
SET @nama_variabel = nilai_variabel |
atau
1 |
SET @nama_variabel := nilai_variabel |
Perhatikan bahwa kita dapat menggunakan tanda sama dengan ( = ) atau titik dua sama dengan ( := ) di mendefinisikan variabel.
Selain itu, MySQL pun membolehkan nilai variabel berasal dari hasil query SELECT, dengan format basic selaku berikut:
1 |
SELECT @nama_variabel := ‘query select disini’. |
Kita akan melihat contoh penggunaannya sesaat lagi.
Cara Menyusun Variabel di di MySQL
Selaku tabel praktek, saya akan menggunakan database mahasiswa yang dikerjakan di panduan Cara Menjalankan Query MySQL dari File Teks.
Berikut contoh cara membangun variabel di di MySQL:
1 |
D:MySQL 5.6bin>mysql -u root<br/>Welcome to the MySQL monitor. Commands end with ; or g.<br/>Your MySQL connection id is 25<br/>Server version: 5.6.22 MySQL Community Server (GPL)<br/> <br/>Copyright (c) 2000, 2014, Oracle and/or its affiliates. <br/>All rights reserved.<br/> <br/>Oracle is a registered trademark of Oracle Corporation and/or its<br/>affiliates. Other names may be trademarks of their respective<br/>owners.<br/> <br/>Type 'help;' or 'h' for help. Type 'c' to clear the current <br/>input statement.<br/> <br/>mysql> USE mahasiswa;<br/>Database changed<br/>mysql> set @kota = 'Jakarta';<br/>Query OK, 0 rows affected (0.00 sec)<br/> <br/>mysql> SELECT * FROM daftar_dosen WHERE domisili = @kota;<br/>+------------+--------------+------------+---------+<br/>| NIP | nama_dosen | no_hp | domisili |<br/>+------------+--------------+------------+---------+<br/>| 0576431001 | M. Siddiq | 0812979005 | Jakarta |<br/>| 1080432007 | Arif Budiman | 0812456345 | Jakarta |<br/>+------------+--------------+------------+---------+<br/>2 rows in set (0.00 sec) |
Di query diatas, saya membangun sebuah variabel @kota yang di-set dengan nilai ‘Jakarta’, kemudian variabel ini digunakan di di kondisi WHERE dari query SELECT.
Selain karakter string (huruf), kita pun dapat mengisi nilai variabel yang berasal dari hitungan matematis, seperti berikut:
1 |
mysql> set @jum_sks := 1+1;<br/>Query OK, 0 rows affected (0.11 sec)<br/> <br/>mysql> SELECT @jum_sks;<br/>+----------+<br/>| @jum_sks |<br/>+----------+<br/>| 2 |<br/>+----------+<br/>1 row in set (0.00 sec)<br/> <br/>mysql> SELECT * FROM mata_kuliah WHERE jumlah_SKS = @jum_sks;<br/>+-------------+------------------+------------+----------+------------+<br/>| kode_matkul | nama_matkul | jumlah_SKS | semester | NIP_dosen |<br/>+-------------+------------------+------------+----------+------------+<br/>| FISDAS | Fisika Basic | 2 | 1 | 0480432066 |<br/>| MIKROP | Mikro Prosesor | 2 | 5 | 0480432066 |<br/>| SISOPR | Program Operasi | 2 | 4 | 0160436012 |<br/>| TEKKOM | Teknik Kompilasi | 2 | 6 | 0480432066 |<br/>+-------------+------------------+------------+----------+------------+<br/>4 rows in set (0.00 sec) |
Kali ini saya membangun variabel @jum_sks dengan nilai 1+1. Kemudian saya melihat isi dari variabel ini menggunakan command SELECT @jum_sks. Terakhir saya menggunakan command SELECT untuk menampilkan seluruh mata kuliah yang mempunyai jumlah SKS = 2.
Yang perlu diingat, variabel ini hanya dapat digunakan di bagian expression dari sebuah query (seperti di kondisi WHERE). Kita tak dapat menggunakan variabel untuk konstanta seperti command berikut:
1 |
mysql> SET @nama_table = 'jurusan';<br/>Query OK, 0 rows affected (0.00 sec)<br/> <br/>mysql> CREATE TABLE @nama_table (nama_jur CHAR(25));<br/>ERROR 1064 (42000): You have an error in your SQL syntax; <br/>check the manual that corresponds to your MySQL server version <br/>for the right syntax to use near '@nama_table (nama_jur CHAR(25))' <br/>at line 1 |
Selain menggunakan command SET, nilai variabel pun dapat berasal dari hasil query SELECT, seperti contoh berikut:
1 |
mysql> SELECT @kota := domisili FROM daftar_dosen WHERE <br/>nama_dosen = 'Maya Ari Putri';<br/>+-----------------+<br/>| @kota := domisili |<br/>+-----------------+<br/>| Palembang |<br/>+-----------------+<br/>1 row in set (0.00 sec)<br/> <br/>mysql> SELECT * FROM daftar_dosen WHERE domisili = @kota;<br/>+------------+----------------+------------+-----------+<br/>| NIP | nama_dosen | no_hp | domisili |<br/>+------------+----------------+------------+-----------+<br/>| 0260432002 | Maya Ari Putri | 0812345234 | Palembang |<br/>| 0275430005 | Susi Indriani | 0812656532 | Palembang |<br/>+------------+----------------+------------+-----------+<br/>2 rows in set (0.00 sec) |
Di command pertama-tama, saya mencari hasil dari query SELECT domisili FROM daftar_dosen WHERE nama_dosen = ‘Maya Ari Putri’, kemudian menyimpan hasilnya kedalam variabel @kota. Dengan demikian, variabel @kota sekarang ini ini akan berisi ‘Palembang’. Perhatikan cara ‘penyisipan’ ini.
Kemudian saya menggunakan nilai variabel @kota untuk menampilkan seluruh dosen yang beralamat di Palembang.
Fitur variabel di di MySQL mungkin tak terlalu sering di gunakan, tetapi di situasi tertentu, ini dapat menolong kita menyederhanakan query yang lumayan kompleks.
Sumber https://www.duniailkom.com/