PostgreSQL 8.1 中文文档 | ||||
Prev | Fast Backward | | Fast Forward | Next |
Chapter 6. 数据操作
Table of Contents 6.1. 插入数据 6.2. 更新数据 6.3. 删除数据
前面的章节讨论了如何创建存储你的数据的表和其他结构。 现在是给表填充数据的时候了。本章介绍如何插入,更新和删除表数据。 我们还将介绍在一些事件发生的时候可以自动影响数据变化的方法: 触发器器和重写规则。在下一章将最终解释如何把你丢失已久的数据从数据库中抽取出来。
6.1. 插入数据
在创建一个表的时候,它里面没有数据。在数据库可以有点用之前 要做的第一件事就是向里面插入数据。数据在概念上是每次一行地插入的。 我们当然可以每次插入多行, 但是的确没有办法一次插入少于一行的数据。即使你只知道几个字段 的数值,那么你也必须创建一个完整的行。
要创建一个新行,我们使用 INSERT 命令。 这条命令要求提供表名字和给表中每个字段提供一个数值。 比如,假设来自 Chapter 5 的产品表:
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;
提示: 要进行"批量装载",也就是说,插入大量数据, 我们可以看看 COPY 命令。 它不像 INSERT 命令那么灵活,但是更高效。 参考 Section 13.4 获取更多有关海量装载数据的信息。
Prev | Home | Next |
依赖性追踪 | Up | 更新数据 |