Agen Terpercaya  
 
 
 
 
Pasang iklan, hanya lewat Contact Us.
Waspada penipuan iklan. Klik di sini untuk melihat daftar penipu.

MySQL Corner - Tutorial, Tips, dll

Tips dalam menulis query SQL :
  1. 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'
  2. 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`
 
Misal ada tabel bernama "member".
Memiliki kolom sbb :
  1. id_member, tipe = integer, primary key + auto increment
  2. nama_member, tipe = varchar
  3. 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
 
Apa beda truncate & delete.

Contoh perintah truncate :
Code:
TRUNCATE TABLE tbl_member
TRUNCATE TABLE tbl_member, tbl_posts

Contoh perintah delete :
Code:
DELETE FROM tbl_member
DELETE FROM tbl_member WHERE id_member = 1
DELETE 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 - joko
2 - budi
3 - 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 :beer:

Kesimpulan :
  1. Untuk menghapus seluruh data, gunakan TRUNCATE.
  2. Untuk menghapus data tertentu, gunakan DELETE.
 
Sama2 gan :)

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 = 2
UPDATE member SET nama = 'nama_baru' WHERE id_member = 1 OR id_member = 2 OR id_member = 3
 
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_balance
FROM
	tabel_2
	JOIN tabel_1 ON tabel_2.user_id = tabel_1.user_id
WHERE
	tabel_2.stocks < 31
GROUP BY
	tabel_2.user_id
HAVING
	x_total_balance BETWEEN 1 AND 10000
ORDER 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.
 
bagaimana cara order by apabila lebih dari satu field, coz dulu aku pernah buat aplikasi dari access filternya ada :
kdgol=>desc
golTMT=>ASC
jmlh_th=>Desc
jml_bl=>Desc
kd_diklatjab=>asc
kd_dikum_TK=>Desc
lgl_lahir=>asc
nip=>asc

makasih
 
bagaimana cara order by apabila lebih dari satu field, coz dulu aku pernah buat aplikasi dari access filternya ada :
kdgol=>desc
golTMT=>ASC
jmlh_th=>Desc
jml_bl=>Desc
kd_diklatjab=>asc
kd_dikum_TK=>Desc
lgl_lahir=>asc
nip=>asc

makasih
Dibuat macam gini :)

Code:
SELECT * FROM blah

ORDER BY
nama_kolom_1 ASC,
nama_kolom_2 ASC,
nama_kolom_3 DESC,
nama_kolom_4 ASC,
nama_kolom_dst ASC
 
Met pagi agan2, mohon sharenya utk migrasi dari mssql di windows ke mysql di linux, apa pernah ada yang coba. Thank's atas share ilmunya
 
pake bawaan MySQL juga bisa "MySQL GUI Tools", atau kalo mau ribet ya di export 1-1 :D
 
Gaple Online Indonesia
Pasang iklan hanya lewat CONTACT US
Back
Top
We are now part of LS Media Ltd