PostgreSQL INSERT INTO 语句详解与实战技巧
概述
PostgreSQL 的 INSERT INTO 是数据写入的核心命令。它不仅能处理单行记录,还支持批量操作和部分字段更新,灵活性很高。
基本语法
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
这里要注意,如果省略列名,VALUES 的顺序必须严格匹配表结构。
常用场景示例
创建测试表
先准备一张简单的员工表:
CREATE TABLE employees (
emp_id SERIAL PRIMARY KEY,
emp_name VARCHAR(100) NOT NULL,
department VARCHAR(50),
salary NUMERIC(10, 2),
hire_date DATE DEFAULT CURRENT_DATE
);
单行完整插入
直接填入所有字段值:
INSERT INTO employees (emp_name, department, salary)
VALUES ('张三', '技术部', 15000.00);
部分字段与默认值
如果不指定某些字段,它们会使用默认值或允许为 NULL。比如这里没传 hire_date,就会自动用当前日期:
INSERT INTO employees (emp_name, department, salary)
VALUES ('李四', '市场部', 12000.00);
批量插入
性能上,一次插入多行远优于循环执行多次单条 INSERT:
INSERT INTO employees (emp_name, department, salary)
VALUES ('王五', '财务部', 18000.00),
(, , );


