USM SEMARANG [FORUM DISKUSI]

Would you like to react to this message? Create an account in a few clicks or log in to continue.
USM SEMARANG [FORUM DISKUSI]

TEMPAT DISKUSI MATAKULIAH.TEMPAT MENYALURKAN HOBI , BAKAT , MINAT


    MySQL Corner - Tutorial, Tips, dll

    team_support
    team_support
    Admin
    Admin


    Posts : 49
    Join date : 04.04.18

    MySQL Corner - Tutorial, Tips, dll Empty MySQL Corner - Tutorial, Tips, dll

    Post by team_support Tue Apr 10, 2018 8:05 pm

    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`

    Misal 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

    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 🍺

    Kesimpulan :

    1 Untuk menghapus seluruh data, gunakan TRUNCATE.
    2 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 = 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.

    cheers SEKIAN GAES

      Waktu sekarang Fri May 17, 2024 3:08 pm