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 语句查看表中的记录。

EmployeeNo FirstName LastName JoinedDate DepartmentNo BirthDate
101 Mike James 3/27/2005 1 1/5/1980

从另一个表插入

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

语法

以下是 INSERT INTO 的通用语法。

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

示例

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

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

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

规则

  • 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;

在以下输出中,您可以看到员工 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 

规则

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

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

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

删除记录

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

语法

以下是 DELETE FROM 的通用语法。

DELETE FROM <tablename>
[WHERE 条件];

示例

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

DELETE FROM Employee
WHERE EmployeeNo = 101;

在下面的输出中,您可以看到从表中删除了员工 101。

SELECT EmployeeNo FROM Employee;  
*** Query completed. No rows found. 
*** Total elapsed time was 1 second. 
规则
  • 您可以更新表中的一个或多个记录。

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

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