Belajar MySQL Part 15 : Menambah Data Ke dalam Table MySQL (INSERT)
Setelah dalam tutorial sebelumnya kita mempelajari cara mengubah struktur tabel MySQL dengan query ALTER TABLE, Pada tutorial belajar MySQL kali ini kita akan mempelajari perintah (query) MySQL untuk menambahkan data ke dalam tabel menggunakan perintah INSERT.
Query INSERT untuk menambahkan data kedalam Table MySQL
Menambahkan sebuah data ke dalam tabel MySQL merupakan salah satu aktifitas yang paling sering dilakukan. Pembuatan database dan tabel hanya perlu dilakukan 1 kali saja, namun menginput data ke dalam tabel akan terus dilakukan sepanjang penggunaan aplikasi. Di dalam MySQL (dan juga RDBMS lainnya), kita menggunakan query INSERT untuk menambahkan data kedalam tabel.
Query INSERT sendiri memiliki banyak variasi perintah yang fleksibel tergantung kebutuhan. Termasuk pilihan ketika data yang akan diinput terdapat duplikasi, dengan opsi IGNORE dan ON DUPLICATE KEY UPDATE.
Sebagai tabel contoh untuk memahami perintah INSERT MySQL, kita akan membuat tabel mata_kuliah di dalam database mahasiswa dengan query sebagai berikut:
Tabel mata_kuliah diatas didefinisikan menggunakan beberapa atribut yang telah kita bahas pada tutorial atribut tipe data MySQL (atribut PRIMARY KEY merupakan atribut yang membuat suatu kolom dalam tabel menjadi kolom kunci, penjelasan lebih lanjut akan kita bahas pada kesempatan berikutnya)
Cara Penuliasan dasar query INSERT
Mengutip manual resmi MySQL, penulisan dasar dari perintah INSERT dalam MySQL adalah sebagai berikut:
Seperti yang terlihat, MySQL menyediakan banyak pilihan opsional untuk memasukkan data ke dalam tabel. Kita akan membahasnya secara lebih dalam pada tutorial MySQL kali ini.
Cara Penggunana Query INSERT...VALUES
Format perintah INSERT yang pertama kita bahas adalah yang paling sederhana, yaitu:
Langsung saja kita contohkan untuk memasukkan sebaris data ke dalam tabel mata_kuliah:
Jika kita ingin langsung memasukkan 2 baris data atau lebih dalam satu perintah query INSERT MySQL, tinggal menambahkan isi data untuk baris berikutnya dibelakang perintah dengan format penulisan sebagai berikut:
Contoh query untuk penambahan data dengan 2 baris sekaligus adalah:
Perintah INSERT… VALUES diatas cocok untuk tabel dimana kita telah mengetahui urutan dari kolom yang ada. Namun dalam situasi kita tidak mengetahui urutan kolom dari tabel, kita harus mendefenisikan urutan kolom yang akan diisi dengan cara penulisan query INSERT… VALUES.
Cara Penggunaan Query INSERT (nama_kolom)... VALUES
Untuk situasi dimana kolom yang akan diisi tidak diketahui urutannya, atau kita hanya akan mengisi sebagian kolom saja, maka kita harus mendefenisikan kolom-kolom mana saja yang akan digunakan. Untuk keperluan tersebut, MySQL menyediakan variasi query INSERT, yaitu:
Sebagai contoh, kita akan menggunakan perintah INSERT (nama_kolom)… VALUES pada MySQL :
Keterangan !
Perintah query TRUNCATE pada baris pertama digunakan untuk mengosongkan tabel mata_kuliah, hal ini semata-mata hanya untuk keperluan agar tabel mata_kuliah kembali kosong. Silahkan abaikan perintah ini jika tidak ingin mengosongkan isi tabel terlebih dahulu. Kita akan membahas perintah TRUNCATE pada tutorial selanjutnya.
Cara Penggunana Query INSERT IGNORE...VALUES
Dalam setiap pendefinisan tabel, sebaiknya (baca: seharusnya) sebuah tabel memiliki satu kolom yang didefenisikan sebagai PRIMARY KEY. Kolom dengan atribut PRIMARY KEY harus unik, dalam arti tidak boleh ada duplikasi data pada kolom tersebut. Kegunaan kolom ini adalah sebagai penanda bahwa kolom dengan nilai yang sama telah bisa diinput pada tabel.
Pada tabel mata_kuliah kita telah mendefenisikan kolom kode_matkul sebagai PRIMARY KEY, sehingga jika ada data mata_kuliah yang telah ada sebelumnya, dan kita mencoba menginput data baru dengan nilai yang sama, MySQL akan menghasilkan error dan seluruh perintah akan dibatalkan.
Sebagai contoh query, saya akan mencoba menginput kode_matkul: ‘CITRA’ pada tabel mata_kuliah. Nilai ‘CITRA’ ini sebenarnya sudah tersedia di dalam tabel:
Pada query diatas saya mencoba menginput 2 buah data baru dengan kode_matkul : ‘CITRA’ dan ‘STATS’. Namun karena ‘CITRA’ telah ada sebelumnya pada tabel, maka MySQL akan menghasilkan error Duplicate entry ‘CITRA’ for key ‘PRIMARY’ dan tidak menjalankan penginputan ‘STATS’, walaupun ‘STATS’ sebenarnya belum tersedia di dalam tabel.
Untuk ‘memaksa’ MySQL tetap menjalankan perintah penginputan ‘STATS’, kita bisa menambahkan perintah opsional IGNORE. Perintah ini memaksa MySQL tetap menjalankan seluruh query walaupun terdapat error.
Sekarang, dengan perintah IGNORE, walaupun di dalam query saya ada error (nilai CITRA terjadi duplikasi), namun nilai ‘STATS’ akan tetap ditambahkan ke dalam tabel.
Kesimpulan !
Demikian pembahasan kita kali ini tentang query INSERT MySQL, Query INSERT menyediakan cara input data ke tabel dengan cepat. Namun untuk jika kita memiliki data dalam jumlah besar, MySQL menyediakan fasilitas untuk input langsung dari file external, pembahasan tentang ini akan kita bahas pada Cara Menambahkan data dari File (LOAD DATA INFILE).
Query INSERT untuk menambahkan data kedalam Table MySQL
Menambahkan sebuah data ke dalam tabel MySQL merupakan salah satu aktifitas yang paling sering dilakukan. Pembuatan database dan tabel hanya perlu dilakukan 1 kali saja, namun menginput data ke dalam tabel akan terus dilakukan sepanjang penggunaan aplikasi. Di dalam MySQL (dan juga RDBMS lainnya), kita menggunakan query INSERT untuk menambahkan data kedalam tabel.
Query INSERT sendiri memiliki banyak variasi perintah yang fleksibel tergantung kebutuhan. Termasuk pilihan ketika data yang akan diinput terdapat duplikasi, dengan opsi IGNORE dan ON DUPLICATE KEY UPDATE.
Sebagai tabel contoh untuk memahami perintah INSERT MySQL, kita akan membuat tabel mata_kuliah di dalam database mahasiswa dengan query sebagai berikut:
Tabel mata_kuliah diatas didefinisikan menggunakan beberapa atribut yang telah kita bahas pada tutorial atribut tipe data MySQL (atribut PRIMARY KEY merupakan atribut yang membuat suatu kolom dalam tabel menjadi kolom kunci, penjelasan lebih lanjut akan kita bahas pada kesempatan berikutnya)
Cara Penuliasan dasar query INSERT
Mengutip manual resmi MySQL, penulisan dasar dari perintah INSERT dalam MySQL adalah sebagai berikut:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
Seperti yang terlihat, MySQL menyediakan banyak pilihan opsional untuk memasukkan data ke dalam tabel. Kita akan membahasnya secara lebih dalam pada tutorial MySQL kali ini.
Penjelasan !Sedikit penjelasan tentang cara membaca format dasar MySQL diatas, perintah yang terdapat diantara 2 kurung siku ([…..]) adalah opsional, kita tidak harus menulis seluruh perintah tersebut, namun dari format tersebut kita dapat mengetahui berbagai opsi yang tersedia yang dapat digunakan.
Cara Penggunana Query INSERT...VALUES
Format perintah INSERT yang pertama kita bahas adalah yang paling sederhana, yaitu:
INSERT INTO nama_tabel VALUES (nilai_kolom1, nilai_kolom2,...);nama_tabel adalah nama dari tabel yang akan diinput, sedangkan nilai_kolom1 adalah nilai yang akan kita input kedalam tabel MySQL, nilai_kolom2 adalah nilai untuk kolom kedua, dan seterusnya. Perhatikan bahwa nilai_kolom harus berada dalam tanda kurung dan dipisahkan dengan koma untuk kolom-kolom berikutnya.
Langsung saja kita contohkan untuk memasukkan sebaris data ke dalam tabel mata_kuliah:
Keterangan !Seperti yang telah kita bahas pada Tutorial MySQL Tipe Data String dan Tutorial MySQL Tipe Data Numerik, bahwa untuk kolom yang berisi karakter (string), harus situlis di dalam tanda petik (‘), dan sebaliknya untuk kolom yang berisi nilai numerik harus ditulis tanpa tanda petik.
Jika kita ingin langsung memasukkan 2 baris data atau lebih dalam satu perintah query INSERT MySQL, tinggal menambahkan isi data untuk baris berikutnya dibelakang perintah dengan format penulisan sebagai berikut:
INSERT INTO nama_tabel VALUES (nilai_kolom1a, nilai_kolom2a,...), (nilai_kolom1b, nilai_kolom2b,...);
Contoh query untuk penambahan data dengan 2 baris sekaligus adalah:
Perintah INSERT… VALUES diatas cocok untuk tabel dimana kita telah mengetahui urutan dari kolom yang ada. Namun dalam situasi kita tidak mengetahui urutan kolom dari tabel, kita harus mendefenisikan urutan kolom yang akan diisi dengan cara penulisan query INSERT… VALUES.
Cara Penggunaan Query INSERT (nama_kolom)... VALUES
Untuk situasi dimana kolom yang akan diisi tidak diketahui urutannya, atau kita hanya akan mengisi sebagian kolom saja, maka kita harus mendefenisikan kolom-kolom mana saja yang akan digunakan. Untuk keperluan tersebut, MySQL menyediakan variasi query INSERT, yaitu:
INSERT INTO nama_tabel (kolom1,kolom2,...) VALUES (nilai_kolom1,nilai_kolom2,...);kolom1 adalah nama kolom yang akan kita input dengan nilai_kolom1, dan kolom2 adalah nama kolom yang akan diisi dengan data pada nilai_kolom2. Urutan nama kolom dengan nilai yang akan diisi harus sesuai.
Sebagai contoh, kita akan menggunakan perintah INSERT (nama_kolom)… VALUES pada MySQL :
query :
TRUNCATE mata_kuliah;
INSERT INTO mata_kuliah (kode_matkul,nama_matkul,jumlah_SKS,nama_jurusan) VALUES ('MMDAS','Matematika Dasar',4,'Matematika');
select * from mata_kuliah;
Keterangan !
Perintah query TRUNCATE pada baris pertama digunakan untuk mengosongkan tabel mata_kuliah, hal ini semata-mata hanya untuk keperluan agar tabel mata_kuliah kembali kosong. Silahkan abaikan perintah ini jika tidak ingin mengosongkan isi tabel terlebih dahulu. Kita akan membahas perintah TRUNCATE pada tutorial selanjutnya.
Cara Penggunana Query INSERT IGNORE...VALUES
Dalam setiap pendefinisan tabel, sebaiknya (baca: seharusnya) sebuah tabel memiliki satu kolom yang didefenisikan sebagai PRIMARY KEY. Kolom dengan atribut PRIMARY KEY harus unik, dalam arti tidak boleh ada duplikasi data pada kolom tersebut. Kegunaan kolom ini adalah sebagai penanda bahwa kolom dengan nilai yang sama telah bisa diinput pada tabel.
Pada tabel mata_kuliah kita telah mendefenisikan kolom kode_matkul sebagai PRIMARY KEY, sehingga jika ada data mata_kuliah yang telah ada sebelumnya, dan kita mencoba menginput data baru dengan nilai yang sama, MySQL akan menghasilkan error dan seluruh perintah akan dibatalkan.
Sebagai contoh query, saya akan mencoba menginput kode_matkul: ‘CITRA’ pada tabel mata_kuliah. Nilai ‘CITRA’ ini sebenarnya sudah tersedia di dalam tabel:
Pada query diatas saya mencoba menginput 2 buah data baru dengan kode_matkul : ‘CITRA’ dan ‘STATS’. Namun karena ‘CITRA’ telah ada sebelumnya pada tabel, maka MySQL akan menghasilkan error Duplicate entry ‘CITRA’ for key ‘PRIMARY’ dan tidak menjalankan penginputan ‘STATS’, walaupun ‘STATS’ sebenarnya belum tersedia di dalam tabel.
Untuk ‘memaksa’ MySQL tetap menjalankan perintah penginputan ‘STATS’, kita bisa menambahkan perintah opsional IGNORE. Perintah ini memaksa MySQL tetap menjalankan seluruh query walaupun terdapat error.
Sekarang, dengan perintah IGNORE, walaupun di dalam query saya ada error (nilai CITRA terjadi duplikasi), namun nilai ‘STATS’ akan tetap ditambahkan ke dalam tabel.
Kesimpulan !
Demikian pembahasan kita kali ini tentang query INSERT MySQL, Query INSERT menyediakan cara input data ke tabel dengan cepat. Namun untuk jika kita memiliki data dalam jumlah besar, MySQL menyediakan fasilitas untuk input langsung dari file external, pembahasan tentang ini akan kita bahas pada Cara Menambahkan data dari File (LOAD DATA INFILE).
No comments