Query Dasar: SELECT, WHERE, ORDER BY, GROUP BY
SELECT: Fungsi ini digunakan untuk memilih kolom yang akan ditampilkan dalam hasil query. Misalnya, pada tabel anggota
:
SELECT nama, email FROM anggota;
Query di atas menghasilkan daftar nama dan email dari semua anggota.
WHERE: Digunakan untuk menyaring data berdasarkan kondisi tertentu. Contohnya:
SELECT nama FROM anggota WHERE email = 'riyanto@gmail.com';
Query tersebut akan menampilkan nama anggota dengan email riyanto@gmail.com
.
ORDER BY: Untuk mengurutkan hasil query. Contoh:
SELECT nama, email FROM anggota ORDER BY nama ASC;
Query ini mengurutkan data secara ascending (A-Z).
GROUP BY: Digunakan untuk mengelompokkan data berdasarkan kolom tertentu. Misalnya:
SELECT email, COUNT(*) AS jumlah_anggota FROM anggota GROUP BY email;
Query ini mengelompokkan data berdasarkan email dan menghitung jumlah anggota untuk setiap email.
Manipulasi Data: JOIN, UPDATE, DELETE, INSERT
JOIN: Menggabungkan dua tabel atau lebih berdasarkan kolom yang sama. Contohnya:
SELECT anggota.nama, anggota.email, peminjaman.tanggal_pinjam FROM anggota JOIN peminjaman ON anggota.id = peminjaman.id_anggota;
Query di atas menggabungkan tabel anggota
dan peminjaman
sehingga menghasilkan daftar nama, email, dan tanggal pinjam.
UPDATE: Untuk memperbarui data dalam tabel. Contoh:
UPDATE anggota SET email = 'riyanto123@gmail.com' WHERE nama = 'Riyanto';
Query ini mengganti email anggota dengan nama “Riyanto”.
DELETE: Untuk menghapus data. Contoh:
DELETE FROM anggota WHERE nama = 'Rahmat';
Query tersebut menghapus data anggota dengan nama “Rahmat”.
INSERT INTO: Digunakan untuk menambahkan data baru ke dalam tabel. Contohnya:
INSERT INTO anggota (nama, email, password) VALUES ('Riyanto', 'riyanto@gmail.com', '123456');
Query ini menambahkan data anggota baru dengan nama “Riyanto”.
Perintah Lanjutan: UNION, INTERSECT, EXCEPT, dan CASE
UNION: Menggabungkan hasil dari dua query atau lebih menjadi satu set data. Misalnya:
SELECT nama FROM tabel_anggota WHERE kota = 'Jakarta' UNION SELECT nama FROM tabel_anggota WHERE kota = 'Bandung';
Query ini menggabungkan nama-nama anggota dari dua kota berbeda.
UNION ALL: Mirip dengan UNION, tapi tidak menghilangkan data duplikat.
SELECT nama FROM tabel_anggota WHERE kota = 'Jakarta' UNION ALL SELECT nama FROM tabel_anggota WHERE kota = 'Bandung';
INTERSECT: Mengembalikan data yang ada di kedua query.
SELECT nama FROM tabel_anggota WHERE kota = 'Jakarta' INTERSECT SELECT nama FROM tabel_anggota WHERE kota = 'Bandung';
EXCEPT: Mengembalikan data dari query pertama yang tidak ada di query kedua.
SELECT nama FROM tabel_anggota WHERE kota = 'Jakarta' EXCEPT SELECT nama FROM tabel_anggota WHERE kota = 'Bandung';
CASE: Digunakan untuk mengevaluasi kondisi dan menampilkan hasil berbeda berdasarkan kondisi tersebut.
SELECT nama, CASE WHEN kota = 'Jakarta' THEN 'Ibu Kota Negara' WHEN kota = 'Surabaya' THEN 'Kota Pahlawan' ELSE 'Kota Lainnya' END AS keterangan FROM tabel_anggota;
Query ini menampilkan keterangan berdasarkan kondisi nilai di kolom kota
.
Fungsi Tambahan dan Operasi Lainnya
Sobat, selain query dasar dan lanjutan, masih banyak fungsi serta perintah lain yang sering digunakan untuk mengelola database. Berikut beberapa contohnya:
- DISTINCT: Mengambil nilai unik dari suatu kolom.
SELECT DISTINCT email FROM anggota;
- HAVING: Menyaring hasil query setelah GROUP BY.
SELECT email, COUNT(*) FROM anggota GROUP BY email HAVING COUNT(*) > 1;
- LIMIT: Membatasi jumlah baris yang ditampilkan.
SELECT * FROM anggota LIMIT 5;
- OFFSET: Menentukan posisi awal data yang ditampilkan.
SELECT * FROM anggota LIMIT 5 OFFSET 10;
- LIKE: Mencari nilai yang cocok dengan pola tertentu.
SELECT * FROM anggota WHERE nama LIKE '%anto%';
- COUNT, AVG, MAX, MIN, SUM: Fungsi agregat untuk menghitung jumlah, rata-rata, nilai maksimum, minimum, dan total.
SELECT COUNT(*) AS jumlah_anggota FROM anggota;
- CONCAT: Menggabungkan nilai dari beberapa kolom.
SELECT CONCAT(nama, ' (', email, ')') AS nama_email FROM anggota;
Operasi Database Lainnya
Sobat, dalam mengelola database, kita juga sering melakukan beberapa operasi penting, antara lain:
- Indexing: Membuat index untuk mempercepat pencarian data.
CREATE INDEX email_index ON anggota (email);
- Data Locking: Menghindari konflik antar transaksi.
LOCK TABLE anggota IN SHARE MODE;
- Mengubah Kolom: Menyesuaikan struktur tabel.
ALTER TABLE anggota MODIFY COLUMN email VARCHAR(255) NOT NULL;
- Menghapus Tabel atau Database:
DROP TABLE anggota; DROP DATABASE mydatabase;
- Backup dan Restore: Melakukan backup untuk mengamankan data.
mysqldump -u username -p mydatabase > backup.sql mysql -u username -p mydatabase < backup.sql
- Membuat Pengguna dan Memberikan Izin:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost'; SET PASSWORD FOR 'newuser'@'localhost' = PASSWORD('newpassword');
Itulah sobat, rangkuman lengkap mengenai penggunaan query SQL untuk manipulasi data di database. Semoga panduan ini membantu sobat dalam memahami cara kerja berbagai perintah SQL dan penerapannya dalam pengelolaan data. Selamat mencoba dan terus eksplorasi dunia database!