Teradata 数据处理


本章介绍用于操作存储在 Teradata 表中的数据的 SQL 命令。

插入记录


INSERT INTO 语句用于向表中插入记录。

语法

以下是 INSERT INTO 的通用语法。

INSERT INTO <tablename> 
(column1, column2, column3,…) 
VALUES 
(value1, value2, value3 …);

例子

下面的示例将记录插入到雇员表中。

INSERT INTO Employee (
    EmployeeNo,
    FirstName,
    LastName,
    BirthDate,
    JoinedDate,
    DepartmentNo
)
VALUES ( 
    101,
    'Mike',
    'James',
    '1980-01-05',
    '2005-03-27',
    01
);

插入上述查询后,你可以使用 SELECT 语句查看表中的记录。

职工号 LastName 加入日期 部门编号 出生日期
101 Mike James 2005 年 3 月 27 日 1 1/5/1980

从另一个表插入


INSERT SELECT 语句用于从另一个表中插入记录。

语法

以下是 INSERT INTO 的通用语法。

INSERT INTO <tablename> 
(column1, column2, column3,…) 
SELECT 
column1, column2, column3… 
FROM  
<source table>;

例子

下面的示例将记录插入到雇员表中。在运行以下插入查询之前,创建一个名为 Employee_Bkup 的表,其列定义与员工表相同。

INSERT INTO Employee_Bkup ( 
    EmployeeNo,
    FirstName,
    LastName,
    BirthDate,
    JoinedDate,
    DepartmentNo
) 
SELECT 
    EmployeeNo,
    FirstName,
    LastName,
    BirthDate,
    JoinedDate,
    DepartmentNo
FROM  
    Employee;

执行上述查询时,会将employee表中的所有记录插入employee_bkup表中。

Rules

  • VALUES 列表中指定的列数应与 INSERT INTO 子句中指定的列相匹配。

  • NOT NULL 列的值是强制性的。

  • 如果未指定任何值,则为可为空的字段插入 NULL。

  • VALUES 子句中指定的列数据类型应与 INSERT 子句中的列数据类型兼容。

更新记录


UPDATE 语句用于更新表中的记录。

语法

以下是 UPDATE 的通用语法。

UPDATE <tablename> 
SET <columnnamme> = <new value> 
[WHERE condition];

例子

以下示例将员工 101 的员工部门更新为 03。

UPDATE Employee 
SET DepartmentNo = 03 
WHERE EmployeeNo = 101;

在以下输出中,你可以看到 EmployeeNo 101 的 DepartmentNo 从 1 更新为 3。

SELECT Employeeno, DepartmentNo FROM Employee; 
*** Query completed. One row found. 2 columns returned. 
*** Total elapsed time was 1 second.  
EmployeeNo    DepartmentNo 
-----------  ------------- 
    101             3

Rules

  • 你可以更新表的一个或多个值。

  • 如果未指定 WHERE 条件,则表的所有行都会受到影响。

  • 你可以使用另一个表中的值更新一个表。

删除记录


DELETE FROM 语句用于从表中更新记录。

语法

以下是 DELETE FROM 的通用语法。

DELETE FROM  <tablename> 
[WHERE condition];

例子

以下示例从表employee 中删除员工101。

DELETE FROM Employee 
WHERE EmployeeNo = 101;

在以下输出中,你可以看到员工 101 已从表中删除。

SELECT EmployeeNo FROM Employee;  
*** Query completed. No rows found. 
*** Total elapsed time was 1 second. 

Rules

  • 你可以更新表的一条或多条记录。

  • 如果未指定 WHERE 条件,则删除表的所有行。

  • 你可以使用另一个表中的值更新一个表。