JNet99

Enjoy Saja Bro

UPDATE….FROM

Picture 35UPDATE….FROM

Setelah pembahasan INSERT dengan beberapa kombinasinya pada artikel sebelumnya, dalam kesempatan ini saya mencoba untuk menjelaskan fungsi UPDATE, dengan tujuan agar rekan-rekan penggemar SQL yang kebetulan mampir di blog saya ini mungkin dapat memanfaatkannya.

Perintah UPDATE yang akan saya terangkan di sini bukan lagi perintah UPDATE standard, tapi sudah dalam tahap lanjutan. Karena akan saya kombinasikan dengan beberapa perintah lain dengan tujuan pengelolaan data lebih cepat dan efisien berdasarkan pengalaman-pengalaman yang sudah saya dapatkan dan mudah-mudahan dapat di kembangkan lebih lanjut.

Seperti yang telah kita ketahui, perintah UPDATE berfungsi untuk mengubah isi data yang ada di table. Perintah dasarnya sebagai berikut :

UPDATE tb_a SET field1 = ‘xxxxx’, field2 = ‘xxxxx’ WHERE keyfield = value

Perintah diatas merupakan perintah UPDATE yang paling mendasar sekali, dan sudah saya bahas pada artikel-artikel saya sebelumnya.

Kasus 1 :

Kita mempunyai 2 (dua) tabel seperti di bawah ini :

tb_salesman

kode_sales nama_sales golongan
1001 Budi
A
1002 Udin
B
1003 Ifan
A
1004 Dino
C
1005 Gito
B
1006 Danu
A
1007 Gita
A

tb_transaksi

no_transak nilai kode_sales bonus
F1001
2.000.000
1001
50.000
F1002
1.000.000
1003
50.000
F1003
3.000.000
1002
50.000
F1004
6.000.000
1007
50.000
F1005
7.000.000
1004
50.000
F1006
3.000.000
1005
50.000
F1007
4.000.000
1006
50.000

Dalam contoh ini kita misalkan ada perubahan nilai bonus pada tb_transaksi yang sudah terlanjur diberi nilai 50.000, kita menginkan salesman yang mempunyai golongan A bonusnya diberikan 75.000. Langkah-langkah yang perlu dilakukan :

Langkah I : Cari perintah Query pada tb_salesman yang menyaring untuk golongan A saja.

SELECT* FROM tb_salesman a INNER JOIN tb_transaksi b ON a.kode_sales = b.kode_sales WHERE golongan = ‘A’

Setelah Anda sudah yakin data hasil Query yang dihasilkan sudah benar langkah selanjutnya

Langkah II : adalah merubah data di tb_transaksi pada field bonus dengan nilai 75.000 untuk salesman yang bergolongan A tadi. Perintahnya sebagai berikut ;

UPDATE tb_transaksi SET bonus = 75.000 FROM tb_salesman a INNER JOIN tb_transaksi b ON a.kode_sales = b.kode_sales WHERE golongan = ‘A’

Perintah dari FROM….., tinggal kita Copy Paste saja dari Langkah pertama tadi.

Hasil dari tb_transaksi menjadi :

no_transak nilai kode_sales bonus
F1001
2.000.000
1001
75.000
F1002
1.000.000
1003
75.000
F1003
3.000.000
1002
50.000
F1004
6.000.000
1007
75.000
F1005
7.000.000
1004
50.000
F1006
3.000.000
1005
50.000
F1007
4.000.000
1006
75.000

Contoh 2 :

Kasus berikutnya, seandainya tiba-tiba ada penambahan field ‘golongan’ untuk tb_transaksi pada Contoh 1. Padahal data-data pada transaksi sudah banyak sekali, dan field ‘golongan’ ini harus diisi semua berdasakan data-data yang ada pada tb_sales.

Jadi table tb_transaksi strukturnya berubah menjadi seperti berikut :

no_transak nilai kode_sales bonus golongan
F1001
2.000.000
1001
75.000
F1002
1.000.000
1003
75.000
F1003
3.000.000
1002
50.000
F1004
6.000.000
1007
75.000
F1005
7.000.000
1004
50.000
F1006
3.000.000
1005
50.000
F1007
4.000.000
1006
75.000

Langkah pertama dapat kita lakukan seperti pada contoh pertama, tetapi pada langkah kedua perintahnya seperti berikut :

UPDATE tb_transaksi SET golongan = a.golongan FROM tb_salesman a INNER JOIN tb_transaksi b ON a.kode_sales = b.kode_sales WHERE golongan = ‘A’

maka tabel yang dihasilkan :

no_transak nilai kode_sales bonus golongan
F1001
2.000.000
1001
75.000
A
F1002
1.000.000
1003
75.000
A
F1003
3.000.000
1002
50.000
B
F1004
6.000.000
1007
75.000
A
F1005
7.000.000
1004
50.000
C
F1006
3.000.000
1005
50.000
B
F1007
4.000.000
1006
75.000
A

Contoh-contoh di atas merupakan contoh yang saya sederhanakan, walaupun pada kenyataannya kita sering menemukan kasus-kasus yang lebih komplek, karena bisa ber-relasi lebih dari 2 tabel dan bisa berisi ribuan sampai jutaan record, akan tetapi solusinya tidak jauh-jauh dengan cara di atas.

Mudah-mudahan rekan-rekan penggemar SQL mengerti apa yang saya maksudkan dari yang sudah saya jelaskan di atas. Dengan memakai rumusan di atas kerja kita dalam mengelola Database tentu jadi lebih cepat dan menyenangkan.

Selamat mempelajari, berikutnya nanti akan saya lanjutkan berbincang-bincang mengenai DELETE… FROM.

Karena sekarang mata saya sudah ngantuk  bye-bye ! see you next time………….

Note : Perintah di atas saya bikin dengan SQL Server.

Artikel lainnya

Filed under: SQL, Tips & Tricks, ,

5 Responses

  1. artvisualizer berkata:

    wah, ini dulu saya belajar SQL pusing sendiri.. hahaha

  2. josenetmail berkata:

    @arvi : masih dendam ya sama SQL ?

  3. frayaditama berkata:

    Mantaff sih mas buat nambah ilmu. Tp sepertinya ada yg kurang jelas tuh. Dikit aja ya w kritik, jgn mrh loh … 🙂
    disitu => knp tabel sales, transaksi ada a atau b nya sgala sih? Klau awam psti bingung deh 😦
    Trus pada contoh yg kedua knp mesti pke where Golongan = ‘A’ ?
    Pdhl field itukan ada A atau B.
    Hehe, demikian dikit kritikannya mas. Cma sharing doank kok. Gk kurang n gk lebih. Tks atas perhatiannya.

  4. Howard berkata:

    mas pada contoh pertama. b pd (transaksi b) ,a pada (a.kode_sales) , b pada (b.kode_sales) maksudnya apa?

    SELECT* FROM tb_salesman a INNER JOIN tb_transaksi b ON a.kode_sales = b.kode_sales WHERE golongan = ‘A’;

    UPDATE tb_transaksi SET bonus = 75.000 FROM tb_salesman a INNER JOIN tb_transaksi b ON a.kode_sales = b.kode_sales WHERE golongan = ‘A’

Tinggalkan komentar

delicious