MySQL Klausa WHERE: AND, OR, IN, NOT IN Contoh Query

Apa yang dimaksud dengan Klausul WHERE MySQL?

MANA Clause in MySQL adalah kata kunci yang digunakan untuk menentukan kriteria pasti data atau baris yang akan terpengaruh oleh pernyataan SQL yang ditentukan. Klausa WHERE dapat digunakan dengan pernyataan SQL seperti INSERT, UPDATE, SELECT, dan DELETE untuk memfilter data dan melakukan berbagai operasi pada data.

Kami melihat cara menanyakan data dari a Database menggunakan pernyataan SELECT pada tutorial sebelumnya. Pernyataan SELECT mengembalikan semua hasil dari tabel database yang ditanyakan.

Namun, ini adalah saat ketika kita ingin membatasi hasil kueri pada kondisi tertentu. Klausa WHERE dalam SQL berguna dalam situasi seperti itu.

klausa WHERE di MySQL
klausa WHERE di MySQL

Sintaks klausa WHERE

Sintaks dasar klausa WHERE bila digunakan dalam a MySQL Pernyataan SELECT WHERE adalah sebagai berikut.

SELECT * FROM tableName WHERE condition;

SINI

  • “PILIH * DARI Nama tabel” adalah standar PILIH pernyataan
  • "DI MANA" adalah kata kunci yang membatasi kumpulan hasil kueri pemilihan kami dan "kondisi" adalah filter yang akan diterapkan pada hasil. Filternya bisa berupa rentang, nilai tunggal, atau sub kueri.

Sekarang mari kita lihat a contoh praktis.

Misalkan kita ingin mendapatkan rincian pribadi anggota dari tabel anggota yang diberi nomor keanggotaan 1, kita akan menggunakan skrip berikut untuk mencapainya.

SELECT * FROM `members` WHERE `membership_number` = 1;

Menjalankan skrip di atas dalam MySQL meja kerja pada “myflixdb” akan menghasilkan hasil berikut.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm

Klausa WHERE dikombinasikan dengan – DAN LOGIS Operator

Kondisi WHERE di MySQL bila digunakan bersama dengan operator logika AND, hanya dijalankan jika SEMUA kriteria filter yang ditetapkan terpenuhi.

Sekarang mari kita lihat contoh praktisnya – Misalkan kita ingin mendapatkan daftar semua film dalam kategori 2 yang dirilis pada tahun 2008, kita akan menggunakan skrip di bawah ini untuk mencapainya.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Menjalankan skrip di atas dalam MySQL workbench terhadap “myflixdb” menghasilkan hasil berikut.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

Klausa WHERE dikombinasikan dengan – OR LOGIS Operator

Klausa WHERE bila digunakan bersama operator OR, hanya dijalankan jika salah satu atau seluruh kriteria filter yang ditetapkan terpenuhi.
Skrip berikut mendapatkan semua film dalam kategori 1 atau kategori 2
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Menjalankan skrip di atas dalam MySQL workbench terhadap “myflixdb” menghasilkan hasil berikut.
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

Klausa WHERE dikombinasikan dengan – IN Kata kunci

DIMANA di MySQL klausa, bila digunakan bersama dengan kata kunci IN hanya mempengaruhi baris yang nilainya cocok dengan daftar nilai yang disediakan dalam kata kunci IN. Itu MySQL Pernyataan IN membantu mengurangi jumlah klausa OR yang mungkin harus Anda gunakan.
Berikut ini MySQL Kueri WHERE IN memberikan baris dengan nomor_keanggotaan adalah 1, 2, atau 3
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

Menjalankan skrip di atas dalam MySQL workbench terhadap “myflixdb” menghasilkan hasil berikut.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com

Klausa WHERE dikombinasikan dengan – TIDAK MASUK Kata kunci

Klausa WHERE bila digunakan bersama dengan kata kunci NOT IN TIDAK mempengaruhi baris yang nilainya cocok dengan daftar nilai yang disediakan dalam kata kunci NOT IN.
Kueri berikut memberikan baris di mana nomor keanggotaan BUKAN 1, 2 atau 3
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

Menjalankan skrip di atas dalam MySQL workbench terhadap “myflixdb” menghasilkan hasil berikut.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

Klausa WHERE dikombinasikan dengan – PERBANDINGAN Operatorso

Operator perbandingan kurang dari (), sama dengan (=), dan tidak sama dengan () dapat digunakan dengan Klausa WHERE

= Sama dengan

Skrip berikut mendapatkan semua anggota perempuan dari tabel anggota menggunakan operator perbandingan sama dengan.
SELECT * FROM `members` WHERE `gender` = 'Female';

Menjalankan skrip di atas dalam MySQL workbench terhadap “myflixdb” menghasilkan hasil berikut.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

> Lebih besar dari

Skrip berikut mendapatkan semua pembayaran yang lebih besar dari 2,000 dari tabel pembayaran.
PILIH * DARI `pembayaran` DI MANA `jumlah_dibayar` > 2000;
Menjalankan skrip di atas dalam MySQL workbench terhadap “myflixdb” menghasilkan hasil berikut.
payment_id membership_number payment_date description amount_paid external_reference_number
1 1 23-07-2012 Movie rental payment 2500 11
3 3 30-07-2012 Movie rental payment 6000 NULL

< > Tidak Sama Dengan

Skrip berikut mendapatkan semua film yang id kategorinya bukan 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Menjalankan skrip di atas dalam MySQL workbench terhadap “myflixdb” menghasilkan hasil berikut.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8

Ringkasan

  • Klausa SQL WHERE digunakan untuk membatasi jumlah baris yang dipengaruhi oleh SELECT, UPDATE atau HAPUS kueri.
  • Kondisi WHERE dalam SQL dapat digunakan bersama dengan operator logika seperti AND dan OR, operator perbandingan seperti ,= dan lain-lain.
  • Saat digunakan dengan AND operator logika, semua kriteria harus dipenuhi.
  • Bila digunakan dengan operator logika OR, salah satu kriteria harus dipenuhi.
  • Kata kunci IN digunakan untuk memilih baris yang cocok dengan daftar nilai.

Pemikat Otak

Misalkan kita ingin mendapatkan daftar film sewaan yang belum dikembalikan tepat waktu 25/06/2012. Kita dapat menggunakan klausa pernyataan SQL WHERE bersama dengan operator perbandingan kurang dari dan operator logika AND untuk mencapainya.
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;

Menjalankan skrip di atas dalam MySQL workbench memberikan hasil sebagai berikut.

reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0