PostgreSQL - Fungsi Berguna

Hai teman-teman pecinta 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 sekitar Anda, saya telah melihat banyak siswa bertransformasi dari pemula SQL menjadi ahli basis data, dan saya sangat gembira untuk membantu Anda melakukan hal yang sama. Jadi, mari kita genggam lengan dan masuk ke realm magis dari fungsi PostgreSQL!

PostgreSQL - Useful Functions

apa itu Fungsi PostgreSQL?

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

Mengapa Menggunakan Fungsi?

Imaginasi Anda sedang memanggang kue (mmm, kue). Apakah Anda akan mengukur bahan setiap kali, ataukah Anda mempunyai paket bahan yang sudah diukur? Itu apa yang fungsi lakukan bagi operasi basis data Anda - mereka memakai operasi yang sering digunakan untuk penggunaan yang 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 mengkonversi 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 menggabungkannya menjadi satu.

2. Fungsi Numerik

Mari kita menggiling beberapa angka!

SELECT ROUND(3.14159, 2);

Output: 3.14

Fungsi ROUND() seperti seorang guru matematika yang keras, memaksa pi kita untuk berperilaku 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, menolak angka negatif dan membuatnya positif.

3. Fungsi Date/Time

Waktu terasa lalu 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 sesuatu 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. Ekspresi Kondisional

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

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

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

Membuat Fungsi Custom

Sekarang kita telah melihat beberapa fungsi bawaan, mari kita buat sendiri! Itu seperti menjadi seorang ilmuwan gila, tetapi bukan menciptakan monster, melainkan 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 penghibur yang ramah untuk basis data kita. Itu seperti mengajarkan basis data Anda perilaku yang baik!

Contoh Praktis

Mari kita gunakan pengetahuan baru kita dalam 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 bertindak seperti seorang bouncer yang setia, memberikan status VIP kepada pelanggan kita berdasarkan pengeluarannya.

Contoh 2: Penghitung Umur

Mari kita buat fungsi untuk menghitung umur dan mengkategorikan 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 'Minor'
WHEN age_in_years BETWEEN 18 AND 65 THEN 'Dewasa'
ELSE 'Senior'
END;
END;
$$ LANGUAGE plpgsql;

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

Fungsi ini seperti seekor burung hantu yang bijak, melihat tanggal lahir dan mengucapkan kategori usia.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dunia yang menakjubkan dari fungsi PostgreSQL. Kita telah melihat manipulasi string, penggilingan angka, pengaturan tanggal, dan bahkan membuat fungsi custom kami 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() Gabungkan string CONCAT('A', 'B', 'C') → 'ABC'
ROUND() Bulatkan sebuah angka ROUND(3.14159, 2) → 3.14
ABS() Dapatkan nilai mutlak ABS(-15) → 15
CURRENT_DATE Dapatkan tanggal saat ini CURRENT_DATE → '2023-06-15'
AGE() Hitung waktu antara tanggal AGE('2000-01-01', '1969-07-20')
CASE Ekspresi kondisional CASE WHEN x > 0 THEN 'Positif' ELSE 'Non-positif' 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, pergilah dan gunakan fungsi! Selamat mencari dan may your databases always be normalized and your queries optimized!

Credits: Image by storyset