UPDATE語句用於建立一個更新查詢,根據指定的條件更改指定表中的欄位值。UPDATE語句不產生結果集,而且當使用更新查詢更新記錄之後,不能取消這次操作。
文法:UPDATE table SET newvalue WHERE criteria
說明:table參數指定表的名稱,其中包含要更改的資料。
newvalue參數為一個運算式,用來計算要插入更新記錄中特定欄位的值。
criteria參數為一個運算式,用來指定被更新的記錄。只有符合運算式的記錄才會被更新。
名稱
UPDATE — 替換表中列/欄位的數值
文法
UPDATE table SET col = expression [, ...] [ FROM fromlist ] [ WHERE condition ]
輸入
-
table
-
現存表的名稱.
-
column
-
表 table 中列/欄位的名.
-
expression
-
賦予列/欄位的一個有效值或運算式.
-
fromlist
-
Postgres 的一個非標準的擴充,允許別的表中的列/欄位出現在 WHERE 條件裡.
-
condition
請參考 SELECT 語句獲得 WHERE 子句的進一步描述.
輸出
-
UPDATE #
-
成功的返回資訊.# 意味著更新的行數.如果 # 等於 0 則沒有行被更新.
描述
UPDATE 改變滿足條件的所有行的聲明了的列/欄位的值。只有要更改的列/欄位需要在語句中出現.
數組引用使用與 SELECT 裡一樣的文法.也就是說,單個數組元素,數組元素的一個範圍或者是整個數組都可以用一個查詢語句更新.
要更改表,你必須對它有寫入權限,同樣對 WHERE 條件裡提到的任何錶也要有讀許可權.
用法
把欄位 kind 裡的詞 "Drama" 用 "Dramatic" 代替:
UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';SELECT * FROM films WHERE kind = 'Dramatic' OR kind = 'Drama'; code | title | did | date_prod | kind | len-------+---------------+-----+------------+----------+------- BL101 | The Third Man | 101 | 1949-12-23 | Dramatic | 01:44 P_302 | Becket | 103 | 1964-02-03 | Dramatic | 02:28 M_401 | War and Peace | 104 | 1967-02-12 | Dramatic | 05:57 T_601 | Yojimbo | 106 | 1961-06-16 | Dramatic | 01:50 DA101 | Das Boot | 110 | 1981-11-11 | Dramatic | 02:29
相容性SQL92
SQL92 在定位的 UPDATE 語句上定義了一些不同的文法:
UPDATE table SET column = expression [, ...] WHERE CURRENT OF cursor
這裡 cursor 表示一個開啟的遊標.