PostgreSQL - Fungsi Berguna

Hai sana, para entusiast pengguna basis data! Saya sangat gembira untuk memulai perjalanan ini bersama Anda saat kita telusuri dunia yang menakjubkan dari fungsi PostgreSQL. Sebagai guru ilmu komputer di lingkungan tetangga Anda, saya telah melihat banyak siswa bertransformasi dari pemula SQL menjadi ahli basis data, dan saya gembira untuk membantu Anda melakukan hal yang sama. Jadi, mari kita roll up our sleeves dan masuk ke realm magis fungsi PostgreSQL!

PostgreSQL - Useful Functions

Apa Itu Fungsi PostgreSQL?

Sebelum kita mulai bermain dengan fungsi yang kaya, mari kita pahami apa itu itu. Bayangkan fungsi PostgreSQL sebagai asisten pribadi Anda di dunia basis data. Mereka seperti robot kecil yang melakukan tugas khusus untuk Anda, membuat hidup Anda lebih mudah dan kueri Anda lebih efisien.

Mengapa Menggunakan Fungsi?

Imaginasi Anda sedang memasak kue (mmm, kue). Apakah Anda merasa enak untuk mengukur bahan setiap kali, ataukah Anda lebih suka memiliki paket yang sudah diukur? Itu apa yang fungsi lakukan bagi operasi basis data Anda - mereka memakai operasi yang sering digunakan untuk penggunaan mudah.

Jenis Fungsi PostgreSQL

PostgreSQL menawarkan berbagai jenis fungsi. Mari kita lihat beberapa yang paling berguna:

1. Fungsi String

Fungsi ini membantu Anda memanipulasi data teks. Mari kita mulai dengan contoh sederhana:

SELECT LOWER('HELLO, WORLD!');

Ini akan mengeluarkan: hello, world!

Apa yang terjadi disini? Fungsi LOWER() mengambil input kita dan mengonversi semua huruf besar menjadi huruf kecil. Itu seperti mengajarkan basis data Anda untuk berbisik!

Ini adalah yang lain yang menarik:

SELECT CONCAT('PostgreSQL', ' is ', 'awesome!');

Output: PostgreSQL is awesome!

Fungsi CONCAT() seperti seekor octopus yang ramah, memegang string yang berbeda dan menyatunya menjadi satu.

2. Fungsi Numerik

Mari kita menghitung beberapa angka!

SELECT ROUND(3.14159, 2);

Output: 3.14

Fungsi ROUND() seperti seorang guru matematika yang ketat, memaksa pi kita untuk berkelakuan dan tetap di dua desimal.

Ini adalah contoh yang lebih praktis:

SELECT ABS(-15);

Output: 15

ABS() berarti nilai mutlak. Itu seperti seorang bouncer di klub, menjauhkan angka negatif dan membuatnya positif.

3. Fungsi Date/Time

Waktu terbang saat Anda bersenang-senang dengan basis data! Mari kita lihat bagaimana kita dapat memanipulasi tanggal:

SELECT CURRENT_DATE;

Ini akan memberikan Anda tanggal hari ini. Itu seperti memiliki kalender di dalam basis data Anda!

Bagaimana tentang yang lebih kompleks?

SELECT AGE(TIMESTAMP '2000-01-01', TIMESTAMP '1969-07-20');

Ini akan menghitung waktu antara dua tanggal. Itu sempurna untuk pertanyaan seperti "Berapa umur Anda saat..."!

4. Ekspressi Kondisional

kadang-kadang kita perlu membuat basis data kita membuat keputusan. Masuk ke ekspressi CASE:

SELECT
product_name,
CASE
WHEN price < 10 THEN 'Murah'
WHEN price < 50 THEN 'Sedang'
ELSE 'Mahal'
END AS price_category
FROM products;

Ini seperti memberikan basis data Anda sebuah price gun dan mengatakan kepadanya untuk menandai produk berdasarkan harga. Itu adalah cara yang bagus untuk mengklasifikasikan data di tempat!

Membuat Fungsi Khusus

