Sebelum melakukan percobaan (eksperimen), ada beberapa hal yang harus Anda lakukan terlebih dahulu, yaitu:
- Membuat table pegawai sebagai contoh
Buatlah tabel pegawai sebagai contoh dengan menjalankan script berikut:
CREATE TABLE pegawai ( id_pegawai VARCHAR(10) NOT NULL, nama_pegawai VARCHAR(30) NOT NULL, gender CHAR(1) NOT NULL, umur INT(3) NOT NULL, alamat VARCHAR(30) NOT NULL, kd_departemen VARCHAR(5) DEFAULT NULL, PRIMARY KEY (id_pegawai) );
- Insert data pada tabel pegawai diatas
insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('001','Nursalim','L','20','Brebes','IT'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('002','Iskiyati','P','25','Bandung','IT'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('003','Nurul Hikmah','P','18','Semarang','ACC'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('004','Naura Krasiva','P','15','Jakarta','IT'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('005','Ahmad Fathoni','L','20','Yogyakarta','HR'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('006','Ramanata','L','17','Jakarta','HR'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('007','Taryono','L','18','Surabaya','ACC'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('008','Nani Indriyani','P','15','Bandung','FIN'); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('009','Imron','L','23','Bandung',NULL); insert into `pegawai` (`id_pegawai`, `nama_pegawai`, `gender`, `umur`, `alamat`, `kd_departemen`) values('010','Andi','L','16','Bandung',NULL);
- Tampilkan data dari tabel pegawai diatas
mysql> SELECT * FROM pegawai; +------------+----------------+--------+------+------------+---------------+ | id_pegawai | nama_pegawai | gender | umur | alamat | kd_departemen | +------------+----------------+--------+------+------------+---------------+ | 001 | Nursalim | L | 20 | Brebes | IT | | 002 | Iskiyati | P | 25 | Bandung | IT | | 003 | Nurul Hikmah | P | 18 | Semarang | ACC | | 004 | Naura Krasiva | P | 15 | Jakarta | IT | | 005 | Ahmad Fathoni | L | 20 | Yogyakarta | HR | | 006 | Ramanata | L | 17 | Jakarta | HR | | 007 | Taryono | L | 18 | Surabaya | ACC | | 008 | Nani Indriyani | P | 15 | Bandung | FIN | | 009 | Imron | L | 23 | Bandung | NULL | | 010 | Andi | L | 16 | Bandung | NULL | +------------+----------------+--------+------+------------+---------------+ 10 rows in set (0.00 sec)
1. IF
Fungsi IF() digunakan untuk menampilkan nilai percabangan dari sebuah kondisi atau expression.Sintak Dasar
SELECT IF(expr, true_expr, false_expr) FROM table_name;
Contoh
Contoh #1
mysql> SELECT IF(1 = 3, 'true', 'false'); +----------------------------+ | IF(1 = 3, 'true', 'false') | +----------------------------+ | false | +----------------------------+ 1 row in set (0.00 sec) mysql> SELECT IF(1 = 1, 'true', 'false'); +----------------------------+ | IF(1 = 1, 'true', 'false') | +----------------------------+ | true | +----------------------------+ 1 row in set (0.00 sec)
Contoh #2
Menggunakan tabel pegawai diatas, coba Anda tampilkan data pegawai, jika kolom gender bernilai 'L', tampilkan keterangan 'Laki-Laki', dan sebaliknya tampilkan keterangan 'Perempuan'.
mysql> SELECT id_pegawai, nama_pegawai, IF(gender = 'L', 'Laki-Laki','Perempuan') gender, umur, alamat, kd_departemen -> FROM pegawai; +------------+----------------+-----------+------+------------+---------------+ | id_pegawai | nama_pegawai | gender | umur | alamat | kd_departemen | +------------+----------------+-----------+------+------------+---------------+ | 001 | Nursalim | Laki-Laki | 20 | Brebes | IT | | 002 | Iskiyati | Perempuan | 25 | Bandung | IT | | 003 | Nurul Hikmah | Perempuan | 18 | Semarang | ACC | | 004 | Naura Krasiva | Perempuan | 15 | Jakarta | IT | | 005 | Ahmad Fathoni | Laki-Laki | 20 | Yogyakarta | HR | | 006 | Ramanata | Laki-Laki | 17 | Jakarta | HR | | 007 | Taryono | Laki-Laki | 18 | Surabaya | ACC | | 008 | Nani Indriyani | Perempuan | 15 | Bandung | FIN | | 009 | Imron | Laki-Laki | 23 | Bandung | NULL | | 010 | Andi | Laki-Laki | 16 | Bandung | NULL | +------------+----------------+-----------+------+------------+---------------+ 10 rows in set (0.00 sec)
2. IFNULL
Fungsi IFNULL() digunakan untuk mengembalikan sebuah nilai tertentu pada suatu kolom yang bernilai Null.Sintak Dasar
SELECT IFNULL(kolom_name, value) FROM table_name;
Contoh
Dengan menggunakan data di tabel pegawai diatas, coba Anda tampilkan data pegawai dengan ketentuan jika pegawi tersebut tidak memiliki departemen, maka nilai di kolom kd_departemen adalah 'N/A'.
mysql> SELECT id_pegawai, nama_pegawai, gender, umur, alamat, IFNULL(kd_departemen, 'N/A') kd_departemen -> FROM pegawai; +------------+----------------+--------+------+------------+---------------+ | id_pegawai | nama_pegawai | gender | umur | alamat | kd_departemen | +------------+----------------+--------+------+------------+---------------+ | 001 | Nursalim | L | 20 | Brebes | IT | | 002 | Iskiyati | P | 25 | Bandung | IT | | 003 | Nurul Hikmah | P | 18 | Semarang | ACC | | 004 | Naura Krasiva | P | 15 | Jakarta | IT | | 005 | Ahmad Fathoni | L | 20 | Yogyakarta | HR | | 006 | Ramanata | L | 17 | Jakarta | HR | | 007 | Taryono | L | 18 | Surabaya | ACC | | 008 | Nani Indriyani | P | 15 | Bandung | FIN | | 009 | Imron | L | 23 | Bandung | N/A | | 010 | Andi | L | 16 | Bandung | N/A | +------------+----------------+--------+------+------------+---------------+ 10 rows in set (0.00 sec)
3. NULLIF
Fungsi NULLIF() akan memberikan nilai NULL jika nilai ekspresi pertama sama dengan nilai ekspresi kedua.Sintak Dasar
SQL> SELECT NULLIF(expression1, expression2) FROM table_name;
Contoh
mysql> SELECT NULLIF('A','A'); +-----------------+ | NULLIF('A','A') | +-----------------+ | NULL | +-----------------+ 1 row in set (0.00 sec) mysql> SELECT NULLIF('A','B'); +-----------------+ | NULLIF('A','B') | +-----------------+ | A | +-----------------+ 1 row in set (0.00 sec)
4. CASE WHEN
Fungsi CASE WHEN digunakan untuk menampilkan nilai tertentu berdasarkan syarat-syarat atau kondisi yang digunakan. Fungsi ini mirip dengan perintah IF..ELSE IF..ELSE IF..ELSE pada sebuah bahasa pemrograman.Sintak Dasar
Contoh
Tampilkan data pegawai dengan kondisi atau syarat berikut ini:
- Jika nilai kd_departemen adalah 'IT' tampilkan tulisan 'Information Technology'
- Jika nilai kd_departemen adalah 'ACC' tampilkan tulisan 'Accounting'
- Jika nilai kd_departemen adalah 'FIN' tampilkan tulisan 'Finance'
- Jika nilai kd_departemen adalah 'HR' tampilkan tulisan 'Human Resource'
mysql> SELECT id_pegawai, nama_pegawai, gender, umur, alamat, -> CASE kd_departemen WHEN 'IT' THEN 'Information Technology' -> WHEN 'ACC' THEN 'Accounting' -> WHEN 'FIN' THEN 'Finance' -> WHEN 'HR' THEN 'Human Resource' -> END departemen -> FROM pegawai; +------------+----------------+--------+------+------------+------------------------+ | id_pegawai | nama_pegawai | gender | umur | alamat | departemen | +------------+----------------+--------+------+------------+------------------------+ | 001 | Nursalim | L | 20 | Brebes | Information Technology | | 002 | Iskiyati | P | 25 | Bandung | Information Technology | | 003 | Nurul Hikmah | P | 18 | Semarang | Accounting | | 004 | Naura Krasiva | P | 15 | Jakarta | Information Technology | | 005 | Ahmad Fathoni | L | 20 | Yogyakarta | Human Resource | | 006 | Ramanata | L | 17 | Jakarta | Human Resource | | 007 | Taryono | L | 18 | Surabaya | Accounting | | 008 | Nani Indriyani | P | 15 | Bandung | Finance | | 009 | Imron | L | 23 | Bandung | NULL | | 010 | Andi | L | 16 | Bandung | NULL | +------------+----------------+--------+------+------------+------------------------+ 10 rows in set (0.00 sec)
5. COALESCE
Fungsi COALESCE() digunakan untuk menampilkan ekspresi pertama yang tidak mempunyai nilai null dari beberapa ekspresi yang digunakan.Sintak Dasar
Contoh
mysql> SELECT COALESCE(null, null, null, 'A', 'B'); +--------------------------------------+ | COALESCE(null, null, null, 'A', 'B') | +--------------------------------------+ | A | +--------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT COALESCE('X', null, null, 'A', 'B'); +-------------------------------------+ | COALESCE('X', null, null, 'A', 'B') | +-------------------------------------+ | X | +-------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT COALESCE(null, null, null, null, null); +----------------------------------------+ | COALESCE(null, null, null, null, null) | +----------------------------------------+ | NULL | +----------------------------------------+ 1 row in set (0.00 sec)
~~~## MySQL ##~~~
Sekian tutorial singkat tentang Mengenal Built-in Control Flow Functions Di MySQL. Semoga bermanfaat & Happy Learning MySQL database.
0 comments:
Post a Comment