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


    为目标表声明别名

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

    别名是不注册在数据库的系统目录中的临时名称,仅在 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 子句支持下列语法格式:

    1. 单列格式,它将每一列与单个表达式配对
    2. 多列格式,它将多列的列表与通过一个或多个表达式返回的值相关联

    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) 语法。

  • 相关阅读:
    特斯拉强制返岗遭亚马逊微软挖人:“不喜欢马斯克的速来,我们可居家办公”
    【docker】搭建xxl-job
    react设置代理
    正点原子linux阿尔法开发板使用——SPI驱动
    基于微信小程序的火车购票系统源码
    链夹式烟苗注水移栽机的总体设计
    计算机提示d3dcompiler43.dll缺失怎么修复,多个解决方法分享
    Mysql -- 表的约束
    VUE3版本新特性
    C#_System.Collections.Generic.KeyNotFoundException
  • 原文地址:https://blog.csdn.net/m0_67317773/article/details/127446040