SQL LIKE & NOT LIKE Operator: Fungsi, Syntax, Contoh
Pelajari fungsi, syntax, dan contoh dari SQL LIKE di sini.
Data Analytics
RevoU Staff
Dalam pengelolaan database, operator SQL LIKE berdiri sebagai tool yang esensial dan serbaguna.
SQL LIKE adalah alat untuk mencari data yang cocok dengan pola tertentu. Operator ini hanya dapat diaplikasikan pada tipe data teks saja, seperti string, char, dan varchar.
Di artikel ini, kita akan menggali lebih dalam tentang bagaimana LIKE membedakan dirinya dari operator pencarian lain, memberikan fleksibilitas dalam menemukan kecocokan data. Dari konsep dasar, penggunaan wildcard, sampai berbagai skenario praktis di mana LIKE menjadi pilihan utama, semua akan dibahas secara mendetail.
Sintaks SQL LIKE operator
Sintaks dasar dari operator LIKE dalam SQL adalah sebagai berikut:
- kolom1, kolom2, ... adalah kolom yang ingin dipilih dari tabel.
- nama_tabel adalah tabel tempat kamu mencari data.
- kolom adalah kolom tempat untuk mencocokkan pola.
Elemen penting dalam sintaks ini adalah pola, yang bisa kamu tentukan menggunakan wildcard. Wildcard adalah karakter khusus yang dipakai dalam operator LIKE untuk menciptakan pola pencarian fleksibel.
Ada dua jenis wildcard utama dalam SQL:
- Persentase (%): wildcard ini digunakan untuk menggantikan nol, satu, atau beberapa karakter. Misalnya, LIKE 'A%' akan mencocokkan semua entri yang dimulai dengan huruf "A", tidak peduli apa yang mengikutinya.
- Underscore (_): wildcard ini berfungsi untuk menggantikan satu karakter saja. Misalnya, LIKE 'A__%' akan mencocokkan entri yang dimulai dengan "A" diikuti oleh dua karakter apa saja.
Kombinasi dari kedua wildcard memungkinkan pencarian yang lebih fleksibel. Misalnya, LIKE 'A%o' akan mencari entri yang dimulai dengan "A" dan diakhiri dengan "o", dengan jumlah karakter apa pun di antaranya.
Cara Menggunakan Operator LIKE di SQL
Berikut langkah menggunakan operator LIKE di SQL:
- Pilih tabel dan kolom yang relevan: pertama, tentukan tabel dan kolom yang ingin dicari. Misalnya, kamu memiliki tabel Pelanggan dan ingin mencari nama pelanggan.
- Buka query editor: buka editor SQL yang digunakan, seperti MySQL Workbench, SQL Server Management Studio, atau alat lainnya.
- Tulis query dasar: mulai dengan query dasar untuk memilih data. Contoh: SELECT * FROM Pelanggan;
- Tambahkan klausa WHERE dengan LIKE: modifikasi query dengan menambahkan klausa WHERE dan gunakan operator LIKE. Contoh: SELECT * FROM Pelanggan WHERE Nama LIKE 'polapencarian';
- Gunakan wildcard untuk pola pencarian: terapkan persentase(%) untuk menggantikan nol atau lebih karakter dan underscore (_) untuk menggantikan satu karakter.
Contoh penggunaan
Kamu ingin mencari semua transaksi yang produk terjualnya memiliki nama spesifik, yaitu dimulai dengan "Kopi Susu" dan diakhiri dengan "Gula Aren".
Operator LIKE dalam SQL akan melakukan pencarian dengan memanfaatkan wildcard % untuk mencocokkan pola tertentu dalam nama produk.
Dalam query di atas:
- SELECT * FROM transaksi digunakan untuk memilih semua kolom dari tabel transaksi.
- WHERE nama_produk LIKE 'Kopi Susu % Gula Aren' menentukan kondisi pencarian, di mana nama_produk harus memenuhi pola yang dimulai dengan "Kopi Susu", diikuti oleh karakter apa pun (% sebagai wildcard yang mewakili nol atau lebih karakter), dan diakhiri dengan "Gula Aren".
Output:
Sintaks Operator NOT LIKE dalam SQL
Selain operator LIKE, ada juga operator NOT LIKE.
Dalam SQL, operator NOT LIKE digunakan untuk memilih baris dari sebuah tabel yang tidak cocok dengan pola tertentu. Ini adalah kebalikan dari operator LIKE.
Sintaks dasarnya sebagai berikut:
Berikut penjelasan elemen-elemen dalam sintaks NOT LIKE:
- Kolom: kolom yang ingin diperiksa terhadap pola tertentu.
- NOT LIKE: kata kunci untuk mencari baris yang tidak cocok dengan pola yang diberikan.
- Pola: pola yang ingin dicari (bisa termasuk wildcard seperti % dan _). Pola ini menentukan data yang tidak ingin disertakan dalam hasil query.
- % (persentase): menggantikan nol atau lebih karakter. Misalnya, NOT LIKE 'A%' akan mengecualikan semua entri yang dimulai dengan huruf "A".
- _ (underscore): menggantikan satu karakter. Misalnya, NOT LIKE 'A__%' akan mengecualikan entri yang dimulai dengan "A" diikuti oleh dua karakter apa saja.
Contoh penggunaan
Misalkan kamu memiliki tabel Pelanggan dan ingin mencari pelanggan yang namanya tidak dimulai dengan "A". Querynya akan seperti ini:
<pre><code class="language-markup"><!--SELECT * FROM Pelanggan WHERE Nama NOT LIKE 'A%';--></code></pre>
Dalam contoh di atas, semua baris di tabel Pelanggan di mana kolom Nama tidak dimulai dengan "A" akan dipilih.
Cara Menggunakan Operator NOT LIKE di SQL
Berikut cara menggunakan operator NOT LIKE di SQL:
- Pilih tabel dan kolom yang relevan: pertama, tentukan tabel dan kolom yang ingin dicari. Misalnya, kamu memiliki tabel Pelanggan dan ingin mencari nama pelanggan.
- Buka query editor: Buka editor SQL yang digunakan, seperti MySQL Workbench, SQL Server Management Studio, atau tool lain.
- Tulis query dasar: mulai dengan query dasar untuk memilih data. Contoh: SELECT * FROM Pelanggan;
- Tambahkan klausa WHERE dengan NOT LIKE: modifikasi query dengan menambahkan klausa WHERE dan gunakan operator NOT LIKE. Contoh: SELECT * FROM Pelanggan WHERE Nama NOT LIKE 'polapencarian';
- Gunakan wildcard untuk pola pencarian: terapkan persentase (%) untuk menggantikan nol atau lebih karakter dan underscore (_) untuk menggantikan satu karakter.
Contoh penggunaan
Dalam konteks yang sama dengan contoh sebelumnya, misalkan kamu ingin mengecualikan semua transaksi yang kode produknya tidak dimulai dengan "PRD". Query-nya akan seperti ini:
FAQ (Frequently Ask Question)
Apa perbedaan antara LIKE dan = di SQL?
Perbedaan utama antara LIKE dan = di SQL adalah bagaimana keduanya mencocokkan data.
Operator = digunakan untuk mencocokkan nilai yang tepat. Jika kamu menggunakan = dalam query, baris hanya akan dipilih jika nilai kolom persis sama dengan nilai yang dicari.
Sebaliknya, LIKE diterapkan untuk mencocokkan pola teks dengan menggunakan wildcard. Ini memungkinkan pencarian yang lebih fleksibel, seperti mencari teks yang dimulai, berakhir, atau mengandung pola tertentu.
Bagaimana cara menggunakan LIKE untuk mencari pola di tengah teks?
Untuk mencari pola di tengah teks, gunakan wildcard % di kedua sisi pola. Misalnya, LIKE '%polapencarian%' akan mencari baris di mana kolom tertentu mengandung "polapencarian" di mana pun dalam string-nya.
Bagaimana cara mengoptimalkan query dengan LIKE?
Untuk mengoptimalkan query dengan LIKE, hindari menggunakan wildcard di awal pola (seperti '%value') karena ini memaksa sistem database untuk memindai seluruh tabel.
Jika memungkinkan, gunakan indeks dan coba batasi pencarian LIKE pada bagian string yang lebih spesifik.
Apakah LIKE bisa digunakan dalam JOIN?
Pada dasarnya, kamu dapat menggunakan LIKE dalam klausa ON dari pernyataan JOIN.
Proses ini menggabungkan tabel berdasarkan pola teks yang cocok, bukan hanya nilai yang sama persis. Contohnya, JOIN ... ON table1.column LIKE table2.column akan menggabungkan baris berdasarkan pola yang cocok di kolom yang ditentukan.