Operator Perbandingan Pada MySQL

Setelah membahas operator aritmatika kali ini penulis akan membahas mengenai operator perbandingan pada MySQL. Sebelum membahas lebih detail, berikut ini adalah operator perbandingan yang tersedia di MySQL :
Operator Deskripsi
Lebih dari 
>=  Lebih dari sama dengan 
Kurang dari 
<=  Kurang dari sama dengan 
= Sama dengan 
<=>  Sama dengan (Membandingkan nilai NULL) 
<>, !=  Tidak sama dengan 
Between .. and ..  Rentang nilai 
Not Between Tidak dalam rentang nilai
In ()  Dalam sekumpulan nilai 
Not In ()  Tidak dalam sekumpulan nilai 
Null ()  Nilai NULL 
Is Not Null () Nilai tidak NULL (NOT NULL)
Like Mencocokkan pola/pattern
Not Like Mencocokkan pola/pattern

Sebagai contoh penulis memiliki tabel dosen dan tabel gaji seperti berikut:

mysql> desc dosen;
+----------+---------------+------+-----+---------+----------------+
| Field    | Type          | Null | Key | Default | Extra          |
+----------+---------------+------+-----+---------+----------------+
| id_dosen | int           | NO   | PRI | NULL    | auto_increment |
| nid      | char(8)       | YES  |     | NULL    |                |
| nama     | varchar(65)   | YES  |     | NULL    |                |
| j_kel    | enum('L','P') | YES  |     | NULL    |                |
| t_lahir  | date          | YES  |     | NULL    |                |
| alamat   | varchar(50)   | YES  |     | NULL    |                |
| kota     | varchar(50)   | YES  |     | NULL    |                |
| telepon  | char(12)      | YES  | UNI | NULL    |                |
| email    | varchar(50)   | YES  | UNI | NULL    |                |
+----------+---------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

mysql> desc gaji;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id_gaji    | int         | NO   | PRI | NULL    | auto_increment |
| dosen_id   | int         | NO   | UNI | NULL    |                |
| kontrak    | char(9)     | YES  |     | NULL    |                |
| gaji_pokok | varchar(14) | YES  |     | NULL    |                |
| tunjangan  | varchar(14) | YES  |     | NULL    |                |
| lembur     | varchar(14) | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

Operator Null dan Not Null
Operator ini digunakan untuk mencari nilai yang kosong (null) dan tidak kosong (not null), contohnya seperti berikut:

mysql> insert into dosen (nama, j_kel, t_lahir, alamat, kota) values ("Ludwig", "L", "1991-06-15", "Jalan kudeta 9", "Bogor");
Query OK, 1 row affected (0.01 sec)

mysql> select id_dosen, nid, nama, telepon, email from dosen where telepon is null;
+----------+------+--------+---------+-------+
| id_dosen | nid  | nama   | telepon | email |
+----------+------+--------+---------+-------+
|       71 | NULL | Ludwig | NULL    | NULL  |
+----------+------+--------+---------+-------+
1 row in set (0.00 sec)

mysql> select id_dosen, nid, nama, telepon, email from dosen where telepon is no
t null and id_dosen > 65;
+----------+----------+-------------------------+--------------+-----------------------+
| id_dosen | nid      | nama                    | telepon      | email                 |
+----------+----------+-------------------------+--------------+-----------------------+
|       66 | 50098760 | Maulida, SE., MM        | 085611111130 | malidya@mail.com      |
|       67 | 60098760 | Hana, S.H,M.H           | 085611111131 | hananah@mail.com      |
|       68 | 70098761 | Talita, S.H,M.H         | 085611111132 | talitaa@mail.com      |
|       69 | 80098761 | Cullen Stanton, S.H,M.H | 085611111133 | cullenstaton@mail.com |
|       70 | 90098761 | Anora, S.H,M.H          | 085611111134 | anora@mail.com        |
+----------+----------+-------------------------+--------------+-----------------------+
5 rows in set (0.00 sec)

Kita juga bisa menggunakannya untuk mengupdate maupun menghapus data, contohnya seperti berikut:

