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!

MySQL - regexp_like() Function

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:

  1. Terhubung ke basis data MySQL Anda:

    mysql -u your_username -p your_database_name
  2. 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