📜  Teradata Select语句

📅  最后修改于: 2021-01-11 11:17:34             🧑  作者: Mango

Teradata选择语句

SELECT语句是最常用的SQL语句。 SELECT语句用于从表中检索记录。

句法

以下是SELECT语句的基本语法。

SELECT 
column 1 column 2, ..... 
FROM  
tablename;

假设下面的学生表。

RollNo FirstName LastName BirthDate
1001 James Williams 1/5/1980
1002 Robert Vadra 3/5/1983
1003 Peter Dinklage 4/1/1983
1004 Alexa Bliss 11/6/1984
1005 Edward Norton 12/1/1984

现在执行SELECT语句的以下查询。

SELECT RollNo,FirstName,LastName 
FROM Student;

执行上述查询后,它将从学生表中获取RollNo,FirstName和LastName列。

RollNo FirstName LastName
1001 James Williams
1002 Robert Vadra
1003 Peter Dinklage
1004 Alexa Bliss
1005 Edward Norton

如果要从表中获取所有列,请使用以下命令,而不是列出所有列。

SELECT * FROM Student;

上面的查询将从学生表中获取所有记录。

选项,子句和列表

我们可以将以下选项,列表和子句与SELECT语句一起使用,以从Teradata数据库请求数据,例如:

  • DISTINCT选项
  • FROM子句
  • WHERE子句,包括子查询
  • GROUP BY子句
  • HAVING子句
  • QUALIFY子句
  • ORDER BY子句
    • CASESPECIFIC选项
    • 国际排序
  • WITH子句
  • 查询表达式和集合运算符

SELECT INTO语句是Select语句的另一个变体。它用于嵌入式SQL和存储过程。

SELECT INTO语句从表中最多选择一行,并将该行中的值分配给嵌入式SQL中的主机变量或Teradata Database存储过程中的局部变量或参数。

条款

WHERE子句用于过滤记录,该记录由SELECT语句返回。条件与WHERE子句关联。在WHERE子句中,仅返回那些满足条件的记录。

句法

以下是带有WHERE子句的SELECT语句的语法。

SELECT * FROM tablename 
WHERE[condition];

在以下查询中,我们尝试从给定的Student表中获取RollNo为1001的记录。

SELECT * FROM Student 
WHERE RollNo = 1001;

执行上述查询后,将返回以下记录。

RollNo FirstName LastName
1001 James Williams

订购

当执行SELECT语句时,返回的行没有任何特定的顺序。 ORDER BY子句用于在任何列上按升序或降序排列记录。

句法

以下是带有ORDER BY子句的SELECT语句的语法。

SELECT * FROM tablename 
ORDER BY column 1, column 2..;

在以下查询中,我们从学生表中获取记录,并按名字对结果进行排序。

SELECT * FROM Student
ORDER BY FirstName;

执行上述查询后,将产生以下输出。

RollNo FirstName LastName
1004 Alexa Bliss
1005 Edward Norton
1001 James Williams
1003 Peter Dinklage
1002 Robert Vadra

通过…分组

GROUP BY子句与SELECT语句一起使用,并将相似的记录分组。

句法

以下是带有GROUP BY子句的SELECT语句的语法。

SELECT column 1, column2 .... FROM tablename 
GROUP BY column 1, column 2..; 

SELECT语句和集合运算符

SELECT语句可以使用集合运算符UNION,INTERSECT和MINUS / EXCEPT。这些集合运算符允许通过将每个查询的结果组合到单个结果集中来处理两个或多个查询的答案。

我们可以在以下操作中使用set运算符:

  • 查看定义
  • 派生表
  • 子查询

SELECT语句和联接

SELECT语句可以引用两个或多个表中的数据,而关系联接将引用的表中的数据组合在一起。

通过这种方式,SELECT语句定义了指定表的联接,以比不定义表的联接更有效地检索数据。

我们可以同时指定内部联接和外部联接:

  • 内部联接从两个或多个满足特定联接条件的表中选择数据。必须命名每个源,并且连接条件是要连接的表之间的公共关系。它可以在ON子句或WHERE子句上。
  • 外部联接是内部联接的扩展,其中包括符合简单内部联接条件的行以及与查询表示的联接条件不匹配的指定行集合。