📅  最后修改于: 2021-01-11 11:17:34             🧑  作者: Mango
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数据库请求数据,例如:
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语句可以使用集合运算符UNION,INTERSECT和MINUS / EXCEPT。这些集合运算符允许通过将每个查询的结果组合到单个结果集中来处理两个或多个查询的答案。
我们可以在以下操作中使用set运算符:
SELECT语句可以引用两个或多个表中的数据,而关系联接将引用的表中的数据组合在一起。
通过这种方式,SELECT语句定义了指定表的联接,以比不定义表的联接更有效地检索数据。
我们可以同时指定内部联接和外部联接: