暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

南大通用GBase8s 常用SQL语句(289)

刚刚 好 2022-10-21
646



为目标表声明别名

您可为目标表声明别名。该别名可引用本地或远程表、视图或同义词的完全符合条件的数据库对象。

别名是不注册在数据库的系统目录中的临时名称,仅在 UPDATE 语句正在运行时保持。

如果您声明作为别名的名称还是 UPDATE 语句的关键字,则您必须使用 AS 关键字来阐明语法:

UPDATE stock AS set

        SET unit_price = unit_price * 0.94;

下列 UPDATE 语句引用在目标子句中和在两个子查询中表的符合要求的名称:

UPDATE nmosdb@wnmserver1:test

        SET name=(SELECT name FROM test

        WHERE test.id = nmosdb@wnmserver1:test.id)

        WHERE EXISTS(

        SELECT 1 FROM test WHERE test.id = nmosdb@wnmserver1:test.id

        );

下一 UPDATE 语句在逻辑上等同于前一示例,但为符合条件的表名称声明 r_t 别名:

UPDATE nmosdb@wnmserver1:test r_t

        SET name=(SELECT name FROM test

        WHERE test.id = r_t.id)

        WHERE EXISTS(

        SELECT 1 FROM test WHERE test.id = r_t.id

        );

声明表别名会简化上述第二个示例的标记。

SET 子句

使用 SET 子句来标识要更新的列并将值指定给每一列。

SET 子句支持下列语法格式:

单列格式,它将每一列与单个表达式配对

多列格式,它将多列的列表与通过一个或多个表达式返回的值相关联

SET 子句

 

单列格式

使用单列格式来将一列与单个表达式配对。

单列格式

 

元素

描述

限制

语法

column

要被更新的列

不可为序列数据类型

标识符

collection_var

主变量或程序变量

必须声明作为集合数据类型

特定于语言

expression

column 返回一值

不可包含聚集函数

表达式

singleton _select

正好返回一行的子查询

返回的子查询值必须与 column 列表一一对应

SELECT 语句

您可使用此语法来更新有 ROW 数据类型的列。

您可包括任意数量的 "single column = single expression" 词语。expression 可为返回单个行的 SQL 子查询(括在圆括号之间),假如对应的 column 为可从子查询返回的行存储该值(或值的集合)的数据类型。

要在 SET 子句中指定 ROW 类型列的值,请参阅 更新 ROW 类型列。下列示例说明 SET 子句的单列格式。

UPDATE customer

   SET address1 = '1111 Alder Court', city = 'Palo Alto',

      zipcode = '94301' WHERE customer_num = 103;

 

UPDATE stock

   SET unit_price = unit_price * 1.07;

使用子查询来更新单列

您可以子查询返回的值更新在 SET 子句中指定的列。

UPDATE orders

          SET ship_charge =

          (SELECT SUM(total_price) * .07 FROM items

          WHERE orders.order_num = items.order_num)

          WHERE orders.order_num = 1001;

如果您正在更新表层级中的超级表,则 SET 子句不可包括引用子表的子查询。如果您正在更新表层级中的子表,则 SET 子句中的子查询可引用超级表,如果它仅引用超级表的话。也就是说,子查询必须使用 SELECT … FROM ONLY (supertable) 语法。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论