Pola LIKE dan Karakter Wildcard
Gunakan LIKE dengan wildcard % dan _, pahami sensitivitas huruf besar-kecil, dan pilih ILIKE di PostgreSQL untuk pencocokan tanpa membedakan huruf besar-kecil.
Pola LIKE dan Karakter Wildcard adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Fungsi LIKE
LIKE mencocokkan string dengan suatu pola. Terdapat dua karakter pengganti:
%— urutan apa pun, termasuk urutan kosong_— tepat satu karakter
Contoh Sederhana
Cocokkan berdasarkan awalan, akhiran, dan bagian string:
SELECT email FROM users WHERE email LIKE 'a%'; -- starts with a
SELECT email FROM users WHERE email LIKE '%@gmail.com'; -- ends with @gmail.com
SELECT email FROM users WHERE email LIKE '%admin%'; -- contains adminKarakter Pengganti Satu Karakter
_ cocok tepat dengan satu karakter. Sangat berguna untuk kode dengan lebar tetap:
-- 6-char SKU starting with A:
SELECT * FROM products WHERE sku LIKE 'A_____';
-- US zip+4:
SELECT * FROM addresses WHERE zip LIKE '_____-____';Peka Huruf Besar-Kecil
LIKE secara bawaan peka huruf besar-kecil di PostgreSQL. Gunakan ILIKE untuk pencocokan yang tidak peka huruf besar-kecil:
SELECT * FROM users WHERE email LIKE '%@gmail.com'; -- ✗ misses @GMAIL.com
SELECT * FROM users WHERE email ILIKE '%@gmail.com'; -- ✓Melakukan Escape pada Karakter Pengganti
Untuk mencocokkan % atau _ secara harfiah, lakukan escape dengan garis miring terbalik (atau tentukan karakter ESCAPE Anda sendiri):
-- Match strings that contain '50%':
SELECT * FROM coupons WHERE code LIKE '%50\%%';
-- Custom escape character:
SELECT * FROM coupons WHERE code LIKE '%50!%%' ESCAPE '!';LIKE dan Indeks
Indeks B-tree hanya membantu pola dengan awalan:
-- Uses index (prefix is fixed):
SELECT * FROM users WHERE email LIKE 'alice%';
-- Does NOT use a normal index (leading wildcard):
SELECT * FROM users WHERE email LIKE '%example.com';Memperbaiki Pencarian dengan Karakter Pengganti di Awal
Untuk pencarian "%example%", gunakan indeks GIN trigram (pg_trgm) — materi ini dibahas dalam Pengindeksan Lanjutan.
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX users_email_trgm_idx ON users USING GIN (email gin_trgm_ops);
SELECT * FROM users WHERE email LIKE '%example%'; -- now indexableNOT LIKE
Meniadakan kecocokan:
SELECT * FROM emails WHERE subject NOT LIKE 'RE:%';SIMILAR TO dan Ekspresi Reguler (PostgreSQL)
Untuk pencocokan pola yang lebih kaya:
-- SIMILAR TO — SQL regex (rarely used)
SELECT 'abc' SIMILAR TO '%(a|b)%'; -- TRUE
-- POSIX regex:
SELECT 'abc123' ~ '^[a-z]+[0-9]+$'; -- TRUE
SELECT 'ABC' ~* 'abc'; -- TRUE (case insensitive)Membuat Kotak Pencarian
Saat menghubungkan kotak pencarian pengguna, bersihkan karakter pengganti dalam input terlebih dahulu untuk menghindari perilaku yang tidak terduga:
-- Escape user input's special chars before concatenating to LIKE pattern,
-- or use to_tsquery for word-level search.
SELECT * FROM products
WHERE LOWER(name) LIKE LOWER('%' || $1 || '%');Jangan Membuat Ulang Pencarian Teks Lengkap
Untuk pencarian berperingkat dan sadar bahasa di seluruh dokumen, gunakan tsvector + GIN, bukan LIKE. Materi ini dibahas nanti dalam Pengindeksan Lanjutan.
Ringkasan
LIKE sangat baik untuk pencocokan pola sederhana.
%= string apa pun,_= satu karakter- Gunakan ILIKE untuk pencocokan yang tidak peka huruf besar-kecil
- Pencarian awalan menggunakan B-tree; pencarian bagian string memerlukan trigram
Pemeriksaan Singkat
Pola mana yang cocok dengan string yang diakhiri .com?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola LIKE dan Karakter Wildcard” gratis?
Ya — teks lengkap “Pola LIKE dan Karakter Wildcard” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pola LIKE dan Karakter Wildcard”?
Gunakan LIKE dengan wildcard % dan _, pahami sensitivitas huruf besar-kecil, dan pilih ILIKE di PostgreSQL untuk pencocokan tanpa membedakan huruf besar-kecil. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Pola LIKE dan Karakter Wildcard” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pola LIKE dan Karakter Wildcard
- IN dan NOT IN untuk Himpunan
- BETWEEN untuk Rentang
- IS NULL, IS NOT NULL, dan COALESCE