Teradata表类型

2024 年 8 月 29 日 | 4 分钟阅读

Teradata支持以下类型的表来保存临时数据。

序号。表类型描述
1ANSI时态表符合ANSI标准的时态表支持。 使用时态表,Teradata数据库可以处理包含基于时间的推理的语句和查询。
时态表记录系统时间(信息记录在数据库中的时间)和有效时间(信息在现实世界应用程序中生效或正确的时间)。
2派生表派生表是一种临时表,它从一个或多个其他表获得,作为子查询的结果。
它在SQL SELECT语句中指定。
它避免了使用CREATE和DROP TABLE语句来存储检索到的信息的需求。
当我们有更复杂和复杂的查询代码时,它很有用。
3错误日志错误日志表存储有关相关永久表上的错误的信息。
它还存储有关插入和更新错误的日志信息。
4全局临时表全局临时表对会话是私有的。
它在会话结束时自动删除。
它在数据字典中存储了一个持久的表定义。 保存的描述可以由多个用户和会话共享,每个会话获得其表的实例。
5全局临时跟踪表全局临时跟踪表存储会话长度的跟踪输出。
它在数据字典中存储了一个持久的表定义。
它对于调试SQL存储过程(通过调用写入跟踪输出的外部存储过程)和外部例程(UDF,UDM和外部存储过程)非常有用。
6NoPI表NoPI表是没有在其上定义主索引的永久表。
当用作从FastLoad或TPump Array INSERT加载数据的暂存表时,它们提供性能优势。
它们可以在其上定义二级索引,以避免在行访问期间进行全表扫描。
7永久永久表允许不同的会话和用户共享表内容。
8Queue队列表是具有时间戳列的永久表。 时间戳指示每行插入到表中的时间。
它建立了表内容的先进先出(FIFO)排序,这是需要事件处理的客户应用程序所必需的。
9Volatile仅在以下情况下才使用易失表
  • 一个会话需要该表。
  • 创建者需要访问该表。
  • 我们想要比全局临时表更好的性能。
  • 会话结束后,我们不需要表定义。
注意:如果易失表的定义包含在宏中,则可以在系统重新启动后继续存在。

派生表

派生表在查询中创建、使用和删除。 它们用于在查询中存储中间结果。

示例

考虑以下以两个表形式存在的员工记录。

员工表

Employee_Id(员工编号)名字姓氏部门编号
202001迈克Richard1
202002Robert威廉姆斯2
202003彼得科林2
202004Alexa斯图尔特1
202005Robert彼得森1

薪资表

Employee_Id(员工编号)名字姓氏部门编号
20200140,0004,00036,000
20200280,0006,00074,000
20200390,0007,00083,000
20200475,0005,00070,000
20200580,0000080,000

以下查询创建一个派生表EmpSal,其中包含薪水高于80,000的员工的记录。

当执行以上查询时,它将返回薪水高于或等于80,000的员工的记录。

Employee_Id       First_Name       NetPay
202003            Peter            83,000
202005            Robert           80,000

易失表

易失表在用户会话中创建和删除。 它们的定义未存储在数据字典中。 它们保存查询的中间数据,这些数据经常使用。

语法

示例

在以下示例中,我们创建一个名为dept_stat的VOLATILE表。

执行以上代码后,它将返回输出中根据部门的最小,平均和最大薪资。

Dept_no     avg_salary     max_salary     min_salary 
 1           186,000         80,000         36,000
 2           157,000         83,000         74,000

全局临时表

全局临时表的定义存储在数据字典中,它们可以被许多用户和会话使用。 但是,加载到全局临时表中的数据仅在会话期间保留。

每个会话最多可以实现2000个全局临时表。

语法

以下是全局临时表的语法。

示例

以下查询创建全局临时表,例如

当执行以上查询时,它将返回以下输出。

A table has been created.

下一个主题Teradata空间概念