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

员工号 加入日期 部门编号 出生日期
101 麦克风 詹姆士 2005年3月27日 1 1980年1月5日

从另一个表插入

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表中。

规则

  • 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 

规则

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

  • 如果未指定 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. 

规则

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

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

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