admin 管理员组文章数量: 1086019
2024年2月24日发(作者:linux找回误删的文件)
pg库insert语句
在pg库中,insert语句是用来往表中插入数据的常用语句。下面是一些常见的insert语句及相关的知识点。
1. 插入单行数据
语法格式:
```
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
```
示例:
```
INSERT INTO users (name, age, gender) VALUES ('张三', 25, '男');
```
说明:
- INSERT INTO:插入数据的关键字;
- 表名:要插入数据的表名;
- 列名:要插入数据的列名;
- 值:要插入的数据。
2. 插入多行数据
语法格式:
```
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...), (值1, 值2, 值3, ...), ...;
```
示例:
```
INSERT INTO users (name, age, gender) VALUES ('张三', 25, '男'), ('李四', 30, '男'), ('王五', 28, '女');
```
说明:
- 插入多行数据的格式与插入单行数据的格式相似,只需在VALUES后面添加多个括号即可。
3. 插入部分数据
有时候,我们只需要插入表中的部分数据。这时可以使用以下语法:
语法格式:
```
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
```
示例:
```
INSERT INTO users (name, age) VALUES ('张三', 25);
```
说明:
- 如果不想插入某些列的数据,可以在INSERT INTO后面的列名中省略相应的列名。
4. 插入查询结果
有时候,我们需要将查询结果插入到表中。这时可以使用以下语法:
语法格式:
```
INSERT INTO 表名 (列1, 列2, ...) SELECT 列1, 列2, ... FROM 表名 WHERE 条件;
```
示例:
```
INSERT INTO users (name, age, gender) SELECT name, age,
gender FROM temp_users WHERE age > 25;
```
说明:
- SELECT语句可以返回任意数量的列;
- WHERE子句用来筛选需要插入的数据。
5. 插入默认值
如果要插入表中的默认值,可以使用以下语法:
语法格式:
```
INSERT INTO 表名 DEFAULT VALUES;
```
示例:
```
INSERT INTO users DEFAULT VALUES;
```
说明:
- 如果表中有默认值,可以使用这种方式插入数据。
6. 插入序列值
有时候,我们需要自动生成序列值并插入到表中。这时可以使用以下语法:
语法格式:
```
INSERT INTO 表名 (列1, 列2, ...) VALUES (nextval('序列名'), 值2, ...);
```
示例:
```
INSERT INTO users (id, name, age, gender) VALUES
(nextval('users_id_seq'), '张三', 25, '男');
```
说明:
- nextval()函数用来获取序列的下一个值。
7. 插入重复数据
如果插入的数据重复,可以使用以下语法替换旧数据:
语法格式:
```
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...) ON
CONFLICT (列名) DO UPDATE SET 列1=值1, 列2=值2, ...;
```
示例:
```
INSERT INTO users (name, age, gender) VALUES ('张三', 25, '男') ON CONFLICT (name) DO UPDATE SET age=26, gender='女';
```
说明:
- ON CONFLICT子句用来指定冲突处理方式;
- DO UPDATE子句用来指定更新操作。
8. 插入忽略重复数据
如果插入的数据重复,可以使用以下语法忽略重复数据:
语法格式:
```
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...) ON
CONFLICT (列名) DO NOTHING;
```
示例:
```
INSERT INTO users (name, age, gender) VALUES ('张三', 25, '男') ON CONFLICT (name) DO NOTHING;
```
说明:
- DO NOTHING子句用来指定忽略重复数据操作。
9. 插入时间戳
如果需要插入当前时间戳,可以使用以下语法:
语法格式:
```
INSERT INTO 表名 (列1, 列2, ..., 列n, create_at) VALUES (值1,
值2, ..., 值n, now());
```
示例:
```
INSERT INTO users (name, age, gender, create_at) VALUES ('张三', 25, '男', now());
```
说明:
- now()函数用来获取当前时间戳。
10. 插入JSON数据
如果需要插入JSON数据,可以使用以下语法:
语法格式:
```
INSERT INTO 表名 (列1, 列2, ..., 列n, json_column) VALUES (值1, 值2, ..., 值n, '{"key1": "value1", "key2": "value2", ...}');
```
示例:
```
INSERT INTO users (name, age, gender, json_data) VALUES ('张三', 25, '男', '{"address": "北京市海淀区", "phone":
"138****8888"}');
```
说明:
- json_data列的类型为json,需要使用JSON格式的字符串插入数据。
总结
insert语句是往表中插入数据的常用语句,掌握其语法和用法非常重要。在使用insert语句时,需要注意数据类型、列名和值的对应关系,以及可能出现的重复数据和冲突处理方式。
版权声明:本文标题:pg库insert语句 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1708778937a531296.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论