gpt4 book ai didi

sql - 伪列和 DUAL 表 - 它们实际上是什么意思?

转载 作者:行者123 更新时间:2023-12-04 17:59:02 26 4
gpt4 key购买 nike

双表用于选择伪列。
它有一行和一列 DUMMY,其值为 X。

我有两个问题

  • 伪代码实际上做了什么
    列是什么意思?
  • 双重身份如何给予
    值例如:
    select sysdate from dual

    将导致当前日期时间。这怎么可能?
  • 最佳答案

    伪列是一个返回系统生成值的函数。 sysdate是一个返回当前日期时间的函数; rownum是一个伪列,返回结果集中的行号。

    命名法可以追溯到 Oracle 的早期,在我们拥有 PL/SQL 之前。这只是意味着我们可以在 SELECT 语句的投影中使用这些函数,就像表的列一样。现在我们可以编写自己的函数并在 SQL 语句中使用它们而不会眨眼,所以“伪列”这个短语有点令人困惑。

    将函数与伪列区分开来的特征是,伪列为结果集中的每一行返回不同的值,而函数返回相同的值(除非表中的某些列作为参数传递以导出值)。

    Dual 是 Oracle 历史的另一个令人尊敬的片段。它是一个包含一行的表,数据库知道它包含一行。所以你引用的选择语句只是说“给我当前的日期时间”。它在功能上等同于

    select sysdate 
    from emp
    where rownum = 1
    /

    在 PL/SQL 中,select from dual 是无效的。我们可以这样编码:
    l_date := sysdate;

    DUAL 的一个常见用途是在触发器中获取序列的下一个值。从 11g 开始,我们可以做...
    :new.id := my_seq.nextval;

    在幕后,这仍然执行 select my_seq.nextval into :new.id from dual;

    关于sql - 伪列和 DUAL 表 - 它们实际上是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2369142/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com