Fungsi String MySQL yang Paling Sering Digunakan

Image by Windows on Unsplash

{tocify} $title={Daftar Isi}

Pendahuluan

Umumnya sebuah data yang tersimpan di database MySQL bergantung pada tipe data yang digunakan artinya jika menggunakan tipe data int maka hanya dapat menyimpan data berupa angka, char/varchar berupa karakter (huruf, angka, simbol), dan date untuk penanggalan. Suatu waktu mungkin kita perlu memanipulasi karakter tersebut, misalnya pada sebuah kolom nama dari tabel mahasiswa semua hurufnya menggunakan huruf kecil sehingga kita perlu mengubah huruf awalan dengan huruf besar, dikarenakan data yang tersimpan terlalu banyak dan kita memerlukan output sesegera mungkin sehingga akan memakan waktu untuk mengupdate setiap data yang ada, maka kita bisa menggunakan fungsi upper() untuk mengubah huruf kecil menjadi huruf besar, dan lower() untuk sebaliknya. 

MySQL menyediakan fungsi string yang digunakan untuk memanipulasi data string (huruf, angka, simbol) sehingga dapat memberikan output sesuai yang diharapkan, ada banyak fungsi string yang tersedia di MySQL namun pada artikel ini penulis hanya akan membahas daftar fungsi string yang sekiranya paling sering / umum digunakan, adapun fungsi-fungsinya adalah sebagai berikut:

Fungsi Deskripsi
Concat Berfungsi untuk menggabungkan string
Length Menghitung jumlah karakter termasuk spasi
LPAD/RPAD Membuat Padding kiri / kanan
Lower Mengubah huruf besar menjadi huruf kecil
Upper Mengubah huruf kecil menjadi huruf besar
Replace Mengubah data jika data sudah tersimpan, menambahkan data jika data belum tersimpan
Reverse Membalik karakter
Substring Menghilangkan karakter berdasarkan posisi awal dan jumlah karakter
Trim Menghilangkan white space atau spasi awal dan akhir

Berikut adalah format dan cara penggunaan fungsi-fungsi tersebut:

Concat:

Fungsi Concat() MySQL digunakan untuk menggabungkan string dengan berbagai tipe data yang digunakan, format dan contohnya sebagai berikut:

select concat("string1", "string2") [as alias];
select concat (Kolom1, "String", KolomN) [as alias] from nama_tabel;

mysql> select concat("HelloW","orld");
+-------------------------+
| concat("HelloW","orld") |
+-------------------------+
| HelloWorld              |
+-------------------------+
1 row in set (0.00 sec)

mysql> select concat(nama, "/", npm, "/", t_lahir) from mahasiswa;
+--------------------------------------+
| concat(nama, "/", npm, "/", t_lahir) |
+--------------------------------------+
| AA Aditya A/51411136/1996-09-03      |
| A Aditya A/51412371/1996-06-03       |
| A Dimas A/51411111/1998-08-03        |
| A Faisal Dimas/51411112/1995-02-23   |
| A Faridah Nur/51411113/1995-03-13    |
+--------------------------------------+
5 rows in set (0.00 sec)


Length:

Fungsi Length() MySQL digunakan untuk menghitung jumlah karakter termasuk spasi, format dan contohnya sebagai berikut:

select length("String1", "String2");
select length(kolom1, kolomN) [as alias] from nama_tabel;
mysql> select length (nama) from mahasiswa;
+---------------+
| length (nama) |
+---------------+
|            11 |
|            10 |
|             9 |
|            14 |
|            13 |
+---------------+
5 rows in set (0.00 sec)


LPAD/RPAD:

Fungsi LPAD (Left-Padding) dan RPAD (Right-Padding) di MySQL digunakan untuk memberi jarak (padding) bisa dengan menambah karakter tertentu atau spasi, format dan contohnya sebagai berikut:

select lpad/rpad("String", jml_karakter, "String);
select lpad/rpad(nama_kolom, panjang_karakter, String);
mysql> select lpad("Geekasmedia", 11, " ");
+------------------------------+
| lpad("Geekasmedia", 11, " ") |
+------------------------------+
| Geekasmedia                  |
+------------------------------+
1 row in set (0.00 sec)

mysql> select lpad("Geekasmedia", 15, " ");
+------------------------------+
| lpad("Geekasmedia", 15, " ") |
+------------------------------+
|     Geekasmedia              |
+------------------------------+
1 row in set (0.00 sec)

Dari contoh diatas baik lpad ataupun rpad baru akan menambah jarak di kiri / kanan jika jumlah karakter pada data yang tersimpan telah melebihi panjang karakter lpad/rpad yang ditentukan

Lower():

Fungsi Lower() MySQL digunakan untuk mengubah semua huruf besar menjadi huruf kecil, format dan contohnya sebagai berikut:

select lower("string1", "string2");
select lower(kolom1, kolomN) [as alias] from nama_tabel;
mysql> select lower(nama) from mahasiswa;
+----------------+
| lower(nama)    |
+----------------+
| aa aditya a    |
| a aditya a     |
| a dimas a      |
| a faisal dimas |
| a faridah nur  |
+----------------+
5 rows in set (0.02 sec)


Upper():

Fungsi Upper() MySQL adalah kebalikan dari lower yakni mengubah semua huruf menjadi huruf besar, format dan contohnya sebagai berikut:
select upper("String1", "String2");
select upper(kolom1, kolomN) [as alias] from nama_tabel;
mysql> select upper(nama) from mahasiswa;
+----------------+
| upper(nama)    |
+----------------+
| AA ADITYA A    |
| A ADITYA A     |
| A DIMAS A      |
| A FAISAL DIMAS |
| A FARIDAH NUR  |
+----------------+
5 rows in set (0.05 sec)


Replace():

Fungsi Replace() MySQL mirip dengan statement update yaitu digunakan untuk mengubah data yang tersimpan, adapun format dan contohnya adalah sebagai berikut:

mysql> select id_mhs, nama from mahasiswa;
+--------+----------------+
| id_mhs | nama           |
+--------+----------------+
|      1 | AA Aditya A    |
|      2 | A Aditya A     |
|      3 | A Dimas A      |
|      4 | A Faisal Dimas |
|      5 | A Faridah Nur  |
+--------+----------------+
5 rows in set (0.00 sec)

mysql> replace into mahasiswa (id_mhs, nama) values (1, "AA Aidit A");
Query OK, 2 rows affected (1.46 sec)

mysql> select id_mhs, nama from mahasiswa;
+--------+----------------+
| id_mhs | nama           |
+--------+----------------+
|      1 | AA Aidit A     |
|      2 | A Aditya A     |
|      3 | A Dimas A      |
|      4 | A Faisal Dimas |
|      5 | A Faridah Nur  |
+--------+----------------+
5 rows in set (0.00 sec)

Lalu apa bedanya dengan statement update? Bedanya, statement update hanya bisa digunakan untuk mengubah data yang sudah tersimpan dan tidak akan memberikan nilai NULL pada kolom yang tidak diupdate sementara fungsi replace akan mengupdate data pada kolom yang ditentukan dan mengubah yang lainnya menjadi NULL selain itu jika data yang akan diubah tidak ada maka replace akan menambahkan data baru, contohnya seperti berikut:

mysql> select id_mhs, nama from mahasiswa;
+--------+----------------+
| id_mhs | nama           |
+--------+----------------+
|      1 | AA Aidit A     |
|      2 | A Aditya A     |
|      3 | A Dimas A      |
|      4 | A Faisal Dimas |
|      5 | A Faridah Nur  |
+--------+----------------+
5 rows in set (0.00 sec)

mysql> replace into mahasiswa (id_mhs, nama) values (6, "Geekasmdia");
Query OK, 1 row affected (0.12 sec)

mysql> select id_mhs, nama from mahasiswa;
+--------+----------------+
| id_mhs | nama           |
+--------+----------------+
|      1 | AA Aidit A     |
|      2 | A Aditya A     |
|      3 | A Dimas A      |
|      4 | A Faisal Dimas |
|      5 | A Faridah Nur  |
|      6 | Geekasmdia     |
+--------+----------------+
6 rows in set (0.04 sec)

mysql> select nama, npm, telepon, email from mahasiswa where id_mhs = 3;
+-----------+----------+--------------+-------------------+
| nama      | npm      | telepon      | email             |
+-----------+----------+--------------+-------------------+
| A Dimas A | 51411111 | 088812345678 | adimas98@mail.com |
+-----------+----------+--------------+-------------------+
1 row in set (0.00 sec)

mysql> replace into mahasiswa (id_mhs, nama) values (3, "A Kanjeng Dimas");
Query OK, 2 rows affected (0.14 sec)

mysql> select nama, npm, telepon, email from mahasiswa where id_mhs = 3;
+-----------------+------+---------+-------+
| nama            | npm  | telepon | email |
+-----------------+------+---------+-------+
| A Kanjeng Dimas | NULL | NULL    | NULL  |
+-----------------+------+---------+-------+
1 row in set (0.00 sec)


Reverse():

Fungsi Reverse() MySQL digunakan untuk membalik karakter yang semula kiri ke kanan menjadi kanan ke kiri, format dan contohnya sebagai berikut:

mysql> select rtrim ("Geekasmedia ");
+------------------------+
| rtrim ("Geekasmedia ") |
+------------------------+
| Geekasmedia            |
+------------------------+
1 row in set (0.00 sec)

mysql> select reverse("Geekasmedia");
+------------------------+
| reverse("Geekasmedia") |
+------------------------+
| aidemsakeeG            |
+------------------------+
1 row in set (0.00 sec)

mysql> select reverse(nama) from mahasiswa;
+----------------+
| reverse(nama)  |
+----------------+
| A aytidA AA    |
| A aytidA A     |
| A samiD A      |
| samiD lasiaF A |
| ruN hadiraF A  |
+----------------+
5 rows in set (0.00 sec)


Substring():

Fungsi Substring() MySQL digunakan untuk menghilangkan karakter berdasarkan posisi awal karakter yang dapat dimulai dari kiri, tengah, atau kanan, format dan contohnya sebagai berikut:

select substring("String", posisi_awal, jumlah_karakter);
select substring(nama_kolom, posisi_awal, jml_karakter);
mysql> select substring("MySQL", 2);
+-----------------------+
| substring("MySQL", 2) |
+-----------------------+
| ySQL                  |
+-----------------------+
1 row in set (0.00 sec)

mysql> select substring("MySQL", 2, 2);
+--------------------------+
| substring("MySQL", 2, 2) |
+--------------------------+
| yS                       |
+--------------------------+
1 row in set (0.00 sec)

mysql> select substring("MySQL", -3, 3);
+---------------------------+
| substring("MySQL", -3, 3) |
+---------------------------+
| SQL                       |
+---------------------------+
1 row in set (0.00 sec)

Dari contoh diatas nilai pertama dari string menunjuk pada posisi awal karakter dipilih dan menghilangkan karakter karakter sebelumya, angka dua (bilangan positif) menunjuk posisi karakter pertama dipilih dari kiri dan -3 (bilangan negatif) menunjuk posisi pertama dari kanan. Sedangkan nilai kedua merupakan batas jumlah karakter yang dipilih dari kiri ke kanan atau kanan ke kiri, selain menggunakan bilangan positif dan negatif kita juga dapat menggunakan left dan right seperti contoh berikut:

mysql> select left("MySQL", 2);
+------------------+
| left("MySQL", 2) |
+------------------+
| My               |
+------------------+
1 row in set (0.00 sec)

mysql> select right("MySQL", 2);
+------------------+
| right("MySQL", 2)|
+------------------+
| QL               |
+------------------+
1 row in set (0.00 sec)

Jika kita memilih menggunakan left / right maka kita tidak perlu lagi menggunakan bilangan positif / negatif sabagai penunjuk posisi awal karakter, kita cukup menambahkan jumlah karakter yang dipilih.

Trim():

Fungsi Trim() MySQL digunakan untuk menghilangkan white space atau spasi awal dan akhir kalimat, format dan contohnya sebagai berikut:

select trim(" String ");
select trim(nama_kolom) from nama_tabel;
mysql> select trim(" Geekasmedia ");
+-----------------------+
| trim(" Geekasmedia ") |
+-----------------------+
| Geekasmedia           |
+-----------------------+
1 row in set (0.00 sec)

Selain itu kita juga dapat menggunakan LTRIM ataupun RTRIM untuk menghilangkan white space berdasarkan posisi kiri atau kanan.

Lanjutan: Menggunakan lebih dari satu fungsi String

Dari banyak contoh diatas yang penulis berikan hanya menggunakan satu fungsi string saja, lalu apakah kita dapat menggunakan beberapa fungsi string sekaligus? Jawabannya bisa, adapun contoh-contohnya adalah sebagai berikut:

mysql> select reverse(concat(upper(left(nama, 2)), lower(right(nama, 2)))) as Modifikasi from mahasiswa;
+------------+
| Modifikasi |
+------------+
| a AA       |
| a  A       |
| a  A       |
| sa A       |
| ru A       |
| aiEG       |
+------------+
6 rows in set (0.00 sec)

mysql> select concat(rpad(upper(left(nama,2)), 5, " "), reverse(rpad(upper(left(nama,2)), 5, " "))) as Modifikasi from mahasiswa;
+------------+
| Modifikasi |
+------------+
| AA      AA |
| A        A |
| A        A |
| A        A |
| A        A |
| GE      EG |
+------------+
6 rows in set (0.00 sec)

mysql> select concat(lpad(upper(left(nama,2)), 5, " "), reverse(lpad(lower(left(nama,2)), 5, " "))) as Modifikasi from mahasiswa;
+------------+
| Modifikasi |
+------------+
|    AAaa    |
|    A  a    |
|    A  a    |
|    A  a    |
|    A  a    |
|    GEeg    |
+------------+
6 rows in set (0.00 sec)
Itulah sejumlah dari fungsi string yang sekiranya paling sering / umum digunakan, kita juga dapat mengkombinasi beberapa fungsi string bersamaan.
Bayu Radityo

Seorang lulusan teknik informatika yang senang dalam berbagi ilmu pengetahuan, dan membuat karya digital berupa photomanipulation dan digital drawing. instagram external-link

Posting Komentar

Lebih baru Lebih lama