📜  Teradata表

📅  最后修改于: 2021-01-11 11:15:33             🧑  作者: Mango

Teradata表

关系模型中的表被定义为数据的集合。它们以行和列表示。

桌子类型

在Teradata中,表支持以下类型的表,例如:

  • 永久表:这是默认表,它包含用户插入的数据并永久存储该数据。
  • 易失性表:插入易失性表中的数据仅在用户会话期间保留。在会话结束时,将删除表和数据。这些表主要用于在数据转换期间保存中间数据。
  • 全局临时表:全局临时表的定义是持久性的,但是该表中的数据在用户会话结束时被删除。
  • 派生表:派生表保存查询中的中间结果。它们的寿命在创建,使用和删除它们的问题之内。

设置与多集

Teradata根据如何处理重复文件将表分类为集合表或多集表。

定义为SET表的表不存储重复文件,而MULTISET表可以存储重复文件。

1.创建表

CREATE Table命令用于在Teradata中创建表。

句法

以下是CREATE TABLE语句的通用语法。

CREATE  TABLE  
 
;


  • 表格选项:指定表格的物理属性,例如日记和后备。
  • 列定义:它指定列,数据类型和属性的列表。
  • 索引定义:这是一个附加的索引选项,例如主索引,辅助索引和分区主索引。

在下面的示例中,我们使用FALLBACK选项创建一个名为Student的表。该表包含四列,其中rollno作为唯一主索引。

CREATE SET TABLE STUDENT, FALLBACK ( 
   RollNo INTEGER, 
   FirstName VARCHAR(10), 
   LastName VARCHAR(10), 
   DOB DATE FORMAT 'YYYY-MM-DD', 
) 
UNIQUE PRIMARY INDEX ( RollNo );

创建表后,我们可以使用SHOW TABLE命令查看表的定义。

SHOW TABLE Student; 
CREATE SET TABLE STUDENT, FALLBACK , 
   NO BEFORE JOURNAL, 
   NO AFTER JOURNAL, 
   CHECKSUM = DEFAULT, 
   
   DEFAULT MERGEBLOCKRATIO (
      RollNo INTEGER, 
      FirstName VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, 
      LastName VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, 
      DOB DATE FORMAT 'YYYY-MM-DD', 
   ) 
UNIQUE PRIMARY INDEX ( RollNo );

2.修改表

ALTER table命令用于在现有表中添加或删除列。我们还可以使用ALTER table命令来修改现有列的属性。

句法

以下是ALTER表的通用语法。

ALTER TABLE  
ADD   
DROP ;

在下面的示例中,我们删除列DOB并添加一个新列BirthDate。

ALTER TABLE STUDENT
ADD BirthDate DATE FORMAT 'YYYY-MM-DD', 
DROP DOB;

我们可以运行SHOW table命令来查看对该表所做的更改。在以下输出中,我们可以看到删除了Student_dob列,并添加了BirthDate。

SHOW table student;
CREATE SET TABLE student, FALLBACK, 
   NO BEFORE JOURNAL, 
   NO AFTER JOURNAL, 
   CHECKSUM = DEFAULT, 
   
   DEFAULT MERGEBLOCKRATIO ( 
      RollNo INTEGER, 
      FirstName VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, 
      LastName VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC, 
      BirthDate DATE FORMAT 'YYYY-MM-DD'
   ) 
UNIQUE PRIMARY INDEX ( RollNo );

3.删除表

DROP TABLE命令用于删除表。发出DROP TABLE时,表中的数据将被删除,并且该表将被删除。

句法

以下是DROP TABLE的通用语法。

DROP TABLE ;

在下面的示例中,我们删除“学生”表。

DROP TABLE student;

如果在此之后运行SHOW TABLE命令,则会收到一条错误消息,指出该表不存在。

SHOW TABLE student; 
*** Failure 3807 Object 'student' does not exist. 
   Statement# 1, Info = 0