Sekarang kita sudah melihat beberapa fungsi bawaan, mari kita buat sendiri! Itu seperti menjadi seorang ilmuwan gila, tetapi bukan menciptakan monster, kita menciptakan bantuan basis data yang membantu.

CREATE FUNCTION greet(name TEXT) RETURNS TEXT AS $$
BEGIN
RETURN 'Hello, ' || name || '! Selamat datang di PostgreSQL!';
END;
$$ LANGUAGE plpgsql;

Sekarang kita dapat menggunakan fungsi ini:

SELECT greet('Alice');

Output: Hello, Alice! Selamat datang di PostgreSQL!

Kita baru saja menciptakan seorang pengantar yang ramah bagi basis data kita. Itu seperti mengajarkan basis data Anda perilaku yang baik!

Contoh Praktis

Mari kita aplikasikan pengetahuan baru kita ke beberapa konteks dunia nyata:

Contoh 1: Program Loyalitas Customer

Imaginasi kita menjalankan program loyalitas di mana pelanggan mendapatkan status yang berbeda berdasarkan total pembelian mereka.

CREATE FUNCTION get_customer_status(total_purchases NUMERIC) RETURNS TEXT AS $$
BEGIN
RETURN CASE
WHEN total_purchases < 100 THEN 'Bronze'
WHEN total_purchases < 500 THEN 'Silver'
WHEN total_purchases < 1000 THEN 'Gold'
ELSE 'Platinum'
END;
END;
$$ LANGUAGE plpgsql;

-- Menggunakan fungsi
SELECT
customer_name,
total_purchases,
get_customer_status(total_purchases) AS loyalty_status
FROM customers;

Fungsi ini berperan seperti seorang bouncer loyal, memberikan status VIP kepada pelanggan kita berdasarkan pengeluarannya.

Contoh 2: Penghitung Umur

Mari kita buat sebuah fungsi untuk menghitung umur dan mengklasifikasikan orang:

CREATE FUNCTION categorize_age(birthdate DATE) RETURNS TEXT AS $$
DECLARE
age_in_years INTEGER;
BEGIN
age_in_years := DATE_PART('year', AGE(CURRENT_DATE, birthdate));

RETURN CASE
WHEN age_in_years < 18 THEN 'Remaja'
WHEN age_in_years BETWEEN 18 AND 65 THEN 'Dewasa'
ELSE 'Lansia'
END;
END;
$$ LANGUAGE plpgsql;

-- Menggunakan fungsi
SELECT
name,
birthdate,
categorize_age(birthdate) AS age_category
FROM people;

Fungsi ini seperti seekor burung biasa, melihat tanggal lahir dan mengeluarkan kategori umur.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dalam dunia yang menakjubkan dari fungsi PostgreSQL. Kita telah menelusuri manipulasi string, penghitungan angka, pengolahan tanggal, dan bahkan membuat fungsi khusus sendiri. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba dan menciptakan fungsi Anda sendiri.

Sekarang, mari kita rangkum beberapa fungsi yang kita pelajari:

Fungsi Tujuan Contoh
LOWER() Konversi string ke huruf kecil LOWER('HELLO') → 'hello'
CONCAT() Gabung string CONCAT('A', 'B', 'C') → 'ABC'
ROUND() Pembulatan angka ROUND(3.14159, 2) → 3.14
ABS() Nilai mutlak ABS(-15) → 15
CURRENT_DATE Mendapatkan tanggal saat ini CURRENT_DATE → '2023-06-15'
AGE() Menghitung waktu antara tanggal AGE('2000-01-01', '1969-07-20')
CASE Ekspressi kondisional CASE WHEN x > 0 THEN 'Positive' ELSE 'Non-positive' END

Ingat, fungsi-fungsi ini adalah teman baru Anda di dunia basis data. Mereka selalu ada untuk membantu Anda memanipulasi data, membuat keputusan, dan menciptakan kueri yang kuat. Jadi, maju dan gunakan fungsi! Selamat menanyakan dan semoga basis data Anda selalu normal dan kueri Anda optimal!

Credits: Image by storyset