Tips dalam menulis query SQL :
- Gunakan huruf besar untuk reserved keywords MySQL (macam "SELECT", "DELETE", "UPDATE", dll).
Gunakan huruf kecil untuk nama tabel, kolom, dll yang bukan reserved keywords dari MySQL.
Ini akan mempermudah pembacaan query.
Contoh yang benar :
- Code:
-
SELECT * FROM tbl_member ORDER BY member_id
SELECT UPPER(nama_member) FROM tbl_member ORDER BY member_id
Salah :
- Code:
-
select * from tbl_member order by member_id
SELECT * FROM TBL_MEMBER WHERE NAMA_MEMBER = 'joko'
SELECT upper(nama_member) FROM TBL_MEMBER WHERE NAMA_MEMBER = 'joko'
- Jika memungkinkan, gunakan backtick untuk kata-kata yg bukan reserved keywords seperti contoh di bawah
Catatan : backtick bukan tanda petik satu biasa, tapi bisa didapat pada tombol di bawah tombol Esc di pojok kiri atas keyboard yang normal.
- Code:
-
SELECT * FROM `tbl_member` ORDER BY `member_id`
SELECT UPPER(`nama_member`) FROM `tbl_member` ORDER BY `member_id`
MySQL Basic 1Misal ada tabel bernama "member".
Memiliki kolom sbb :
- id_member, tipe = integer, primary key + auto increment
- nama_member, tipe = varchar
- umur_member, tipe = integer
Untuk mengambil seluruh data di tabel, gunakan perintah (SQL query) berikut
- Code:
-
SELECT * FROM member
Untuk mengambil hanya kolom "nama_member" dari seluruh data di tabel, gunakan perintah (SQL query) berikut
- Code:
-
SELECT nama_member FROM member
Untuk mengambil hanya kolom "nama_member" dan "umur_member" dari seluruh data di tabel :
- Code:
-
SELECT nama_member, umur_member FROM member
Untuk melakukan sorting (pengurutan) berdasarkan "nama_member" :
- Code:
-
SELECT * FROM member ORDER BY nama_member
Secara default, jika tidak ada "ASC" atau "DESC", pengurutan adalah "ASC".
Sehingga query di atas sama dengan :
- Code:
-
SELECT * FROM member ORDER BY nama_member ASC
Untuk melakukan sorting (pengurutan) terbalik berdasarkan "nama_member"
- Code:
-
SELECT * FROM member ORDER BY nama_member DESC
Truncate vs deleteApa beda truncate & delete.
Contoh perintah truncate :
- Code:
-
TRUNCATE TABLE tbl_memberTRUNCATE TABLE tbl_member, tbl_posts
Contoh perintah delete :
- Code:
-
DELETE FROM tbl_memberDELETE FROM tbl_member WHERE id_member = 1DELETE FROM tbl_member WHERE id_member = 1 OR id_member = 2
Dari contoh di atas terlihat bahwa pada TRUNCATE, semua data di tabel dikosongkan tanpa kecuali.
Sedangkan pada DELETE, kita bisa menghapus hanya data tertentu saja (dengan menambahkan WHERE), atau seluruh data (tanpa WHERE).
Sekarang jika kita ingin menghapus seluruh data, dua-duanya mampu, lalu mana yang kita pilih?
TRUNCATE atau DELETE?.
Pada perintah TRUNCATE, penghapusan terjadi lebih cepat, yaitu bisa diibaratkan bahwa tabel di-DROP dan di-CREATE ulang.
Akibatnya selain data kosong, dengan TRUNCATE auto_increment juga ter-reset jadi awal (1).
Sedangkan pada DELETE, jika kita menghapus semua data, auto_increment masih melanjutkan auto_increment yang lalu.
Misal ada tabel berikut
- Code:
-
==========id - nama==========1 - joko2 - budi3 - bayu
Setelah kita meng-TRUNCATE tabel tersebut, jika kita memasukkan data baru lagi, maka id akan bernilai 1
- Code:
-
==========id - nama==========1 - data baru
Sedangkan bila kita men-DELETE data tabel tersebut, jika kita memasukkan data baru lagi, maka id akan bernilai 4
- Code:
-
==========id - nama==========4 - data baru
Selain itu pada perintah DELETE tanpa WHERE (penghapusan semua row), proses DELETE akan berjalan lambat karena setiap row di tabel di-DELETE satu per satu.
Bayangkan bila ada 2 ribu row, semua didelete satu per satu secara background.
Maka gunakan TRUNCATE & DELETE tergantung situasi, kondisi, & kebutuhan
Kesimpulan :
- Untuk menghapus seluruh data, gunakan TRUNCATE.
- Untuk menghapus data tertentu, gunakan DELETE.
Berikutnya untuk mengubah data di tabel.
Mengubah semua data di tabel
- Code:
-
UPDATE member SET nama = 'nama_baru'
Ini untuk mengubah data tertentu
- Code:
-
UPDATE member SET nama = 'nama_baru' WHERE id_member = 1
Ini untuk mengubah data tertentu versi 2
- Code:
-
UPDATE member SET nama = 'nama_baru' WHERE id_member = 1 OR id_member = 2UPDATE member SET nama = 'nama_baru' WHERE id_member = 1 OR id_member = 2 OR id_member = 3
Perintah MySQL WHERE, GROUP BY, HAVING, ORDER BY
Contoh kombinasi perintah MySQL WHERE, GROUP BY, HAVING, ORDER BY dalam satu query
- Code:
-
SELECT tabel_1.username, tabel_2.user_id, SUM(tabel_2.balance) AS x_total_balanceFROM tabel_2 JOIN tabel_1 ON tabel_2.user_id = tabel_1.user_idWHERE tabel_2.stocks < 31GROUP BY tabel_2.user_idHAVING x_total_balance BETWEEN 1 AND 10000ORDER BY tabel_2.user_id ASC
Jangan lupa GROUP BY harus diletakkan lebih dahulu, setelah itu baru HAVING.
HAVING mirip seperti WHERE, hanya digunakan untuk pengkondisian kolom yang berisi fungsi semacam SUM(), MAX(), MIN(), AVG(), dan lain-lain.
_________________________