Ringkasan :dalam tutorial ini, Anda akan mempelajari cara menggunakan SQLite WHERE klausa untuk menentukan kondisi pencarian untuk baris yang dikembalikan oleh kueri.
Pengantar SQLite WHERE klausa
WHERE klausa adalah klausa opsional dari SELECT penyataan. Itu muncul setelah FROM klausa seperti pernyataan berikut:
SELECT
column_list
FROM
table
WHERE
search_condition;Code language: SQL (Structured Query Language) (sql)
Dalam contoh ini, Anda menambahkan WHERE klausa ke SELECT pernyataan untuk memfilter baris yang dikembalikan oleh kueri. Saat mengevaluasi SELECT pernyataan dengan WHERE klausa, SQLite menggunakan langkah-langkah berikut:
- Pertama, periksa tabel di
FROMklausa. - Kedua, evaluasi kondisi di
WHEREklausa untuk mendapatkan baris yang memenuhi ketentuan ini. - Ketiga, buat hasil akhir yang ditetapkan berdasarkan baris pada langkah sebelumnya dengan kolom di
SELECTklausa.
Kondisi pencarian di WHERE memiliki bentuk sebagai berikut:
left_expression COMPARISON_OPERATOR right_expressionCode language: SQL (Structured Query Language) (sql) Misalnya, Anda dapat membentuk kondisi pencarian sebagai berikut:
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;Code language: SQL (Structured Query Language) (sql)
Selain SELECT pernyataan, Anda dapat menggunakan WHERE klausa dalam UPDATE dan DELETE pernyataan.
Operator perbandingan SQLite
Operator perbandingan menguji apakah dua ekspresi sama. Tabel berikut mengilustrasikan operator perbandingan yang dapat Anda gunakan untuk membuat ekspresi:
| Operator | Artinya |
|---|---|
| = | sama dengan |
| <> atau != | Tidak sama dengan |
| Kurang dari | |
| > | Lebih besar dari |
| <= | Kurang dari atau sama dengan |
| >= | Lebih besar dari atau sama dengan |
Operator logika SQLite
Operator logika memungkinkan Anda menguji kebenaran beberapa ekspresi. Operator logika mengembalikan 1, 0, atau nilai NULL.
Perhatikan bahwa SQLite tidak menyediakan tipe data Boolean oleh karena itu 1 berarti TRUE, dan 0 berarti FALSE.
Tabel berikut mengilustrasikan operator logika SQLite:
| Operator | Artinya |
|---|---|
| SEMUA | mengembalikan 1 jika semua ekspresi adalah 1. |
| DAN | mengembalikan 1 jika kedua ekspresi adalah 1, dan 0 jika salah satu ekspresi adalah 0. |
| APA SAJA | mengembalikan 1 jika salah satu dari kumpulan perbandingan adalah 1. |
| ANTARA | mengembalikan 1 jika nilai berada dalam rentang. |
| ADA | mengembalikan 1 jika subkueri berisi baris apa pun. |
| IN | mengembalikan 1 jika nilai ada dalam daftar nilai. |
| SUKA | mengembalikan 1 jika nilai cocok dengan pola |
| TIDAK | membalikkan nilai operator lain seperti NOT EXISTS, NOT IN, NOT BETWEEN, dll. |
| ATAU | mengembalikan nilai true jika salah satu ekspresi adalah 1 |
SQLite WHERE contoh klausa
Kami akan menggunakan tracks tabel di database sampel untuk menggambarkan cara menggunakan WHERE klausa.
Operator kesetaraan (= ) adalah operator yang paling umum digunakan. Misalnya, kueri berikut menggunakan WHERE klausa operator kesetaraan untuk menemukan semua trek di id album 1:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite membandingkan nilai yang disimpan di AlbumId kolom dengan nilai literal 1 untuk menguji apakah mereka sama. Hanya baris yang memenuhi kondisi yang dikembalikan.
Saat Anda membandingkan dua nilai, Anda harus memastikan bahwa keduanya adalah tipe data yang sama. Anda harus membandingkan angka dengan angka, string dengan string, dll.
Jika Anda membandingkan nilai dalam tipe data yang berbeda misalnya, string dengan angka, SQLite harus melakukan konversi tipe data implisit, tetapi secara umum, Anda harus menghindari melakukan hal ini.
Anda menggunakan operator logika untuk menggabungkan ekspresi. Misalnya, untuk mendapatkan trek dari album 1 yang memiliki panjang lebih dari 200.000 milidetik, Anda menggunakan pernyataan berikut:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;Code language: SQL (Structured Query Language) (sql) Cobalah
Pernyataan tersebut menggunakan dua ekspresi albumid = 1 dan milliseconds > 250000 . Ini menggunakan AND operator logika untuk menggabungkan ekspresi ini.
SQLite WHERE klausa dengan LIKE contoh operator
Terkadang, Anda mungkin tidak ingat persis data yang ingin Anda cari. Dalam hal ini, Anda melakukan pencarian yang tidak tepat menggunakan LIKE operator.
Misalnya, untuk menemukan trek mana yang dibuat oleh Smith, Anda menggunakan LIKE operator sebagai berikut:
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;Code language: SQL (Structured Query Language) (sql) Cobalah
Anda mendapatkan trek yang disusun oleh R.A. Smith-Diesel, Adrian Smith, dll.
SQLite WHERE klausa dengan IN contoh operator
IN operator memungkinkan Anda untuk memeriksa apakah suatu nilai ada dalam daftar daftar nilai yang dipisahkan koma. Misalnya, untuk menemukan trek yang memiliki id jenis media 2 atau 3, gunakan IN operator seperti yang ditunjukkan pada pernyataan berikut:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);Code language: SQL (Structured Query Language) (sql) Cobalah
Dalam tutorial ini, Anda telah mempelajari cara menggunakan SQLite WHERE klausa untuk memfilter baris dalam kumpulan hasil akhir menggunakan operator perbandingan dan logika.