SQL Dasar
Mengenal perintah SQL untuk mengelola dan mengambil data
Apa itu SQL
- Structured Query Language: bahasa standar untuk mengelola database relasional
- Digunakan untuk membuat, membaca, memperbarui, dan menghapus data
- Hampir semua DBMS relasional mendukung SQL
Perintah Dasar SQL
SELECT
- Mengambil data dari satu atau lebih tabel
- Contoh:
SELECT nama, email FROM users SELECT * FROM usersmengambil semua kolom
WHERE
- Menyaring data berdasarkan kondisi
- Contoh:
SELECT * FROM users WHERE usia > 18 - Mendukung operator:
=, <>, >, <, >=, <=, LIKE, IN, BETWEEN
INSERT
- Menambahkan record baru ke tabel
- Contoh:
INSERT INTO users (nama, email) VALUES ('Andi', 'andi@email.com')
UPDATE
- Memperbarui data yang sudah ada
- Contoh:
UPDATE users SET nama = 'Budi' WHERE id = 1 - Selalu gunakan WHERE untuk menghindari memperbarui semua baris
DELETE
- Menghapus record dari tabel
- Contoh:
DELETE FROM users WHERE id = 1 - Selalu gunakan WHERE untuk menghindari menghapus semua data
Join
INNER JOIN
- Menggabungkan dua tabel hanya untuk record yang cocok di kedua tabel
- Contoh:
SELECT users.nama, pesanan.total FROM users INNER JOIN pesanan ON users.id = pesanan.user_id
LEFT JOIN
- Mengambil semua data dari tabel kiri, dan data yang cocok dari tabel kanan
- Record tanpa kecocokan di tabel kanan akan bernilai NULL
RIGHT JOIN
- Kebalikan dari LEFT JOIN, semua data dari tabel kanan
FULL JOIN
- Mengambil semua data dari kedua tabel, cocok atau tidak
Fungsi Agregasi
COUNT(*)— menghitung jumlah barisSUM(kolom)— menjumlahkan nilai numerikAVG(kolom)— menghitung rata-rataMAX(kolom)— nilai tertinggiMIN(kolom)— nilai terendah
GROUP BY dan HAVING
GROUP BYmengelompokkan data berdasarkan kolom tertentuHAVINGmenyaring hasil setelah grouping- Contoh:
SELECT kategori, COUNT(*) FROM produk GROUP BY kategori HAVING COUNT(*) > 5
ORDER BY
- Mengurutkan hasil query
ORDER BY nama ASC— urut naik (A-Z)ORDER BY harga DESC— urut turun (termahal ke termurah)
LIMIT
- Membatasi jumlah baris yang dikembalikan
- Contoh:
SELECT * FROM users LIMIT 10 OFFSET 20 - Berguna untuk pagination