本节将通过几个数据库检索实例的组合,为大家介绍SELECT语句使用的一般语法形式。如果这是您第一次步入SQL语言的世界,建议您在进一步阅读之前,先温习一些关于SQL的基础知识。
如果您已经复习过相关的基础知识,那就我们就开始学习SELECT指令的具体用法。本文中我们遵从ANSI SQL标准来编写语句指令。为了确定您的数据库管理系统能否支持可以提高SQL代码执行效率的高级选项,您可能需要参阅相关的系统说明文档。
SELECT语句的一般形式如下:
SELECT select_list FROM source WHERE condition(s) GROUP BY expression HAVING condition ORDER BY expression |
指令的第一行告诉SQL处理器这是一个希望从某数据库中检索信息的SELECT语句。select_list参数指定了我们想要查询信息的类型。第二行的FROM子句定义了我们要查询的数据库表的名称,而WHERE子句则使我们能够限定返回结果集的数据记录所要满足的特殊条件(condition(s))。最后三个子句是该语句的一些高级特性,超出了本文内容范畴,可参考IT专家网上其他关于SQL语言的的资料。
实例是学习SQL语言的最佳途径。下面我们通过一个实例来看看数据库查询的过程,本文利用一个虚构的ABC公司人力资源数据库作为实例来详细的说明所有的相关查询。数据库全表如下:
EmployeeID | LastName | FirstName | Salary | ReportsTo |
1 | 思迷 | 乔 | 32000 | 2 |
2 | 欣碧 | 苏 | 45000 | NULL |
3 | 康杜 | 汤 | 29500 | 2 |
4 | 琼斯 | 白 | 35000 | 2 |
5 | 艾伦 | 毕 | 17250 | 4 |
6 | 雷 | 艾 | 19500 | 4 |
7 | 庄生 | 柯 | 21000 | 3 |
查询全表数据
假设ABC公司的人力资源主管收到了一份包括了每个公司雇员的工资和上下级关系的月度报表。这份报表是利用SELECT语句的最简单形式生成的。它只是检索了包含在一个数据表里的所有信息,包括每一行每一列。返回此结果的查询语法如下:
SELECT *
FROM employees
可以看到这里使用的语法相当简洁明了。select_list 参数中出现的星号(*)是一个通配符,用以告知数据库我们想从用FROM子句定义的雇员表中获取所有的列的数据。如果想获取数据库中所有的信息,并不需要用WHERE子句来限制选择的表行。执行查询结果如下:
EmployeeID | LastName | FirstName | Salary | ReportsTo |
1 | 思迷 | 乔 | 32000 | 2 |
2 | 欣碧 | 苏 | 45000 | NULL |
3 | 康杜 | 汤 | 29500 | 2 |
4 | 琼斯 | 白 | 35000 | 2 |
5 | 艾伦 | 毕 | 17250 | 4 |
6 | 雷 | 艾 | 19500 | 4 |
7 | 庄生 | 柯 | 21000 | 3 |
在下一节中,我们将会涉及更强大的查询功能,使你能够限定从数据库中查询到的数据。