Cara Menggunakan AND Dan OR Clause Di MySQL
Kedua operator diatas bekerja sesuai dengan prinsip logika AND dan OR, seperti tabel logika di bawah ini:
A | B | AND | OR |
---|---|---|---|
TRUE | TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE | TRUE |
FALSE | TRUE | FALSE | TRUE |
FALSE | FALSE | FALSE | FALSE |
Dari tabel logika diatas, dapat disimpulkan Logika AND akan bernilai true jika kedua operand A dan B bernilai true. dan Logika OR akan bernilai true jika salah satu dari kedua operand A dan B bernilai true.
Sintak Dasar
Di bawah ini adalah sintak dasar dari operator AND di MySQL:
SELECT column_name1, column_name2, column_nameN FROM table_name WHERE [condition1] AND [condition2]...AND [conditionN];
Sedangkan di bawah ini adalah sintak dasar dari operator OR di MySQL:
SELECT column_name1, column_name2, column_nameN FROM table_name WHERE [condition1] OR [condition2]...OR [conditionN];
Pada SQL query, operator AND diterjemahkan sebagai "DAN" dan operator "OR" sebagai "ATAU".
Contoh
Misalkan Anda telah memiliki sebuah table "employee" dengan data-data sebagai berikut:
+-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 002 | Naura | P | Bandung | 2000000 | HRD | | 003 | Ahmad | L | Semarang | 5000000 | ACC | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+ 5 rows in set (0.00 sec)
Dari data-data diatas,
- Tampilkan semua data dari table "employee" yang memiliki jenis kelamin laki-laki dan gaji lebih besar Rp 3.000.000?
Untuk menampilkan sesuai dengan kriteria diatas, Anda dapat menggunakan operator AND seperti query berikut ini:mysql> SELECT * FROM employee -> WHERE gender = 'L' -> AND salary > 3000000; +-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 003 | Ahmad | L | Semarang | 5000000 | ACC | +-------------+---------------+--------+----------+---------+------------+ 1 row in set (0.00 sec)
- Tampilkan semua data dari table "employee" yang memiliki jenis kelamin laki-laki dan gaji lebih besar Rp 10.000.000?
Untuk menampilkan sesuai dengan kriteria diatas, Anda dapat menggunakan operator AND seperti query berikut ini:mysql> SELECT * FROM employee -> WHERE gender = 'L' -> AND salary > 10000000; Empty set (0.00 sec)
- Tampilkan semua data dari table "employee" yang memiliki jenis kelamin perempuan atau gaji lebih besar Rp 3.000.000?
Untuk menampilkan sesuai dengan kriteria diatas, Anda dapat menggunakan operator OR seperti query berikut ini:mysql> SELECT * FROM employee -> WHERE gender = 'P' -> OR salary > 3000000; +-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 002 | Naura | P | Bandung | 2000000 | HRD | | 003 | Ahmad | L | Semarang | 5000000 | ACC | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+ 4 rows in set (0.00 sec)
- Tampilkan semua data dari table "employee" yang memiliki jenis kelamin perempuan atau departemen IT?
Untuk menampilkan sesuai dengan kriteria diatas, Anda dapat menggunakan operator OR seperti query berikut ini:mysql> SELECT * FROM employee -> WHERE gender = 'P' -> OR departemen = 'IT'; +-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 002 | Naura | P | Bandung | 2000000 | HRD | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+ 4 rows in set (0.00 sec)
Komentar
Posting Komentar