Perintah INSERT digunakan untuk memasukkan data ke dalam tabel database. Ada beberapa variasi perintah INSERT seperti INSERT INTO, INSERT SELECT, INSERT IGNORE, INSERT DELAYED, dan REPLACE INTO. Perintah-perintah tersebut memungkinkan penambahan data secara individu, menyalin data antar tabel, menghindari duplikasi, menangguhkan proses insert, mengatur prioritas, dan mengganti baris data.
2. Memasukkan Data
Sebelum anda dapat melakukan hal apapun dengan data dalam database, data harus sudah ada. untuk alasan inilah,
pernyataan SQL perlu anda pelajari adalah memasukkan data ke dalam database. ketika anda menambahkan data dalam
database, sebenarnya anda menambahkannya ke tabel-tabel secara individu dalam database tersebut.
3. Contoh Tabel
Nama Field Tipe Data Kunci Keterangan
IDCD Smallint Primary key Auto_increment,
unsigned
NamaCD Varchar 50 Not Null
Copyright Year
JumlahDisk Smallint Unsigned, Not
Null, Default=1
JumlahStok Smallint Unsigned
JumlahCadangan Smallint Unsigned, Not Null
JumlahTersedia Smallint Unsigned, Not Null
TipeCD Varchar 20
WaktuPenambahan Timestamp
CREATE TABLE CD (
idcd SMALLINT UNSIGNED AUTO_INCREMENT,
namacd VARCHAR(50) NOT NULL,
copyright YEAR,
jumlahdisk SMALLINT UNSIGNED NOT NULL
DEFAULT 1,
jumlahstok SMALLINT UNSIGNED ,
jumlahcadangan SMALLINT UNSIGNED NOT
NULL,
jumlahtersedia SMALLINT UNSIGNED NOT
NULL,
tipecd VARCHAR(20),
waktupenambaan TIMESTAMP,
PRIMARY KEY (idcd)
);
Tabel CD
4. Perintah Insert
INSERT INTO CD
VALUES (NULL, ‘Surgamu-Koleksi Ungu’, 2006, 2, 10, 3, jumlahstok-jumlahcadangan, ‘Slow’, Null);
Nama Field
IDCD
NamaCD
Copyright
JumlahDisk
JumlahStok
JumlahCadangan
JumlahTersedia
TipeCD
WaktuPenambahan
Tabel CD
INSERT INTO CD (namacd, copyright, jumlahdisk, jumlahstok, jumlahcadangan, jumlahtersedia,
tipecd)
VALUES (‘Opick – Semesta Bertasbih’, 2006, Default, 13, 2, jumlahstok-jumlahcadangan, ‘Nasyid’);
a
a
a
a
a
a
a
5. Perintah Insert
Selain bentuk dasar perintah INSERT, setidaknya ada 7 (tujuh) variasi bentuk perintah INSERT, yaitu :
1. Insert INTO (field1, field2, ...) VALUES(...)
2. Insert ... SELECT ...
3. Insert IGNORE ...
4. Insert DELAYED ...
5. Insert LOW PRIORITY | HIGH PRIORITY ...
6. Insert ... ON DUPlICATE KEY UPDATE
7. REPLACE INTO ...
Nama Field Tipe Data Kunci Keterangan
Nim Varchar 10 Primary key
Nama Varchar 40 Not Null
Alamat Varchar 30 Null
Tabel Mahasiswa & Tabel Pendaftaran
6. Perintah Insert
Tabel Mahasiswa
NIM Nama Alamat
10115132 Ardeny Mirza A Bandung
10115102 Muhamad Raaf Semarang
10115099 Hendriawan Sukabumi
10115114 Edi Kustriyadi Padalarang
10115112 Dwi Nurcahyo Ciamis
Tabel Pendaftaran
NIM Nama Alamat
10115123 Senja Prabowo Tasikmalaya
10113162 Alfathah Guru Putra Garut
10113314 Sera Prakasa Banten
10112688 Putri Legina Sari Makasar
10114334 Rizky Sedyanto Padang
INSERT INTO mahasiswa VALUES ('10115123', 'Senja Prabowo', 'Tasikmalaya');
7. Perintah Insert INTO (field1, field2, ...) VALUES(...)
INSERT INTO mahasiswa (nama, nim) VALUES (‘Fakhrian Fadlia A’, ‘10110008’);
Pada bentuk dasar perintah INSERT di atas, kita harus menyebutkan nilai dari seluruh kolom. Jadi jumlah nilai yang
akan ditambahkan harus sesuai dengan jumlah kolom dalam tabel. Namun ada kalanya kita hanya ingin
menambahkan sebagian dari kolom tabel, jadi tidak semua kolom kita masukkan.
INSERT INTO mahasiswa (nama, nim, Alamat) VALUES (‘Fakhrian Fadlia A’, ‘10110008’, ‘Cimahi’);
Insert semua field pada tabel
Insert beberapa field pada tabel
8. Perintah INSERT … SELECT …
Ada kalanya kita ingin memindahkan atau meng-copy sejumlah data yang berada pada suatu tabel ke tabel yang
lainnya. Singkatnya copy data antar tabel. Untuk menyelesaikan permasalahan tersebut, tentunya sangat kurang
efektif jika kita harus melakukan insert satu per satu. Untuk melakukan copy record antar tabel, akan lebih efektif
jika kita menggunakan bentuk perintah “INSERT … SELECT …” yang menggabungkan proses insert (menambahkan
data) dan select (mengambil data).
INSERT INTO mahasiswa (nama, nim, alamat) SELECT nama, nim, alamat from pendaftaran;
9. Perintah INSERT IGNORE
Ada kalanya kita tidak mengetahui apakah data yang dimasukkan sudah ada atau belum, terkadang dilakukan proses
pemeriksaan terlebih dahulu pada tabel, lalu apabila data belum ada lakukan perintah insert. dengan perintah ini
dua proses tersebut dapat disatukan.
INSERT IGNORE INTO mahasiswa VALUES (‘10110008’,‘Fakhrian Fadlia A’,‘Cimahi’)
10. Perintah INSERT DELAYED
Bentuk perintah INSERT DELAYED … merupakan bentuk perintah yang mungkin akan kita perlukan saat membuat
suatu aplikasi transaksional dengan beberapa pengguna dalam satu waktu. Dengan tambahan perintah “DELAYED”
maka proses menambahkan data akan ditangguhkan hingga tidak ada user yang mengakses tabel.
INSERT DELAYED INTO mahasiswa VALUES (‘10110008’,‘Fakhrian Fadlia A’,‘Cimahi’)
11. Perintah 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.
INSERT LOW_PRIORITY INTO mahasiswa VALUES (‘10110008’,‘Fakhrian Fadlia A’,‘Cimahi’)
12. Perintah 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.
INSERT INTO mahasiswa VALUES (‘10110008’,‘Fakhrian Fadlia A’,‘Cimahi’) ON DUPLICATE KEY UPDATE alamat=‘Bandung’;
13. Perintah REPLACE INTO …
Selain pernyataan INSERT untuk menambahkan data ke dalam tabel, anda juga dapat menggunakan pernyataan
REPLACE. perbedaan dengan INSERT adalah bagaimana nilai dalam kolom primary key dan index unique
diperlakukan. dalam pernyataan INSERT, jika anda mencoba memasukkan baris yang berisi nilai index unique atau
primary key yang sudah ada, anda tidak bisa menambahkanya dalam baris tersebut. pernyataan REPLACE akan
menghapus baris lama dan menambahkan baris yang baru
REPLACE INTO mahasiswa VALUES (‘10110008’,‘Fakhrian Fadlia’,‘Semarang’);