• 南大通用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) 语法。

  • 相关阅读:
    历史惊人相似,微软Exchange出现2022版“千年虫”bug
    Dubbo+ZK入门使用
    java计算机毕业设计基于springboo+vue的人事管理系统
    GLM国产大模型训练加速:性能最高提升3倍,显存节省1/3,低成本上手
    前端实现PDF预览:简单而高效的方法
    谁在钉钉上做AI Agent?
    java毕业生设计圆梦酒店管理系统计算机源码+系统+mysql+调试部署+lw
    第二章 人工智能专题之Python进阶 - Matplotlib库
    maxwell学习笔记
    线程理论和实操
  • 原文地址:https://blog.csdn.net/m0_67317773/article/details/127446040