Pelajaran modul (1/4)
Memasukkan data: MASUKKAN
Sejauh ini Anda telah membaca data. Saatnya untuk menulis beberapa. INSERT adalah
perintah yang menambahkan baris baru ke tabel.
Sintaks dasar
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);Contoh pada kumpulan data kami:
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Marco', 'Bianchi', 'marco.bianchi@example.com', 'Verona', 'Italia', '2025-07-15');Memberi nama kolom adalah praktik yang disarankan: ini membuat kueri
kuat terhadap perubahan skema di masa depan (misalnya kolom phone opsional baru
tidak merusak apa pun) dan mendokumentasikan diri sendiri.
INSERT multi-baris
Pernyataan tunggal, beberapa baris — jauh lebih cepat daripada N INSERTs yang terpisah:
INSERT INTO categories (name, parent_id) VALUES
('Gaming', 1),
('Smart Home', 1),
('Cucina vegana', 8);RETURNING: membaca nilai yang baru saja Anda masukkan
Karakteristik klausa PostgreSQL: RETURNING mengembalikan baris yang
baru saja dibuat. Sangat berguna untuk mengambil id yang dibuat secara otomatis:
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;Outputnya adalah tabel satu baris dengan id (ditugaskan oleh SERIAL) dan
name.
Apa yang terjadi jika ada kolom yang hilang
Jika Anda menghilangkan kolom di INSERT:
- jika
NOT NULLtanpa DEFAULT → error; - jika memiliki
DEFAULT(termasukSERIALuntuk id) → yang digunakan; - jika menerima
NULL→ menjadiNULL.
-- Va bene: id è SERIAL (auto), country ha NOT NULL ma forniamo tutti i campi
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Olivia', 'Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');
-- Errore: first_name è NOT NULL e non è fornito
INSERT INTO customers (last_name, email, city, country, signed_up_on)
VALUES ('Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');Giliranmu
Masukkan ke dalam tabel pelanggan pelanggan baru dengan nama_depan 'Marco', nama_belakang 'Bianchi', email 'marco.bianchi@example.com', kota 'Verona', negara 'Italia' dan ditandatangani_up_pada '15-07-2025'. Beri nama semua kolom secara eksplisit.
Tunjukkan petunjuk
Urutan nilai dalam VALUES harus sesuai dengan urutan kolom yang Anda beri nama.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Masukkan kategori 'Gaming' baru sebagai turunan dari 'Elettronica' (id = 1). Gunakan klausa RETURNING untuk mengembalikan id dan nama kategori yang baru dibuat.
Tunjukkan petunjuk
RETURNING menerima daftar kolom (atau '*') persis seperti SELECT.
Solusi tersedia setelah 3 upaya