PostgreSQL INSERT INTO 语句详解
在 PostgreSQL 数据库的日常开发中,INSERT INTO 是最基础也最常用的操作之一。它负责将新记录写入表中,支持单行、多行、部分字段插入等多种灵活用法。理解其语法细节和最佳实践,能显著提升数据写入的效率和稳定性。
基本语法结构
标准的插入语句结构如下:
INSERT INTO table_name (column1, column2, ..., columnN)
VALUES (value1, value2, ..., valueN);
其中 table_name 是目标表,括号内列出要插入的字段,VALUES 后紧跟对应的值列表。如果省略字段列表,则必须为所有列提供值且顺序一致。
常见插入场景示例
1. 创建示例表
为了演示方便,我们先定义一个简单的员工表:
CREATE TABLE company (
id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
address CHAR(50),
salary REAL,
join_date DATE
);
2. 单行完整插入
当需要插入一条包含所有字段数据的记录时:
INSERT INTO company VALUES (1, 'Paul', 32, 'California', 20000.00, '2001-07-13');
注意这里没有指定列名,因此值的顺序必须与建表时的列顺序严格匹配,否则容易出错。
3. 指定字段插入(部分字段)
实际开发中,我们往往只关心核心业务字段,或者某些字段有默认值。此时可以显式指定列名:
INSERT INTO company (id, name, age, address, join_date)
VALUES (2, 'Allen', 25, 'Texas', '2007-12-13');
这种方式更稳健,即使后续表结构变更(如增加中间列),只要不改变现有列的顺序或名称,SQL 依然有效。


