Mungkin ada di antara Anda yang protes pada saya, ngapain sih kok nulis artikel ini. Kan query INSERT itu mudah sekali. Iya sih.. mudah bagi Anda yang sudah expert tapi hal baru bagi para newbie. Toh… Anda dulu (yang expert) pernah jadi newbie juga
Alasan ditulisnya artikel ini tak lain adalah sering saya jumpai keluhan baik itu rekan2 sesama programmer pemula, mahasiswa maupun pengunjung blog ini yang sering gagal dalam menjalankan query INSERT ini. Salah satunya adalah pengunjung blog saya ini. Mereka menganggap query SQL yang diberikan sudah benar, tapi mengapa data atau record tak jua tersimpan dalam tabel. Mudah-mudahan dengan artikel ini bisa sedikit menjawab semua kesulitan yg dihadapi tsb.
OK… untuk studi kasus, misalkan saya berikan sebuah tabel sebagai berikut
1.CREATE TABLE sampel (2.field1 int(11) auto_increment,3.field2 varchar(10),4.field3 date,5.field4 float,6.field5 text,7.PRIMARY KEY (field1)8.);Nah.. secara umum, bila kita ingin menyisipkan sebuah record ke dalam tabel menggunakan query SQL maka menggunakan sintaks sbb:
1.INSERT INTO namaTabel (field1, field2, field3, ..., fieldn)2.VALUES ('value1', 'value2', 'value3', ..., 'valuen');Namun… yang menjadi pertanyaan adalah, Apakah susunan urutan penulisan field dalam query INSERT tersebut harus selalu sama dengan urutan field dalam tabel? Jawabnya adalah TIDAK. Anda bisa saja membolak-balik urutan field dalam penulisan query nya, asal… valuenya juga menyesuaikan. Contohnya:
1.INSERT INTO namaTabel (field2, field1, field3, ..., fieldn)2.VALUES ('value2', 'value1', 'value3', ..., 'valuen');1.INSERT INTO sampel (field2, field3)2.VALUES ('Hallo', '2009-10-12');khusus untuk tipe data DATE, format value yang bisa disimpan adalah dalam bentuk ‘yyyy-mm-dd’.
Mungkin Anda bertanya lagi, Bagaimana bila tabel tersebut memuat field yang merupakan ‘AUTO INCREMENT’? value dalam query INSERT nya diisi dengan apa?
Ya… karena dia auto increment, nama field dan value tidak usah dituliskan, karena nanti akan diisi secara otomatis oleh sistem. Sebagai contoh adalah query berikut ini yang menyisipkan record pada tabel ‘sampel’ di atas pada semua field kecuali ‘field1′ yang merupakan auto increment.
1.INSERT INTO sampel (field2, field3, field4, field5)2.VALUES ('Hallo', '2009-10-12', '2.89', 'Ini Sebuah Text');Oya.. harap hati-hati dengan penggunaan bentuk query ini, karena field-field yang merupakan PRIMARY KEY (namun bukan AUTO INCREMENT) harus diisikan valuenya.
Sebagai contoh, misalkan suatu tabel terdapat 3 field ‘field1′, ‘field2′, dan ‘field3′ dimana ‘field1′ nya merupakan PRIMARY KEY (bukan auto increment).
Jika kita berikan query INSERT sbb:
1.INSERT INTO namaTabel (field2, field3)2.VALUES ('value2', 'value3');Selain bentuk atau sintaks query yang disebutkan di atas, ada pula query INSERT dengan bentuk sbb:
1.INSERT INTO namaTabel2.VALUES ('value1', 'value2', ..., 'valuen');Nah… apa perbedaan makna penulisan query tersebut dengan sebelumnya?
Ya.. perbedaannya adalah, bahwa dengan bentuk query tersebut, Anda harus urut dalam menuliskan valuenya (sesuai urutan field dalam tabel) dan juga jumlah value yang Anda tuliskan harus sama dengan jumlah field yang ada dalam tabel tersebut, atau dengan kata lain bentuk query INSERT tersebut akan mengisi record untuk semua field yang ada dalam tabel.
Sebagai contoh misalkan dalam suatu tabel terdapat field dengan urutan sbb:
field1, field2, field3
dan kemudian Anda memberikan query INSERT sbb:
1.INSERT INTO namaTabel2.VALUES ('value1', 'value2', 'value3');Sedangkan jika Anda menuliskan query INSERT sbb:
1.INSERT INTO namaTabel2.VALUES ('value1', 'value2');Trus… mungkin ada pertanyaan lagi, jadi… bisakah kita gunakan bentuk query INSERT terakhir ini untuk menyisipkan record ke dalam tabel yang di dalamnya terdapat auto increment? Jawabnya adalah.. sebaiknya JANGAN, karena field auto increment ini akan diisi otomatis oleh sistem, jadi.. sebaiknya gunakan bentuk sintaks INSERT pertama di atas.
OK… mudah-mudahan artikel ini bermanfaat bagi Anda, terutama yang masih sering salah dalam menyisipkan record ke dalam tabel.
Tidak ada komentar :
Posting Komentar