Fungsi-Fungsi Bawaan MySQL
Fungsi bawaan MySQL adalah fitur yang sudah tersedia di dalam MySQL untuk membantu kita melakukan berbagai operasi pada data. Fungsi-fungsi ini bisa digunakan untuk menghitung, memanipulasi teks, mengolah tanggal, dan banyak lagi.
Daftar Isi
Fungsi Agregat
Fungsi agregat digunakan untuk melakukan perhitungan pada sekelompok data dan menghasilkan satu nilai hasil.
COUNT()
Menghitung jumlah baris dalam tabel atau jumlah nilai yang tidak NULL.
-- Menghitung total mahasiswa
SELECT COUNT(*) FROM Mahasiswa;
-- Menghitung mahasiswa yang memiliki IPK
SELECT COUNT(IPK) FROM Mahasiswa;
SUM()
Menjumlahkan semua nilai dalam kolom tertentu.
-- Menjumlahkan total IPK semua mahasiswa
SELECT SUM(IPK) FROM Mahasiswa;
-- Menjumlahkan IPK mahasiswa jurusan tertentu
SELECT SUM(IPK) FROM Mahasiswa WHERE Jurusan = 'Teknik Informatika';
AVG()
Menghitung rata-rata nilai dalam kolom tertentu.
-- Menghitung rata-rata IPK semua mahasiswa
SELECT AVG(IPK) FROM Mahasiswa;
-- Menghitung rata-rata IPK per jurusan
SELECT Jurusan, AVG(IPK) FROM Mahasiswa GROUP BY Jurusan;
MIN() dan MAX()
Mencari nilai terkecil dan terbesar dalam kolom.
-- Mencari IPK terendah
SELECT MIN(IPK) FROM Mahasiswa;
-- Mencari IPK tertinggi
SELECT MAX(IPK) FROM Mahasiswa;
-- Mencari IPK tertinggi per jurusan
SELECT Jurusan, MAX(IPK) FROM Mahasiswa GROUP BY Jurusan;
Fungsi String
Fungsi string digunakan untuk memanipulasi teks atau karakter.
CONCAT()
Menggabungkan beberapa string menjadi satu.
-- Menggabungkan nama dan jurusan
SELECT CONCAT(Nama, ' - ', Jurusan) AS Info_Mahasiswa FROM Mahasiswa;
-- Menggabungkan dengan pemisah khusus
SELECT CONCAT_WS(' | ', Nama, Jurusan, IPK) AS Detail_Mahasiswa FROM Mahasiswa;
SUBSTRING()
Mengambil sebagian karakter dari string.
-- Mengambil 3 karakter pertama dari nama
SELECT SUBSTRING(Nama, 1, 3) AS Inisial FROM Mahasiswa;
-- Mengambil nama belakang (setelah spasi)
SELECT SUBSTRING(Nama, POSITION(' ' IN Nama) + 1) AS Nama_Belakang FROM Mahasiswa;
LOWER() dan UPPER()
Mengubah teks menjadi huruf kecil atau huruf besar.
-- Mengubah nama menjadi huruf kecil
SELECT LOWER(Nama) AS Nama_Kecil FROM Mahasiswa;
-- Mengubah nama menjadi huruf besar
SELECT UPPER(Nama) AS Nama_Besar FROM Mahasiswa;
LENGTH()
Menghitung panjang string.
-- Menghitung panjang nama
SELECT Nama, LENGTH(Nama) AS Panjang_Nama FROM Mahasiswa;
Fungsi Tanggal dan Waktu
Fungsi untuk mengelola data bertipe tanggal dan waktu.
NOW() dan CURDATE()
Mendapatkan waktu saat ini.
-- Mendapatkan tanggal dan waktu saat ini
SELECT NOW();
-- Mendapatkan tanggal hari ini
SELECT CURDATE();
-- Mendapatkan waktu saat ini
SELECT CURTIME();
DATEDIFF()
Menghitung selisih antara dua tanggal.
-- Menghitung umur dalam hari
SELECT Nama, DATEDIFF(CURDATE(), Tanggal_Lahir) AS Umur_Hari FROM Mahasiswa;
-- Menghitung lama kuliah dalam tahun
SELECT Nama, DATEDIFF(CURDATE(), Tanggal_Masuk) / 365 AS Lama_Kuliah_Tahun FROM Mahasiswa;
DATE_FORMAT()
Memformat tampilan tanggal.
-- Memformat tanggal lahir
SELECT Nama, DATE_FORMAT(Tanggal_Lahir, '%d-%m-%Y') AS Tanggal_Lahir_Format FROM Mahasiswa;
-- Memformat dengan hari dan bulan dalam bahasa Indonesia
SELECT Nama, DATE_FORMAT(Tanggal_Lahir, '%W, %d %M %Y') AS Tanggal_Lahir_Lengkap FROM Mahasiswa;
Fungsi Matematika
Fungsi untuk melakukan operasi matematika.
ROUND()
Membulatkan angka desimal.
-- Membulatkan IPK ke 2 angka desimal
SELECT Nama, ROUND(IPK, 2) AS IPK_Bulat FROM Mahasiswa;
ABS()
Mengambil nilai absolut (positif).
-- Menghitung selisih IPK dari rata-rata
SELECT Nama, ABS(IPK - (SELECT AVG(IPK) FROM Mahasiswa)) AS Selisih_IPK FROM Mahasiswa;
Fungsi Kondisional
Fungsi untuk membuat logika kondisional dalam query.
IF()
Membuat kondisi sederhana.
-- Menentukan status kelulusan berdasarkan IPK
SELECT Nama, IPK,
IF(IPK >= 3.5, 'Cumlaude',
IF(IPK >= 3.0, 'Sangat Memuaskan', 'Memuaskan')) AS Predikat
FROM Mahasiswa;
CASE
Membuat kondisi yang lebih kompleks.
-- Menentukan predikat kelulusan
SELECT Nama, IPK,
CASE
WHEN IPK >= 3.5 THEN 'Cumlaude'
WHEN IPK >= 3.0 THEN 'Sangat Memuaskan'
WHEN IPK >= 2.5 THEN 'Memuaskan'
ELSE 'Cukup'
END AS Predikat
FROM Mahasiswa;
Tips Penggunaan Fungsi
-
Gabungkan Fungsi: Anda bisa menggabungkan beberapa fungsi dalam satu query
SELECT UPPER(CONCAT(SUBSTRING(Nama, 1, 1), '. ', Nama_Belakang)) AS Inisial_Nama FROM Mahasiswa;
-
Alias: Gunakan alias (AS) untuk membuat nama kolom lebih mudah dibaca
SELECT AVG(IPK) AS Rata_Rata_IPK FROM Mahasiswa;
-
GROUP BY: Gunakan GROUP BY untuk mengelompokkan hasil perhitungan
SELECT Jurusan, AVG(IPK) AS Rata_Rata_IPK FROM Mahasiswa GROUP BY Jurusan;
-
WHERE: Filter data sebelum dihitung
SELECT AVG(IPK) AS Rata_Rata_IPK FROM Mahasiswa WHERE Jurusan = 'Teknik Informatika';