Bài học theo mô-đun (1/4)
Chèn dữ liệu: INSERT
Cho đến nay bạn đã đọc dữ liệu. Đã đến lúc viết một số. INSERT là
lệnh thêm hàng mới vào bảng.
Cú pháp cơ bản
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);Ví dụ trên tập dữ liệu của chúng tôi:
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');Đặt tên các cột là cách thực hành được khuyến nghị: nó tạo ra truy vấn
mạnh mẽ chống lại các thay đổi lược đồ trong tương lai (ví dụ: cột phone tùy chọn mới
không phá vỡ bất cứ điều gì) và tự ghi lại.
CHÈN nhiều hàng
Một câu lệnh, nhiều hàng — nhanh hơn nhiều so với N INSERTs riêng biệt:
INSERT INTO categories (name, parent_id) VALUES
('Gaming', 1),
('Smart Home', 1),
('Cucina vegana', 8);TRẢ LẠI: đọc các giá trị bạn vừa chèn
Đặc điểm mệnh đề của PostgreSQL: RETURNING trả về các hàng
vừa được tạo ra. Cực kỳ tiện lợi để truy xuất id được tạo tự động:
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;Đầu ra là một bảng một hàng có id (được chỉ định bởi SERIAL) và
name.
Điều gì xảy ra nếu thiếu một cột
Nếu bạn bỏ qua một cột trong INSERT:
- nếu đó là
NOT NULLkhông có DEFAULT → lỗi; - nếu nó có
DEFAULT(bao gồmSERIALcho id) → được sử dụng; - nếu nó chấp nhận
NULL→ nó sẽ trở thànhNULL.
-- 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');Đến lượt bạn
Chèn vào bảng khách hàng một khách hàng mới với first_name 'Marco', Last_name 'Bianchi', email 'marco.bianchi@example.com', thành phố 'Verona', quốc gia 'Italia' và signature_up_on '2025-07-15'. Đặt tên rõ ràng cho tất cả các cột.
Hiển thị gợi ý
Thứ tự của các giá trị trong VALUES phải khớp với thứ tự của các cột bạn đã đặt tên.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Chèn danh mục 'Trò chơi' mới làm danh mục con của 'Elettronica' (id = 1). Sử dụng mệnh đề RETURNING để trả về id và tên của danh mục mới tạo.
Hiển thị gợi ý
RETURNING chấp nhận danh sách các cột (hoặc '*') chính xác như CHỌN.
Giải pháp khả dụng sau 3 lần thử