Belajar SQL: 6 Kunci Utama dalam Query SQL
SQL (Structured Query Language) adalah bahasa yang digunakan untuk mengelola dan mengambil data dari database relasional. Dalam artikel ini, kita akan membahas enam perintah utama dalam SQL yang sering digunakan dalam proses query data, yaitu:
1. SELECT – Menentukan kolom yang akan diambil
2. FROM – Menentukan tabel sumber data
3. WHERE – Menyaring data berdasarkan kondisi
4. GROUP BY – Mengelompokkan data berdasarkan satu atau lebih kolom
5. HAVING – Menyaring hasil setelah pengelompokan
6. ORDER BY – Mengurutkan hasil query
Setiap konsep akan dijelaskan dengan contoh dan latihan praktikum untuk pemahaman yang lebih mendalam.
1. SELECT: Menentukan Kolom yang Akan Ditampilkan
Perintah SELECT digunakan untuk memilih kolom yang ingin ditampilkan dalam hasil query.
Contoh:
SELECT customer_id, rental_id, rental_date
FROM rental;
Query di atas akan menampilkan tiga kolom: customer_id, rental_id, dan rental_date dari tabel rental.
Latihan Praktikum
Jalankan query di atas pada database yang memiliki tabel rental.
Tambahkan kolom tambahan, misalnya return_date, untuk melihat lebih banyak informasi.
2. FROM: Menentukan Tabel Sumber Data
FROM digunakan untuk menentukan dari mana data diambil. Tanpa FROM, query tidak tahu dari mana mendapatkan informasi.
Contoh:
SELECT customer_id, rental_id, rental_date
FROM rental;
Tabel rental adalah sumber data yang digunakan untuk menampilkan informasi pelanggan dan transaksi penyewaan.
Latihan Praktikum
Coba ganti rental dengan tabel lain dalam database, misalnya customer atau inventory.
Tambahkan kolom dari tabel lain jika ada yang relevan.
3. WHERE: Menyaring Data Berdasarkan Kondisi
Kondisi WHERE memungkinkan kita untuk mengambil hanya data yang memenuhi kriteria tertentu.
Contoh:
SELECT customer_id, rental_id, rental_date
FROM rental
WHERE customer_id <= 100;
Query ini hanya akan menampilkan pelanggan dengan customer_id kurang dari atau sama dengan 100.
Latihan Praktikum
Ubah kondisi customer_id <= 100 menjadi rental_date >= '2024-01-01' untuk menampilkan penyewaan setelah 1 Januari 2024.
Gunakan operator lain seperti != atau BETWEEN untuk variasi filter data.
4. GROUP BY: Mengelompokkan Data
GROUP BY digunakan untuk mengelompokkan hasil query berdasarkan nilai dari satu atau lebih kolom. Biasanya digunakan bersama fungsi agregat seperti COUNT, SUM, AVG, dll.
Contoh:
SELECT customer_id, COUNT(rental_id) AS rentals
FROM rental
WHERE customer_id <= 100
GROUP BY customer_id;
Query ini menghitung jumlah transaksi penyewaan (rental_id) untuk setiap pelanggan (customer_id) yang memiliki customer_id kurang dari atau sama dengan 100.
Latihan Praktikum
Tambahkan kolom lain dalam hasil query, misalnya SUM(payment_amount) jika ada data pembayaran.
Coba gunakan GROUP BY rental_date untuk melihat jumlah transaksi per hari.
5. HAVING: Menyaring Data Setelah GROUP BY
Jika kita ingin memfilter hasil setelah GROUP BY, kita harus menggunakan HAVING alih-alih WHERE.
Contoh:
SELECT customer_id, COUNT(rental_id) AS rentals
FROM rental
WHERE customer_id <= 100
GROUP BY customer_id
HAVING COUNT(rental_id) > 5;
Query ini hanya menampilkan pelanggan yang memiliki lebih dari 5 transaksi penyewaan.
Latihan Praktikum
Ubah batas HAVING COUNT(rental_id) > 5 menjadi >= 10 untuk melihat pelanggan yang lebih aktif.
Coba gabungkan dengan fungsi agregat lain seperti AVG atau SUM.
6. ORDER BY: Mengurutkan Hasil Query
ORDER BY digunakan untuk mengurutkan hasil query berdasarkan satu atau lebih kolom. Secara default, ORDER BY mengurutkan dalam urutan menaik (ASC), tetapi bisa juga menggunakan DESC untuk urutan menurun.
Contoh:
SELECT customer_id, COUNT(rental_id) AS rentals
FROM rental
WHERE customer_id <= 100
GROUP BY customer_id
HAVING COUNT(rental_id) > 5
ORDER BY COUNT(rental_id) DESC;
Query ini mengurutkan hasil berdasarkan jumlah transaksi penyewaan (rentals) dari yang terbanyak ke yang paling sedikit.
Latihan Praktikum
Coba ubah DESC menjadi ASC dan lihat perbedaannya.
Tambahkan kolom lain di ORDER BY, misalnya customer_id untuk pengurutan sekunder.
Kesimpulan
Dalam SQL, keenam perintah ini adalah fondasi utama dalam melakukan query data.
Dengan memahami dan menguasai konsep ini, Anda bisa menulis query SQL yang lebih kompleks dan efisien. Silakan coba latihan praktikum di atas untuk meningkatkan pemahaman Anda!
Lampiran
Berikut adalah isi file database.sql yang dapat digunakan untuk keperluan praktikum berdasarkan query-query pada artikel ini.
File ini mencakup:
1. Pembuatan database dan tabel
2. Penyisipan data contoh
3. Struktur tabel yang sesuai untuk latihan
Isi database.sql
-- Buat database untuk praktikum
CREATE DATABASE praktikum_sql;
USE praktikum_sql;
-- Buat tabel rental untuk menyimpan transaksi penyewaan
CREATE TABLE rental (
rental_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
rental_date DATE NOT NULL,
return_date DATE,
amount DECIMAL(10,2) NOT NULL
);
-- Masukkan data contoh ke dalam tabel rental
INSERT INTO rental (customer_id, rental_date, return_date, amount) VALUES
(1, '2024-01-05', '2024-01-10', 50.00),
(1, '2024-02-10', '2024-02-15', 40.00),
(2, '2024-01-07', '2024-01-12', 55.00),
(2, '2024-03-15', '2024-03-20', 35.00),
(2, '2024-04-20', '2024-04-25', 45.00),
(3, '2024-02-01', '2024-02-06', 60.00),
(3, '2024-05-10', '2024-05-15', 50.00),
(3, '2024-06-18', '2024-06-23', 70.00),
(3, '2024-07-22', '2024-07-27', 55.00),
(4, '2024-02-15', '2024-02-20', 30.00),
(4, '2024-03-05', '2024-03-10', 40.00),
(5, '2024-04-10', '2024-04-15', 35.00),
(5, '2024-05-12', '2024-05-17', 65.00),
(5, '2024-06-20', '2024-06-25', 80.00),
(5, '2024-07-25', '2024-07-30', 90.00),
(6, '2024-03-10', '2024-03-15', 55.00),
(6, '2024-04-22', '2024-04-27', 40.00),
(6, '2024-06-05', '2024-06-10', 75.00);
-- Buat tabel customer untuk menyimpan informasi pelanggan
CREATE TABLE customer (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE
);
-- Masukkan data contoh ke dalam tabel customer
INSERT INTO customer (name, email) VALUES
('John Doe', 'john@example.com'),
('Jane Smith', 'jane@example.com'),
('Alice Johnson', 'alice@example.com'),
('Bob Brown', 'bob@example.com'),
('Charlie Davis', 'charlie@example.com'),
('David Wilson', 'david@example.com');
-- Tampilkan semua data dari rental
SELECT * FROM rental;
-- Tampilkan semua data dari customer
SELECT * FROM customer;
Cara Menggunakan File database.sql
1. Jalankan file SQL ini di MySQL atau MariaDB
Jika menggunakan MySQL CLI:
mysql -u root -p < database.sql
Jika menggunakan phpMyAdmin:
Masuk ke phpMyAdmin
Buat database praktikum_sql
Import file database.sql
2. Coba Query Praktikum Setelah database siap, jalankan beberapa query dari blog post untuk latihan:
-- Menampilkan semua rental dari customer dengan ID ≤ 100
SELECT customer_id, rental_id, rental_date
FROM rental
WHERE customer_id <= 100;
-- Mengelompokkan data berdasarkan customer_id dan menghitung jumlah rental
SELECT customer_id, COUNT(rental_id) AS rentals
FROM rental
GROUP BY customer_id;
-- Menampilkan hanya customer yang memiliki lebih dari 5 rental
SELECT customer_id, COUNT(rental_id) AS rentals
FROM rental
GROUP BY customer_id
HAVING COUNT(rental_id) > 5;
-- Mengurutkan hasil berdasarkan jumlah rental terbanyak
SELECT customer_id, COUNT(rental_id) AS rentals
FROM rental
GROUP BY customer_id
ORDER BY COUNT(rental_id) DESC;
Dengan menggunakan database ini, mahasiswa bisa langsung mencoba berbagai query SQL secara langsung.