使用SQL查询语言检索数据

发表于:2007-10-25 11:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

第二节:限定查询结果

  在第一节中,我们对利用SELECT语句以及执行一个简单的检索来获取一个表内所有信息的语法结构有了一个大概了解。本节将进一步介绍怎样执行限定获取信息的查询操作。

  从一个表内查询特定列的信息

  在上一个实例中,我们为人力资源主管生成了一份包括ABC公司所有雇员工资和上下级关系信息的报表。现在,部门内的几位中级经理由于职责所需也要求获取其中的雇员上下级关系信息。这些经理不需要关于工资的信息,所以我们会为他们提供一份包含数据库中指定信息的报表,这些限定信息包括雇员姓名、雇员ID号及雇员直属上司的ID号。

  返回此结果的SELECT语句如下:

  SELECT EmployeeID, LastName, FirstName, ReportsTo

  FROM employees

  这一查询与第一节中的SELECT语句查询有所不同。注意星号通配符被一个列名称组成的表达式列表代替,这些列是要包含在查询结果中的。出于保护隐私的考虑,提供给中级经理们的数据表中将省略掉工资(Salary)列。执行查询结果如下:

EmployeeID
LastName
FirstName
ReportsTo
----------
--------
---------
---------
1
思迷
2
2
欣碧
NULL
3
康杜
2
4
琼斯
2
5
艾伦
4
6
4
7
庄生
3

  EmployeeIDLastNameFirstNameReportsTo

  从一个表内查询特定行的信息

  假设ABC公司的总裁苏欣碧想要一份报表,内容包含她所有直属下级的详细资料。要生成这样一份报表,我们需要通过利用WHERE子句来限制返回的查询结果中出现的行信息。执行以下语法:

  SELECT *

  FROM employees

  WHERE ReportsTo = 2

  请注意为了给苏总提供她所需要的详细资料,星号通配符又再次出现在了select_list参数中。我们在一个WHERE子句加上了表达式ReportsTo = 2,这个表达式的目的是使返回的结果限定在ReportsTo的值为2(即苏总的员工ID号)的行。执行上述查询操作返回的结果如下:

Employee
LastName
FirstName
Salary
ReportsTo
--------
--------
---------
------
---------
1
思迷
32000
2
3
康杜
29500
2
4
琼斯
35000
2

  审阅完上面这份报表后,苏总决定要进一步把结果限定在那些工资超过30,000的雇员。我们可以在WHERE子句中使用复合条件就可以返回想要的结果。修改后的SQL查询语法如下:

  SELECT *

  FROM employees

  WHERE ReportsTo = 2 AND Salary > 30000

  执行查询返回的结果如下:

Employee
LastName
FirstName
Salary
ReportsTo
--------
--------
---------
------
---------
1
思迷
32000
2
4
琼斯
35000
2

  注意,结果已经舍去了汤康杜的记录,因为他的薪酬没有达到30,000的最低工资条件。

  在本文的最后一节,我们将会介绍两种用来提升查询结果可读性的技巧。

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号