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!
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:
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