SQL - Ekspresi
Hai teman-teman, para ahli SQL masa depan! Hari ini, kita akan mengemban perjalanan yang menarik ke dunia ekspresi SQL. Jangan khawatir jika Anda baru saja memulai programming - saya akan menjadi panduan ramah Anda, dan kita akan mengambil langkah ini satu demi satu. Pada akhir tutorial ini, Anda akan membuat ekspresi SQL seperti seorang pro!
Apa Itu Ekspresi SQL?
mari kita mulai dari dasar. Ekspresi SQL adalah seperti formula atau perhitungan yang Anda dapat gunakan dalam query SQL Anda. Ini adalah kombinasi dari satu atau lebih nilai, operator, dan fungsi SQL yang dievaluasi ke nilai. Pikirkan itu sebagai saus rahasia yang menambah rasa ke query database Anda!
Misalnya, mari kita katakan Anda memiliki tabel produk, dan Anda ingin menerapkan diskon 10% ke semua harga. Anda dapat menggunakan ekspresi seperti ini:
SELECT product_name, price, price * 0.9 AS discounted_price
FROM products;
Dalam query ini, price * 0.9
adalah ekspresi SQL kami. Ini mengambil harga dan mengalikannya dengan 0.9 (yang sama seperti mengurangkan 10%).
Ekspresi Boolean SQL
Sekarang, mari kita masuk ke ekspresi Boolean. Ini seperti pertanyaan benar/salah di dunia SQL. Mereka selalu menghasilkan TRUE, FALSE, atau NULL (yang berarti "tidak diketahui").
Ekspresi Boolean sangat berguna saat Anda ingin menyaring data Anda atau membuat keputusan dalam query Anda. Berikut adalah beberapa operator umum yang digunakan dalam ekspresi Boolean:
Operator | Deskripsi |
---|---|
= | Sama dengan |
<> | Tidak sama dengan |
> | Lebih besar dari |
< | Lebih kecil dari |
>= | Lebih besar atau sama dengan |
<= | Lebih kecil atau sama dengan |
AND | AND logis |
OR | OR logis |
NOT | NOT logis |
Mari kita lihat ini dalamaksi dengan beberapa contoh:
-- Temukan semua produk dengan harga di atas $100
SELECT * FROM products WHERE price > 100;
-- Temukan semua pesanan dari 30 hari terakhir
SELECT * FROM orders WHERE order_date >= CURRENT_DATE - INTERVAL '30 days';
-- Temukan semua pelanggan aktif di New York atau California
SELECT * FROM customers
WHERE (state = 'NY' OR state = 'CA') AND is_active = TRUE;
Dalam setiap contoh ini, bagian setelah klausa WHERE
adalah ekspresi Boolean. Itu seperti meminta database untuk menjawab pertanyaan ya/tidak untuk setiap baris data.
Ekspresi Numerik SQL
Berikutnya, kita punya ekspresi numerik. Ini seperti masalah matematika di SQL - mereka melibatkan angka dan operasi aritmetik.
Berikut adalah operator aritmetik dasar yang Anda dapat gunakan:
Operator | Deskripsi |
---|---|
+ | Penambahan |
- | Pengurangan |
* | Perkalian |
/ | Pembagian |
% | Modulo (sisa) |
Mari kita lihat beberapa contoh:
-- Hitung nilai total inventory
SELECT product_name, quantity, price, quantity * price AS total_value
FROM inventory;
-- Hitung umur karyawan
SELECT first_name, last_name, EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM birth_date) AS age
FROM employees;
-- Hitung persentase anggaran yang digunakan
SELECT project_name, budget, spent, (spent / budget) * 100 AS percent_spent
FROM projects;
Dalam contoh ini, kita menggunakan ekspresi numerik untuk melakukan perhitungan pada data kita. Ini sangat berguna untuk mendapatkan wawasan baru dari data yang sudah ada.
Ekspresi Tanggal SQL
Terakhir tapi bukan paling kurang, mari bicara tentang ekspresi tanggal. Mengelola tanggal di SQL bisa sulit, tapi juga sangat kuat. Ekspresi tanggal memungkinkan Anda untuk memodifikasi dan membandingkan tanggal dalam query Anda.
Berikut adalah beberapa fungsi tanggal umum:
Fungsi | Deskripsi |
---|---|
CURRENT_DATE | Mengembalikan tanggal saat ini |
CURRENT_TIMESTAMP | Mengembalikan tanggal dan waktu saat ini |
DATE_ADD | Menambahkan interval waktu tertentu ke tanggal |
DATE_SUB | Mengurangkan interval waktu tertentu dari tanggal |
DATEDIFF | Menghitung selisih antara dua tanggal |
Mari kita lihat ini dalamaksi:
-- Temukan semua pesanan yang ditempatkan hari ini
SELECT * FROM orders WHERE order_date = CURRENT_DATE;
-- Temukan semua pelanggan yang belum memesan dalam 90 hari terakhir
SELECT * FROM customers
WHERE customer_id NOT IN (
SELECT DISTINCT customer_id
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '90 days'
);
-- Hitung berapa hari yang lalu setiap pesanan ditempatkan
SELECT order_id, order_date,
DATEDIFF(CURRENT_DATE, order_date) AS days_ago
FROM orders;
Ekspresi tanggal ini memungkinkan Anda melakukan operasi kompleks dengan tanggal, yang sangat penting untuk analisis data berdasarkan waktu.
Dan begitu juga, teman-teman! Kita telah mengemban perjalanan melalui dunia ekspresi SQL, dari logika Boolean ke penghitungan angka hingga perjalanan waktu (well, agak saja). Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba ekspresi ini dalam query Anda sendiri.
Sebelum kita selesai, ini adalah sebuah lelucon SQL untuk Anda: Mengapa administrator database meninggalkan istrinya? Dia memiliki hubungan banyak ke sedikit! (Ba dum tss!)
Selamat mengequery, dan semoga join Anda selalu cepat dan query Anda tidak pernah timeout!
Credits: Image by storyset