INSERT: Memasukkan Data ke Tabel
Mengisi data dengan INSERT INTO: satu baris, banyak baris sekaligus, hanya kolom tertentu, dan cara kerja AUTO_INCREMENT, DEFAULT, serta NULL.
Bentuk dasar INSERT
INSERT INTO nama_tabel (kolom1, kolom2, kolom3)
VALUES (nilai1, nilai2, nilai3);
Contoh pada tabel siswa (id, nama, kelas, umur):
INSERT INTO siswa (nama, kelas, umur)
VALUES ('Dina Marlina', '10A', 15);
Perhatikan: kolom id tidak kita isi. Karena AUTO_INCREMENT, MySQL otomatis memberi nomor berikutnya (4 bila baris terakhir id-nya 3).
Memasukkan banyak baris sekaligus
INSERT INTO siswa (nama, kelas, umur) VALUES
('Edo Saputra', '10B', 16),
('Farah Nabila', '10A', 15),
('Galih Pratama', '10B', 16);
Lebih cepat daripada tiga INSERT terpisah, karena dikirim sekali jalan.
Hanya mengisi sebagian kolom
INSERT INTO siswa (nama, kelas) VALUES ('Hani Rahma', '10A');
Kolom yang tidak disebut akan berisi nilai DEFAULT-nya, atau NULL bila tidak ada default (selama kolom itu tidak NOT NULL). Kolom umur di atas akan NULL.
Aturan emas
- Selalu sebutkan nama kolom. Menulis
INSERT INTO siswa VALUES (...)tanpa nama kolom bekerja, tapi rapuh: begitu kolom tabel bertambah, perintahmu rusak. - Urutan nilai harus sama dengan urutan kolom yang kamu tulis.
- Teks & tanggal pakai kutip tunggal:
'2024-03-15'. Angka tanpa kutip. - Mau memasukkan tanda kutip di dalam teks? Gandakan:
'Es Teh Manis''s'atau pakai\'.
Melihat id yang baru dibuat
INSERT INTO siswa (nama) VALUES ('Indra');
SELECT LAST_INSERT_ID(); -- id baris yang barusan dimasukkan
Sangat berguna di aplikasi: setelah menyimpan pesanan, kamu langsung tahu nomor pesanannya.
Variasi lain yang perlu kamu tahu
| Perintah | Fungsi |
|---|---|
INSERT IGNORE INTO ... | Lewati baris yang melanggar aturan (mis. duplikat) tanpa error |
REPLACE INTO ... | Jika kunci sudah ada, hapus yang lama lalu masukkan yang baru |
INSERT INTO a SELECT ... FROM b | Menyalin hasil query ke tabel lain (dibahas di bab Normalisasi) |