7 Perintah INSERT di Mysql

Hayooo teman-teman yang sering main database Mysql pasti udah kenal dengan perintah “INSERT” ya kan? bentuk dasar “INSERT” adalah seperti ini


insert into namatabel values(values1,values2,values3, dst)

Naa, disamping perintah dasar itu ada beberapa perintah INSERT lainnya yang mungkin terabaikan (tak jarang juga terlupakan) yang suatu saat nanti kelak bermanfaat. OK berikut perintah INSERT dalam Mysql

1. INSERT INTO  TABLE(FIELD1,FIELD2,. . .)VALUES(VALUES1,VALUES2,. . .)

Yaa mungkin perintah diatas ini udah ga asing lagi, tapi masih ada yang masih menggunakan perintah dasar, pada intinya perintah ini lebih pesifik dalam hal INSERT karena disetiap field-field dalam tabel disebutkan sehingga values-values yang ada jelas masuk kedalam field yang di inginkan


mysql> insert into pegawai(nip,nama,jkel) values(
-> "0001","ANDI","P");

2. INSERT . . . SELECT

Ada saat dimana saya harus menginput/memindah data dari tabel lain, yaa istilahnya itu copy antar tabel lah, klo saya input satu-satu yaa agak panjang, untung di Mysql menyediakan perintah ini


insert into peggaji(nip) select nip from pegawai;

3.  INSERT . . . IGNORE

Insert ignore digunakan untuk mencegah overwrite data yang sudah ada di tabel mysql. ketika data dengan ID yang sama sudah ada, maka otomatis perintah INSERT akan dibatalkan


mysql> SELECT * FROM PEGAWAI;
+------+-------+------+
| nip  | nama  | jkel |
+------+-------+------+
| 0001 | ANDI  | P    |
| 0002 | BUDI  | P    |
| 0003 | LALA  | P    |
| 0004 | LILY  | P    |
| 0005 | INTAN | P    |
+------+-------+------+
5 rows in set

mysql> insert ignore into pegawai(nip,nama,jkel) values(
-> "0003","LUCY","L");
Query OK, 0 rows affected

4. INSERT DELAYED

Perintah INSERT DELAYED berguna saat kita membuat aplikasi transaksional, dimana ada kemungkinan ada beberapa user yang sedang mengakses tabel yang sama dalam satu waktu. ketika ada user yang sedang menggunakan tabel x, maka perintah INSERT baru akan dijalankan ketika tidak ada lagi user yang menggunakan tabel x.


INSERT DELAYED INTO nama_tabel_tujuan(field1,field2, . . .) SELECT field1,field2,. . . FROM tableasal;

5. INSERT LOW PRIORITY | HIGH PRIORITY

Tambahan perintah LOW PRIORITY atau HIGH PRIORITY dibelakang perintah INSERT dapat digunakan untuk mengatur prioritas dari perintah INSERT yang akan dijalankan. Perintah dengan prioritas lebih tinggi tentu akan didahulukan untuk dijalankan. Sama seperti bentuk perintah INSERT DELAYED, perintah ini juga berguna saat kita “bermain” dengan proses transaksional.

6. INSERT … ON DUPLICATE KEY UPDATE

Variasi perintah INSERT ini mungkin suatu saat akan kita perlukan. Misalnya pada kasus dimana pada proses insert sejumlah data, jika datanya sudah ada, dalam arti terjadi duplikasi primary key, maka lakukan perintah update untuk kolom tertentu. Sebagai contoh, kita akan melakukan penambahan data ke tblmhs, jika datanya sudah ada, maka update field alamat dengan alamat yang baru. Berikut ini perintahnya:

INSERT INTO pegawai(nip,nama,jkel) VALUES('1022', 'KUSASI', 'L') ON DUPLICATE KEY UPDATE JKEL=JKEL;

7. REPLACE INTO …

Saya sangat senang dengan adanya bentuk perintah REPLACE di MySQL ini. Perintah ini sangatlah membantu. Contohnya saat saya ingin melakukan penambahan data secara massal seperti pada kasus import data dari ms excel. Jika pada proses import, kita menginginkan agar data selalu up to date, maka jika data sudah ada harus dilakukan proses update. Perintah REPLACE INTO berperan untuk melakukan dua tugas sekaligus, yaitu INSERT jika datanya belum ada dan UPDATE jika datanya sudah ada. Berikut ini contoh perintah ini:

INSERT REPLACE INTO absensi(NIK, tanggal) VALUES('1022','2012-09-09 13:09:02')</p>

More References :

http://dev.mysql.com/doc/refman/5.0/en/replace.html
http://dev.mysql.com/doc/refman/5.5/en/insert.html

4 Balasan ke 7 Perintah INSERT di Mysql

  1. Subiyantoro Suparing mengatakan:

    Ane tambahin dikit gan, biasanya kita terbiasa dengan perintah :

    INSERT INTO absensi(NIK, tanggal) VALUES(‘1022′,’2012-09-09 13:09:02′)

    ternyata bisa ditulis :

    INSERT INTO absensi SET NIK=’1022′, tanggal=’2012-09-09 13:09:02’

  2. rachmad hariyadi mengatakan:

    maaf gan, sya pnya table buat presensi.
    kolom nya (nip, nama, jam masuk, jam datang)

    contoh saya insert (1322, kusir, 08:00, 08:10)
    kemudian sya insert lagi (1322, kusir, 08:00, 08:15)

    karena nip,nama, dan jam masuk nya sama maka insert tidak di proses. tapi jika belum ada maka proses insert dilakukan.
    bisa gk ya gan, tlong dibantu..mkasih…

    • Rubah_amuk mengatakan:

      pake replace into gan,,pastikan ada primary keynya
      replace into itu jika ada data baru dengan primary key baru maka akan dilakukan insert jika ada primary key yang sama dan ada perubahan di kolom-kolom lain isi recordnya maka akan di lakukan update

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: