Apa itu Klausa WHERE di MySQL?
WHERE Clause di MySQL adalah kata kunci yang digunakan untuk menentukan kriteria yang tepat dari data atau baris yang akan dipengaruhi oleh pernyataan SQL yang ditentukan. Klausa WHERE dapat digunakan dengan pernyataan SQL seperti INSERT, UPDATE, SELECT, dan DELETE untuk memfilter record dan melakukan berbagai operasi pada data.
Kami melihat bagaimana melakukan kueri data dari database menggunakan pernyataan SELECT di tutorial sebelumnya. Pernyataan SELECT mengembalikan semua hasil dari tabel database yang ditanyakan.
Namun, itu adalah saat ketika kita ingin membatasi hasil kueri ke kondisi tertentu. Klausa WHERE dalam SQL berguna dalam situasi seperti itu.
WHERE klausa Sintaks
Sintaks dasar untuk klausa WHERE saat digunakan dalam pernyataan MySQL SELECT WHERE adalah sebagai berikut.
SELECT * FROM tableName WHERE condition;
SINI
- "SELECT * FROM tableName" adalah pernyataan SELECT standar
- "WHERE" adalah kata kunci yang membatasi kumpulan hasil kueri pemilihan kami dan "kondisi" adalah filter yang akan diterapkan pada hasil. Filter dapat berupa rentang, nilai tunggal, atau sub kueri.
Sekarang mari kita lihat contoh praktisnya .
Misalkan kita ingin mendapatkan data 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 di meja kerja MySQL di "myflixdb" akan menghasilkan hasil sebagai berikut.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
Klausa WHERE digabungkan dengan - AND LOGICAL Operator
Kondisi WHERE di MySQL saat digunakan bersama dengan operator logika AND, hanya dijalankan jika SEMUA kriteria filter yang ditentukan terpenuhi. Sekarang mari kita lihat contoh praktis - Misalkan kita ingin mendapatkan daftar semua film dalam kategori 2 yang dirilis pada tahun 2008, kita akan menggunakan skrip yang ditunjukkan di bawah ini untuk mencapai itu.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Menjalankan skrip di atas di meja kerja MySQL terhadap "myflixdb" menghasilkan hasil sebagai berikut.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Klausa WHERE digabungkan dengan - OR LOGICAL Operator
Klausa WHERE saat digunakan bersama dengan operator OR, hanya dijalankan jika salah satu atau seluruh kriteria filter yang ditentukan terpenuhi. Naskah berikut mendapatkan semua film dalam kategori 1 atau kategori 2SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Menjalankan skrip di atas di meja kerja MySQL terhadap "myflixdb" menghasilkan hasil sebagai 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 digabungkan dengan - IN Keyword
Klausa WHERE in MySQL, bila digunakan bersama dengan kata kunci IN hanya memengaruhi baris yang nilainya cocok dengan daftar nilai yang diberikan dalam kata kunci IN. Pernyataan MySQL IN membantu mengurangi jumlah klausa OR yang mungkin harus Anda gunakan. Kueri MySQL WHERE IN berikut memberikan baris di mana membership_number adalah 1, 2, atau 3SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Menjalankan skrip di atas di meja kerja MySQL terhadap "myflixdb" menghasilkan hasil sebagai berikut.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
WHERE klausa digabungkan dengan - NOT IN Keyword
Klausa WHERE bila digunakan bersama dengan kata kunci NOT IN TIDAK memengaruhi baris yang nilainya cocok dengan daftar nilai yang diberikan dalam kata kunci NOT IN. Kueri berikut memberikan baris di mana membership_number TIDAK 1, 2, atau 3SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Menjalankan skrip di atas di meja kerja MySQL terhadap "myflixdb" menghasilkan hasil sebagai berikut.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Klausa WHERE digabungkan dengan - PERBANDINGAN Operator
Operator perbandingan yang kurang dari (), sama dengan (=), tidak sama dengan () dapat digunakan dengan Klausa WHERE= Sama Dengan
Skrip berikut mendapatkan semua anggota wanita dari tabel anggota menggunakan operator sama dengan perbandingan.SELECT * FROM `members` WHERE `gender` = 'Female';
Menjalankan skrip di atas di meja kerja MySQL terhadap "myflixdb" menghasilkan hasil sebagai berikut.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
> Lebih dari
Skrip berikut mendapatkan semua pembayaran yang lebih besar dari 2.000 dari tabel pembayaran. PILIH * DARI `pembayaran` DI MANA` jumlah_bayar`> 2000; Menjalankan skrip di atas di meja kerja MySQL terhadap "myflixdb" menghasilkan hasil sebagai 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 di meja kerja MySQL terhadap "myflixdb" menghasilkan hasil sebagai 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 kueri SELECT, UPDATE atau DELETE.
- Kondisi WHERE dalam SQL dapat digunakan bersama dengan operator logika seperti AND dan OR, operator perbandingan seperti, = dll.
- Saat digunakan dengan operator logika AND, semua kriteria harus dipenuhi.
- Saat digunakan dengan operator logika OR, salah satu kriteria harus dipenuhi.
- Kata kunci IN digunakan untuk memilih baris yang cocok dengan daftar nilai.
Asah Otak Misalkan kita ingin mendapatkan daftar film sewaan yang belum dikembalikan pada waktu 25/06/2012. Kita dapat menggunakan klausa pernyataan SQL WHERE bersama dengan operator pembanding dan operator logika AND untuk mencapainya.
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;Menjalankan skrip di atas di meja kerja MySQL 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 |