Panduan Awal Mengenai Fungsi REGEXP_LIKE() di MySQL
Hai sana, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia MySQL dan menjelajahi fungsi yang kuat yakni REGEXP_LIKE(). Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda, dan kita akan berjalan langkah demi langkah. Pada akhir panduan ini, Anda akan dapat menggunakan ekspresi regular seperti seorang profesional!
Apa Itu REGEXP_LIKE()?
Sebelum kita masuk ke detil, mari kita memahami apa yang dimaksudkan oleh REGEXP_LIKE(). Bayangkan Anda adalah seorang detektif yang mencari pola tertentu di laut teks. Itu tepat apa yang dilakukan REGEXP_LIKE() - itu mencari pola dalam data Anda menggunakan sesuatu yang disebut ekspresi regular (regex untuk pendek).
Dasar-Dasar
REGEXP_LIKE() adalah fungsi di MySQL yang mengembalikan 1 (benar) jika string cocok dengan pola ekspresi regular, dan 0 (salah) jika tidak. Itu seperti meminta, "Hai MySQL, teks ini menyerupai apa yang saya cari?"
Mari kitauraikan sintaksenya:
REGEXP_LIKE(expr, pattern[, match_type])
-
expr
: Ini adalah teks yang Anda ingin cari. -
pattern
: Ini adalah pola ekspresi regular yang Anda cari. -
match_type
: Ini opsional dan memungkinkan Anda menentukan bagaimana Anda ingin mencocokkan (sensitif huruf besar/kecil, multi baris, dll.).
Memulai dengan REGEXP_LIKE()
Query Pertama REGEXP_LIKE() Anda
Mari kita mulai dengan contoh sederhana. Misal kita memiliki tabel books
dengan kolom title
. Kita ingin menemukan semua buku yang memiliki kata "SQL" di judulnya.
SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'SQL');
Query ini akan mengembalikan semua judul buku yang mengandung "SQL", tanpa memperhatikan kasus (SQL, sql, SqL, dll.).
Kesensitifan Kasus
Apa bila kita ingin lebih spesifik dan mencocokkan hanya "SQL" dalam huruf besar? Kita dapat menggunakan parameter match_type
:
SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'SQL', 'c');
Simbol 'c' memberitahu MySQL untuk melakukan pencocokkan yang sensitif terhadap kasus.
Pencocokkan Pola Lanjut
Sekarang kita sudah mulai merasakan, mari kita masuk ke beberapa pola lanjut!
Pencocokkan di Awal atau Akhir
Untuk mencocokkan pola di awal string, gunakan '^':
SELECT title
FROM books
WHERE REGEXP_LIKE(title, '^The');
Ini akan menemukan semua buku yang dimulai dengan "The".
Untuk mencocokkan di akhir, gunakan '$':
SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'Edition$');
Ini menemukan buku yang berakhir dengan "Edition".
Pencocokkan Beberapa Pola
Ingin menemukan buku tentang SQL atau Python? Tidak masalah!
SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'SQL|Python');
Simbol '|' berperan seperti operator "OR" dalam regex.
Pencocokkan Karakter dalam Rentang
Misal kita ingin menemukan buku dengan nomor di judulnya:
SELECT title
FROM books
WHERE REGEXP_LIKE(title, '[0-9]');
Ini akan mencocokkan semua judul yang mengandung digit dari 0 hingga 9.
Contoh Dunia Nyata
Contoh 1: Menemukan Alamat Email
Imajinasikan Anda memiliki tabel customers
dan ingin memvalidasi alamat email:
SELECT email
FROM customers
WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$');
Pola ini memeriksa format email yang valid. mari kitauraikan:
-
^[A-Za-z0-9._%+-]+
: Dimulai dengan satu atau lebih huruf, angka, atau simbol tertentu -
@
: Diikuti oleh simbol @ -
[A-Za-z0-9.-]+
: Kemudian satu atau lebih huruf, angka, titik, atau tanda minus -
\\.[A-Za-z]{2,}$
: Diakhiri dengan titik dan setidaknya dua huruf
Contoh 2: Menemukan Nomor Telepon
Mari kita temukan nomor telepon dalam format tertentu:
SELECT phone
FROM contacts
WHERE REGEXP_LIKE(phone, '^\\+1-[0-9]{3}-[0-9]{3}-[0-9]{4}$');
Pola ini mencocokkan nomor telepon seperti +1-123-456-7890.
Fungsi REGEXP_LIKE() Dalam Program Klien
Ketika Anda bekerja dengan program klien MySQL seperti MySQL command-line client, Anda dapat menggunakan REGEXP_LIKE() dalam query Anda seperti yang telah kita lakukan dalam contoh. Berikut adalah cara Anda mungkin menggunakannya dalam program klien:
-
Terhubung ke basis data MySQL Anda:
mysql -u your_username -p your_database_name
-
Setelah terhubung, Anda dapat menjalankan query menggunakan REGEXP_LIKE():
SELECT * FROM your_table WHERE REGEXP_LIKE(your_column, 'your_pattern');
Ingat, kekuatan REGEXP_LIKE() adalah bahwa itu bekerja tanpa kendala apakah Anda menggunakan tool GUI, klien command-line, atau menanamkan SQL dalam kode aplikasi Anda!
Kesimpulan
Selamat! Anda telah mengambil langkah pertama ke dunia yang kuat ekspresi regular dalam MySQL. REGEXP_LIKE() adalah fungsi yang multifungsi dan dapat membantu Anda menemukan pola dalam data Anda yang sulit atau mustahil ditemukan dengan perbandingan LIKE sederhana.
Ingat, latihan membuat sempurna. Cobalah menciptakan pola Anda sendiri dan mengujinya pada data contoh. Sebelum Anda tahu, Anda akan menggunakan REGEXP_LIKE() untuk mengungkapkan wawasan di basis data Anda seperti seorang detektif data yang sebenarnya!
Hari-hari suka saja, dan mayat ekspresi regular Anda selalu menemukan cocokan!
Credits: Image by storyset