postgresql表創建及數據插入

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;
發佈了31 篇原創文章 · 獲贊 2 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章