mysql> update dosen set email = "ludwig@mail.com" where email is null;
Query OK, 1 row affected (0.26 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select id_dosen, nid, nama, telepon, email from dosen where telepon is null;
+----------+------+--------+---------+-----------------+
| id_dosen | nid  | nama   | telepon | email           |
+----------+------+--------+---------+-----------------+
|       71 | NULL | Ludwig | NULL    | ludwig@mail.com |
+----------+------+--------+---------+-----------------+
1 row in set (0.00 sec)

mysql> delete from dosen where telepon is null;
Query OK, 1 row affected (0.11 sec)

mysql> select id_dosen, nid, nama, telepon, email from dosen where telepon is null;
Empty set (0.00 sec)

Operand
Operator ini digunakan untuk mencari nilai dengan melakukan perbandingan seperti mencari nilai lebih besar atau kurang dari, dsb, contohnya seperti berikut:

mysql> select id_dosen as ID, nama as Nama from dosen where id_dosen = 5;
+----+---------------------+
| ID | Nama                |
+----+---------------------+
|  5 | Aldi Taher, ST., MT |
+----+---------------------+
1 row in set (0.00 sec)

mysql> select id_dosen as ID, nama as Nama from dosen where id_dosen > 5 limit 5;
+----+---------------------------------------+
| ID | Nama                                  |
+----+---------------------------------------+
|  6 | Afisyah, S.Psi., MSI                  |
|  7 | Achmad Riza Patriyani, DR. S.SI, M.SI |
|  8 | Andriyani, S.TR.KEB                   |
|  9 | Anggraini, S.I.KOM., M.SI             |
| 10 | Alfida Chaniago, PROF.DR.PSIKOLOG     |
+----+---------------------------------------+
5 rows in set (0.00 sec)

mysql> select id_dosen as ID, nama as Nama from dosen where id_dosen >= 5 limit 5;
+----+---------------------------------------+
| ID | Nama                                  |
+----+---------------------------------------+
|  5 | Aldi Taher, ST., MT                   |
|  6 | Afisyah, S.Psi., MSI                  |
|  7 | Achmad Riza Patriyani, DR. S.SI, M.SI |
|  8 | Andriyani, S.TR.KEB                   |
|  9 | Anggraini, S.I.KOM., M.SI             |
+----+---------------------------------------+
5 rows in set (0.00 sec)

Dari contoh diatas dapat dilihat perbedaan operator lebih dari ( > ) menampilkan data setelah angka 5, sedangkan lebih dari sama dengan ( >= ) menampilkan data dimulai dari 5. Kita juga bisa menggunakannya untuk mencari nilai string / karakter seperti berikut:

mysql> select nama as Nama, j_kel as Gender from dosen where j_kel = "L" limit 5;
+-------------------------------------+--------+
| Nama                                | Gender |
+-------------------------------------+--------+
| Angga Sandra Saputra, DR. SKOM., MT | L      |
| AA Ardiansyah, ST., MT              | L      |
| AA Sumanto, SE., MMSI               | L      |
| Aiman, SE., MM                      | L      |
| Aldi Taher, ST., MT                 | L      |
+-------------------------------------+--------+
5 rows in set (0.00 sec)

mysql> select nama as Nama, j_kel as Gender from dosen where j_kel != "L" limit 5;
+-----------------------------------+--------+
| Nama                              | Gender |
+-----------------------------------+--------+
| Afisyah, S.Psi., MSI              | P      |
| Andriyani, S.TR.KEB               | P      |
| Anggraini, S.I.KOM., M.SI         | P      |
| Alfida Chaniago, PROF.DR.PSIKOLOG | P      |
| Aminah, M.KES                     | P      |
+-----------------------------------+--------+
5 rows in set (0.00 sec)

Sedangkan operator < = > adalah untuk mencari field yang masih kosong / NULL, contohnya seperti berikut:

mysql> select nid, nama, kota, telepon, email from dosen where telepon is null;
+------+--------+--------+---------+-------+
| nid  | nama   | kota   | telepon | email |
+------+--------+--------+---------+-------+
| NULL | Ludwig | Bogor  | NULL    | NULL  |
+------+--------+--------+---------+-------+
1 row in set (0.00 sec)

mysql> select nid, nama, kota, telepon, email from dosen where kota <=> "Bogor" limit 5;
+------+--------+-------+---------+-------+
| nid  | nama   | kota  | telepon | email |
+------+--------+-------+---------+-------+
| NULL | Ludwig | Bogor | NULL    | NULL  |
+------+--------+-------+---------+-------+
1 row in set (0.00 sec)

Bedanya operator null dengan < = > terletak pada kondisinya dimana pada null langsung mencari nilai null berdasarkan kolom yang dipilih, sedangkan pada < = > berdasarkan nilai yang dapat dijadikan sebagai parameter.

Operator IN () dan NOT IN ()
Penggunaan operator in () dan not in () adalah untuk menampilkan atau tidak menampilkan data berdasarkan nilai-nilai yang dipilih, contohnya seperti berikut:

mysql> select id_dosen, nama from dosen where id_dosen in (10, 11, 12);
+----------+-----------------------------------+
| id_dosen | nama                              |
+----------+-----------------------------------+
|       10 | Alfida Chaniago, PROF.DR.PSIKOLOG |
|       11 | Aminah, M.KES                     |
|       12 | Aisyah, SS, M.HUM                 |
+----------+-----------------------------------+
3 rows in set (0.00 sec)

mysql> select id_dosen, nama from dosen where id_dosen not in (10, 11, 12) and id_dosen >= 9 limit 5;
+----------+---------------------------------------------+
| id_dosen | nama                                        |
+----------+---------------------------------------------+
|        9 | Anggraini, S.I.KOM., M.SI                   |
|       13 | Anastasya, S.PSI., M.SI                     |
|       14 | Adinda Zulfa, Ristya MSI., PSIKOLOG         |
|       15 | Boy Chandra, ST,MMSI,MSC                    |
|       16 | Ben Rusdi Maulana Setya Putra, S.SI., M.T.I |
+----------+---------------------------------------------+
5 rows in set (0.00 sec)
Pada operator not in () dapat dilihat bahwa nilai yang di pilih tidak akan di tampilkan. Kita juga dapat menggunakan karakter / string seperti berikut:
mysql> select dosen_id, univ from pendidikan where univ in ("Universitas Indonesia", "Universitas Telkom", "Universitas Negeri Jakarta") limit 3;
+----------+----------------------------+
| dosen_id | univ |
+----------+----------------------------+
| 1 | Universitas Indonesia |
| 1 | Universitas Indonesia |
| 4 | Universitas Negeri Jakarta |
+----------+----------------------------+
3 rows in set (0.00 sec)

Operator Between dan Not Between
Penggunaan operator between adalah untuk mendapatkan nilai berdasarkan rentang nilai dan biasanya diikuti dengan penggunaan operator logika yaitu and, contohnya seperti berikut:

mysql> select id_dosen from dosen where id_dosen between 10 and 15;
+----------+
| id_dosen |
+----------+
|       10 |
|       11 |
|       12 |
|       13 |
|       14 |
|       15 |
+----------+
6 rows in set (0.00 sec)

mysql> select id_dosen from dosen where id_dosen not between 10 and 15 and id_dosen >= 9 limit 5;
+----------+
| id_dosen |
+----------+
|        9 |
|       16 |
|       17 |
|       18 |
|       19 |
+----------+
5 rows in set (0.00 sec)

Kita juga dapat menggunakan operator between dengan tipe data date, contohnya seperti berikut:

mysql> select nama, t_lahir from mahasiswa where (t_lahir between "1996-01-01" and "1999-12-30") limit 5;
+------------------+------------+
| nama             | t_lahir    |
+------------------+------------+
| AA Aditya A      | 1996-09-03 |
| A Aditya A       | 1996-06-03 |
| A Dimas A        | 1998-08-03 |
| A Nur Muliansyah | 1999-09-21 |
| A Rafli Harun    | 1999-05-22 |
+------------------+------------+
5 rows in set (0.00 sec)

mysql> select nama, t_lahir from mahasiswa where (t_lahir not between "1996-01-01" and "1999-12-30") limit 5;
+----------------+------------+
| nama           | t_lahir    |
+----------------+------------+
| A Faisal Dimas | 1995-02-23 |
| A Faridah Nur  | 1995-03-13 |
| A Fatirah      | 1994-04-23 |
| A Nur Afifah   | 1993-03-13 |
| A Nur Aifa     | 1995-05-11 |
+----------------+------------+
5 rows in set (0.00 sec)

Operator Like
Operator like pada mysql digunakan untuk mencari nilai dengan mencocokan pattern / pola, contohnya seperti berikut ini:

mysql> select nama from mahasiswa where nama like "ba%";
+---------------+
| nama          |
+---------------+
| Bagus Prakoso |
| Bayu Raise    |
| Bara          |
+---------------+
3 rows in set (0.00 sec)

Dari contoh diata data yang ditampilkan yakni yang berawalan "Ba", selain itu, pola / pattern tersebut incase sensitive atau tidak terpengaruh dengan huruf besar dan kecil. Untuk pembahasan operator like lebih lengkap dapat dibaca pada artikel operator like melalui daftar isi. Itulah sejumlah operator perbandingan pada MySQL, dan jangan sungkan untuk bertanya melalui kolom komentar jika masih ada yang belum dipahami.
Bayu Radityo

Seorang lulusan teknik informatika yang senang dalam berbagi ilmu pengetahuan, dan membuat karya digital berupa photomanipulation dan digital drawing. instagram external-link

Posting Komentar

Lebih baru Lebih lama