的结构化查询语言为数据库用户提供了一个强大而灵活的数据检索机制——SELECT语句。在本文中,我们将了解SELECT语句的一般形式,并将几个示例数据库查询组合在一起。如果这是您第一次进入结构化查询语言的世界,您可能希望复习一下SQL基础知识在继续之前。如果您正在寻找从头开始设计一个新数据库,学习如何在SQL中创建数据库和表应该是个好出发点。
现在已经复习了基本知识,让我们开始探索SELECT语句。与前面的SQL课程一样,我们将继续使用符合ANSI SQL标准的语句。您可能希望查阅数据库管理系统的文档,以确定它是否支持可以提高SQL代码效率和/或效能的高级选项。
SELECT语句的一般形式
SELECT语句的一般形式显示在下面:
选择select_list
从源
在哪里条件(年代)
集团表达式
有状况
命令表达式
该声明的第一行告诉SQL处理器此命令是a选择语句,我们希望从数据库检索信息。的select_list允许我们指定我们希望检索的信息类型。的从第二行中的子句指定涉及的特定数据库表和在哪里子句使我们能够将结果限制为符合指定的记录条件(年代)。最后三个条款代表了本文范围之外的高级功能 - 我们将在将来的SQL文章中探索它们。
学习SQL的最简单方法是通过示例。考虑到这一点,让我们开始看一些数据库查询。在本文中,我们将使用虚构的XYZ Corporation人力资源数据库中的员工表来说明我们的所有查询。这是整个表:
EmployeeID |
姓 |
FirstName |
工资 |
ReportsTo |
1 |
史密斯 |
约翰 |
32000. |
2 |
2 |
挪威海螯虾 |
苏 |
45000 |
空值 |
3. |
肯德尔 |
汤姆 |
29500 |
2 |
4 | 琼斯 | 亚伯拉罕 | 35000 | 2 |
5 | 艾伦 | 比尔 | 17250 | 4 |
6 | 雷诺兹 | 埃里森 | 19500 | 4 |
7 | 约翰逊 | 凯蒂 | 21000 | 3. |
检索整个桌子
XYZ公司的人力资源总监每月收到一份报告,提供每个公司员工的工资和报告信息。这个报告的生成是SELECT语句最简单形式的一个例子。它只是检索数据库表中包含的所有信息——每一列和每一行。下面的查询将完成这个结果:
选择 *
从员工
很简单,对吧?中出现的星号(*)select_list是用于通知数据库的通配符,我们希望从FROM子句中标识的员工表中的所有列中检索信息。我们希望检索数据库中的所有信息,因此没有必要使用WHERE子句来限制从表中选择的行。这是我们的查询结果看起来像:
EmployeeID | 姓 | FirstName | 工资 | ReportsTo |
---------- | -------- | --------- | ------ | --------- |
1 | 史密斯 | 约翰 | 32000. | 2 |
2 | 挪威海螯虾 | 苏 | 45000 | 空值 |
3. | 肯德尔 | 汤姆 | 29500 | 2 |
4 | 琼斯 | 亚伯拉罕 | 35000 | 2 |
5 | 艾伦 | 比尔 | 17250 | 4 |
6 | 雷诺兹 | 埃里森 | 19500 | 4 |
7 | 约翰逊 | 凯蒂 | 21000 | 3. |