向PostgreSQL插入数据
Posted 韦宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向PostgreSQL插入数据相关的知识,希望对你有一定的参考价值。
在创建完一个表的时候,它里面没有数据。在数据库可以有点用处之前要做的第一件事就是向里面插入数据。数据在概念上是每次插入一行。我们当然可以每次插入多行,但是确实没有办法插入少于一行的数据。即使你只知道几个字段的数值,那么你也必须创建一个完整的行。
使用INSERT命令创建一个新行。这条命令要求提供表名字以及字段值。
CREATE TABLE products ( product_no integer, name text, price numeric );
下面是一个向表中插入一行的例子:
INSERT INTO products VALUES (1, \'Cheese\', 9.99);
数据值是按照这些字段在表中出现的顺序列出的,并且用逗号分隔。通常,数据值是文本(常量),但也允许使用标量表达式。
上述语法的缺点是你必须知道表中字段的顺序。你也可以明确地列出字段以避免这个问题。比如,下面的两条命令都和上面的那条命令效果相同:
INSERT INTO products (product_no, name, price) VALUES (1, \'Cheese\', 9.99); INSERT INTO products (name, price, product_no) VALUES (\'Cheese\', 9.99, 1);
许多用户认为明确列出字段名是个好习惯。
如果你不知道所有字段的数值,那么可以省略其中的一些。这时候,这些未知字段将被填充为它们的缺省值。比如:
INSERT INTO products (product_no, name) VALUES (1, \'Cheese\'); INSERT INTO products VALUES (1, \'Cheese\');
第二种形式是PostgreSQL的一个扩展。它从左向右用给定的值尽可能多的填充字段,剩余的填充缺省值。
为了保持清晰,你也可以对独立的字段或者整个行明确使用缺省值:
INSERT INTO products (product_no, name, price) VALUES (1, \'Cheese\', DEFAULT); INSERT INTO products DEFAULT VALUES;
你可以在一条命令中插入多行:
INSERT INTO products (product_no, name, price) VALUES (1, \'Cheese\', 9.99), (2, \'Bread\', 1.99), (3, \'Milk\', 2.99);
以上是关于向PostgreSQL插入数据的主要内容,如果未能解决你的问题,请参考以下文章
Nodejs Postgresql如何监视新的数据库记录插入
尝试使用 java 将数据插入 PostgresQL 表时,序列应用程序的权限被拒绝
向oracle数据库中插入数据时,先判断插入数据是不是重复,如果重复,通过sql提示重新输入,否则直接插入