首頁
云原生數(shù)據(jù)倉庫AnalyticDB
云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL版
開發(fā)參考
SQL手冊
數(shù)據(jù)管理
數(shù)據(jù)寫入
使用DML插入、更新、刪除數(shù)據(jù)
使用DML插入、更新、刪除數(shù)據(jù)
更新時間:
本文介紹在AnalyticDB PostgreSQL數(shù)據(jù)庫中,如何使用DML語法插入、更新、刪除數(shù)據(jù)。
插入行(INSERT)
說明
如果要插入大量數(shù)據(jù),推薦使用外部表或者COPY命令,相比INSERT性能更好。
使用INSERT
命令在一個表中插入行。語法如下:
INSERT INTO table [( column [, ...] )]
{DEFAULT VALUES | VALUES ( {expression | DEFAULT} [, ...] )
[, ...] | query}
示例:
插入單行數(shù)據(jù)。
INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1);
在一條命令中插入多行數(shù)據(jù)。
INSERT INTO products (product_no, name, price) VALUES
(1, 'Cheese', 9.99),
(2, 'Bread', 1.99),
(3, 'Milk', 2.99);
使用標量表達式插入數(shù)據(jù)。
INSERT INTO films SELECT * FROM tmp_films WHERE date_prod <
'2016-05-07';
更新行(UPDATE)
使用UPDATE
命令在一個表中更新行。語法如下:
UPDATE [ONLY] table [[AS] alias]
SET {column = {expression | DEFAULT} |
(column [, ...]) = ({expression | DEFAULT} [, ...])} [, ...]
[FROM fromlist]
[WHERE condition | WHERE CURRENT OF cursor_name ]
使用限制:
分布鍵列不能被更新。
分區(qū)鍵列不能被更新。
不能在UPDATE語句中使用STABLE或VOLATILE函數(shù)。
不支持RETURNING子句。
示例:
將所有價格為5的產(chǎn)品更新價格為10。
UPDATE products SET price = 10 WHERE price = 5;
刪除行(DELETE)
使用DELETE
命令從一個表中刪除行。語法如下:
DELETE FROM [ONLY] table [[AS] alias]
[USING usinglist]
[WHERE condition | WHERE CURRENT OF cursor_name ]
使用限制:
不能在DELETE語句中使用STABLE或VOLATILE函數(shù)。
不支持RETURNING子句。
示例:
從產(chǎn)品表中刪除所有價格為10的行。
DELETE FROM products WHERE price = 10;
從表中刪除所有行。
DELETE FROM products;
截斷表(TRUNCATE)
使用TRUNCATE
命令可以快速地移除一個表中的所有行,TRUNCATE不掃描該表,因此它不會處理繼承的子表或者ON DELETE的重寫規(guī)則,只會截斷命令中的表中的行。語法如下:
TRUNCATE [TABLE] name [, ...] [CASCADE | RESTRICT]
示例:
清空mytable表中的所有行。
TRUNCATE mytable;
文檔內容是否對您有幫助?