sql 替换命令—UPDATE详解

UPDATE

Name
UPDATE — 更新一个表中的行
Synopsis
UPDATE [ ONLY ] table SET col = expression [, …] [ FROM fromlist ] [ WHERE condition ]

输入
table
现存表的名称.
column
表 table 中列/字段的名.
expression
赋予列/字段的一个有效的值或表达式.
fromlist
PostgreSQL 的一个非标准的扩展,允许别的表中的列/字段出现在 WHERE 条件里.
condition
请参考 SELECT 语句获得 WHERE 子句的进一步描述.

输出
UPDATE #
成功的返回信息. # 意味着更新的行数. 如果 # 等于 0 则没有行被更新.

描述
UPDATE 改变满足条件的所有行的声明了的列/字段的值。 只有要更改的列/字段需要在语句中出现.

数组引用使用与 SELECT 里一样的语法.也就是说,单个数组元素, 数组元素的一个范围或者是整个数组都可以用一个查询语句更新.

要更改表,你必须对它有写权限, 同样对 WHERE 条件里提到的任何表也要有读权限.

缺省时,UPDATE将更新所声明的表和所有子表的记录. 如果你希望只更新所声明的表,你应该使用ONLY子句.
用法
把字段 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 表示一个打开的游标.

SQL命令-专辑

SQL 命令
这部分包含那些 PostgreSQL 支持的 SQL 命令的信息. 这里的 “SQL” 就是该语言通常的含义; 每条命令的与标准有关的兼容性的信息可以在相关的参考页中找到.Table of Contents
ABORT — 退出当前事务
ALTER GROUP — 向组中增加用户或从组中删除用户
ALTER TABLE — 修改表的定义
ALTER USER — 改变数据库用户帐号.
ANALYZE — 收集与数据库有关的统计
BEGIN — 开始一个事务块
CHECKPOINT — 强制一个事务日志检查点
CLOSE — 关闭一个游标
CLUSTER — 根据一个索引对某个表集簇
COMMENT — 定义或者改变一个对象的评注
COMMIT — 提交当前事务
COPY — 在表和文件之间拷贝数据
CREATE AGGREGATE — 定义一个新的聚集函数
CREATE CONSTRAINT TRIGGER — 定义一个新的约束触发器
CREATE DATABASE — 创建新数据库
CREATE FUNCTION — 定义一个新函数
CREATE GROUP — 定义一个新的用户组
CREATE INDEX — 定义一个新索引
CREATE LANGUAGE — 定义一种新的过程语言
CREATE OPERATOR — 定义一个新的操作符
CREATE RULE — 定义一个新的重写规则
CREATE SEQUENCE — 创建一个新的序列发生器
CREATE TABLE — 定义一个新表
CREATE TABLE AS — 从一条查询的结果中创建一个新表
CREATE TRIGGER — 定义一个新的触发器
CREATE TYPE — 定义一个新的数据类型
CREATE USER — 创建一个新的数据库用户帐户
CREATE VIEW — 定义一个视图
DECLARE — 定义一个游标
DELETE — 删除一个表中的行
DROP AGGREGATE — 删除一个用户定义的聚集函数
DROP DATABASE — 删除一个数据库.
DROP FUNCTION — 删除一个用户定义的函数
DROP GROUP — 删除一个用户组
DROP INDEX — 删除一个索引
DROP LANGUAGE — 删除一个用户定义的过程语言
DROP OPERATOR — 删除一个用户定义操作符
DROP RULE — 删除一个重写规则
DROP SEQUENCE — 删除一个序列
DROP TABLE — 删除一个表
DROP TRIGGER — 删除一个触发器定义.
DROP TYPE — 删除一个用户定义数据类型
DROP USER — 删除一个数据库用户帐号
DROP VIEW — 删除一个视图
END — 提交当前的事务
EXPLAIN — 显示语句执行规划
FETCH — 用游标从表中抓取行
GRANT — 定义访问权限
INSERT — 在表中创建新行
LISTEN — 监听一个通知
LOAD — 装载或重载一个共享库文件
LOCK — 明确地锁定一个表
MOVE — 把游标放到表中的特定的行
NOTIFY — 生成一个通知
REINDEX — 恢复一个损坏了的索引
RESET — 把一个运行时参数值恢复为缺省值
REVOKE — 删除访问权限.
ROLLBACK — 退出当前事务
SELECT — 从表或视图中取出若干行.
SELECT INTO — 从一个查询的结果中创建一个新表
SET — 改变运行时参数
SET CONSTRAINTS — 设置当前事务的约束模式
SET SESSION AUTHORIZATION — 为当前会话设置会话用户标识符和当前用户标识符
SET TRANSACTION — 设置当前事务的特性
SHOW — 显示运行时参数的数值
TRUNCATE — 清空一个表
UNLISTEN — 停止监听通知信息
UPDATE — 更新一个表中的行
VACUUM — 垃圾收集以及可选地分析一个数据库