table of contents
INSERT(7) | SQL Commands | INSERT(7) |
NAME¶
INSERT - 在表中建立新行
SYNOPSIS¶
INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }
DESCRIPTION 描述¶
INSERT 允許我們向表中插入新行。 我們可以一次插入一行或多行作為查詢結果。
目標列表中的列/欄位可以按任何順序排列。
在目標列中沒有出現的列/欄位將插入預設值,
可能是定義了的預設值或者
NULL。
如果每行的表示式不是正確的資料型別,系統將試圖進行自動的型別轉換。
要想向表中插入資料,你必須有
INSERT 許可權,
如果你使用了 query
子句插入來自查詢裡的資料行,
你還需要擁有在查詢裡使用的表的
SELECT 許可權。
PARAMETERS 引數¶
- table
-
現存表的名稱(可以有模式修飾)。 - column
-
表 table 中的欄位名。 - DEFAULT VALUES
-
所有欄位都會用它們的預設值填充。 - expression
-
賦予 column 的一個有效表示式或值。 - DEFAULT
-
這個欄位將被欄位它的填充。 - query
-
一個查詢(SELECT 語句),它提供插入的資料行。 請參考 SELECT 語句獲取語法描述。
OUTPUTS 輸出¶
成功完成後,一條 INSERT 命令返回一個下面形式的命令標籤
INSERT oid countcount 是插入的行數。 如果 count 正好是一,並且目標表有 OID, 那麼 oid 是賦予插入行的 OID。 否則 oid 是零。
EXAMPLES 例子¶
向表 films 裡插入一行:
INSERT INTO films VALUES
('UA502', 'Bananas', 105, '1971-07-13', 'Comedy', '82 minutes');
在第二個例子裡面省略了欄位
len
因此在它裡面將只儲存預設的
NULL 值:
INSERT INTO films (code, title, did, date_prod, kind)
VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');
在第三個例子裡,我們用
DEFAULT
值作為資料欄位,而不是宣告一個數值:
INSERT INTO films VALUES
('UA502', 'Bananas', 105, DEFAULT, 'Comedy', '82 minutes'); INSERT INTO films (code, title, did, date_prod, kind)
VALUES ('T_601', 'Yojimbo', 106, DEFAULT, 'Drama');
從表 tmp 中插入幾行到表
films 中:
INSERT INTO films SELECT * FROM tmp;
插入陣列:
-- 建立一個空的 3x3 遊戲板來玩圈-和-叉遊戲 -- (所有這些查詢建立相同的遊戲) INSERT INTO tictactoe (game, board[1:3][1:3])
VALUES (1,'{{"","",""},{},{"",""}}'); INSERT INTO tictactoe (game, board[3][3])
VALUES (2,'{}'); INSERT INTO tictactoe (game, board)
VALUES (3,'{{,,},{,,},{,,}}');
COMPATIBILITY 相容性¶
INSERT 完全遵循 SQL 標準。可能碰到的關於 query 子句特性的限制在 SELECT [select(7)] 語句中有相關文件。
譯者¶
Postgresql 中文網站 何偉平 <laser@pgsqldb.org>
跋¶
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
2003-11-02 | SQL - Language Statements |