MySQL - Fungsi REGEXP_SUBSTR()

Halo teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai sebuah perjalanan yang menarik ke dunia fungsi REGEXP_SUBSTR() di MySQL. Jangan khawatir jika Anda baru belajar programming – saya akan menjadi panduan yang ramah, menjelaskan segala sesuatunya secara langkah demi langkah. Jadi, ambil secangkir kopi, dan mari kita masuk ke dalam!

MySQL - regexp_substr() Function

Apa itu REGEXP_SUBSTR()?

Sebelum kita mulai memanipulasi kode, mari kita pahami apa saja yang dimaksudkan oleh REGEXP_SUBSTR(). Bayangkan Anda adalah seorang detektif yang mencari pola tertentu dalam string teks panjang. Itu tepat apa yang dilakukan REGEXP_SUBSTR() – itu seperti sebuah kaca pembesar super cerdas untuk basis data Anda!

REGEXP_SUBSTR() adalah sebuah fungsi di MySQL yang menggunakan ekspresi regular untuk mencari dan mengekstrak pola tertentu dari string. Itu seperti memiliki pisau瑞士 Army knife untuk manipulasi teks dalam kotak alat basis data Anda.

Sinkronisasi

Ini adalah penampilan fungsi REGEXP_SUBSTR():

REGEXP_SUBSTR(subject, pattern[, position[, occurrence[, match_type]]])

Jangan biarkan ini menakutkan Anda! Kita akan membongkar itu secara piece by piece:

  • subject: String yang ingin kita cari (haystack kita)
  • pattern: Pola ekspresi regular yang kita cari (jarum kita)
  • position: Dimana untuk memulai pencarian (opsional, default adalah 1)
  • occurrence: Mana yang akan dikembalikan jika ada beberapa kecocokan (opsional, default adalah 1)
  • match_type: Opsi tambahan untuk kecocokan (opsional)

Penggunaan Dasar

Mari kita mulai dengan contoh sederhana untuk merasakan air:

SELECT REGEXP_SUBSTR('Hello, World!', 'World') AS result;

Jika Anda menjalankan query ini, Anda akan mendapatkan:

result
World

Apa yang terjadi disini? Kita meminta MySQL untuk mencari kata 'World' dalam string 'Hello, World!', dan itu berhasil!

Menjadi Lebih Kreatif

Sekarang, mari kita mencoba sesuatu yang sedikit lebih sulit. Misal kita punya daftar alamat email, dan kita ingin mengekstrak hanya nama domain:

SELECT REGEXP_SUBSTR('[email protected]', '@(.+)$') AS domain;

Hasil:

domain
@example.com

Ups! Kita mendapatkan simbol '@' juga. Mari kita memperbaiki pola kita:

SELECT REGEXP_SUBSTR('[email protected]', '@(.+)$', 1, 1, 'c') AS domain;

Hasil:

domain
example.com

Lebih baik! Huruf 'c' dalam parameter match_type memberitahu MySQL untuk mengembalikan kelompok yang ditangkap (bagian dalam kurung) bukan keseluruhan kecocokan.

Bekerja dengan Data Nyata

Mari kita buat tabel kecil untuk berlatih:

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100)
);

INSERT INTO users (email) VALUES
('[email protected]'),
('[email protected]'),
('[email protected]');

Sekarang, mari kita ekstrak semua nama domain:

SELECT email, REGEXP_SUBSTR(email, '@(.+)$', 1, 1, 'c') AS domain
FROM users;

Hasil:

email domain
[email protected] gmail.com
[email protected] yahoo.com
[email protected] hotmail.com

Apakah itu menarik? Dengan hanya satu query, kita telah mengekstrak semua nama domain!

Teknik Tingkat Lanjut

Beberapa Kecocokan

kadang-kadang, Anda mungkin ingin menemukan beberapa kecocokan dari pola. Mari kita lihat bagaimana:

SELECT REGEXP_SUBSTR('apple,banana,cherry,date', '[^,]+', 1, 1) AS first_fruit,
REGEXP_SUBSTR('apple,banana,cherry,date', '[^,]+', 1, 2) AS second_fruit,
REGEXP_SUBSTR('apple,banana,cherry,date', '[^,]+', 1, 3) AS third_fruit;

Hasil:

first_fruit second_fruit third_fruit
apple banana cherry

Di sini, kita menggunakan [^,]+ untuk mencocokkan semua karakter yang bukan koma. Angka di akhir (1, 2, 3) memberitahu MySQL kecocokan mana yang harus dikembalikan.

Kecocokan Tak Peka Huruf

Apa jika kita ingin mencocokkan pola tanpa memperhatikan huruf besar kecil? Kita dapat menggunakan opsi 'i':

SELECT REGEXP_SUBSTR('The Quick Brown Fox', 'quick', 1, 1, 'i') AS result;

Hasil:

result
Quick

Meskipun kita mencari 'quick' dalam huruf kecil, kita menemukan 'Quick' dalam string!

Fungsi REGEXP_SUBSTR() Menggunakan Program Klien

Meskipun MySQL Workbench sangat bagus untuk menjalankan query, Anda juga dapat menggunakan REGEXP_SUBSTR() dalam berbagai bahasa pemrograman. Ini adalah contoh singkat dalam Python:

import mysql.connector

# Hubungi basis data MySQL Anda
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()

# Jalankan query menggunakan REGEXP_SUBSTR()
query = "SELECT REGEXP_SUBSTR('Hello, World!', 'World') AS result"
cursor.execute(query)

# Fetch dan cetak hasil
result = cursor.fetchone()
print(f"Hasilnya adalah: {result[0]}")

# Jangan lupa menutup koneksi
cnx.close()

Skrip ini menghubungi basis data MySQL Anda, menjalankan query REGEXP_SUBSTR() sederhana, dan mencetak hasilnya.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dunia yang kuat REGEXP_SUBSTR(). Ingat, seperti alat detektif yang bagus, itu memerlukan latihan untuk dipahami. Jangan khawatir untuk mencoba pola dan opsi yang berbeda.

Berikut adalah tabel praktis yang menyummaris parameter REGEXP_SUBSTR():

Parameter Deskripsi Opsional?
subject String yang ingin dicari Tidak
pattern Pola ekspresi regular yang dicari Tidak
position Dimana untuk memulai pencarian Ya
occurrence Mana kecocokan yang akan dikembalikan Ya
match_type Opsi kecocokan tambahan (misalnya, 'c', 'i') Ya

Tetap berlatih, dan segera Anda akan menjadi ahli mengekstrak data dari string! Ingat, di dunia basis data, kemampuan untuk memanipulasi dan mengekstrak data tertentu adalah kekuatan super. Dan sekarang, Anda sudah dijalur menjadi superhero!

Credits: Image by storyset