科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道实例解析 使用 SQL 查询语言检索数据

实例解析 使用 SQL 查询语言检索数据

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

结构化查询语言(SQL语言)为数据库用户提供了一套功能强大而灵活的数据检索机制——SELECT语句,本文对其进行了详细介绍。

作者:cyw 来源:IT专家网 2007年11月20日

关键字: 使用 SQL 查询语言 检索数据 SQL Server

  • 评论
  • 分享微博
  • 分享邮件
结构化查询语言(SQL语言)为数据库用户提供了一套功能强大而灵活的数据检索机制——SELECT语句,本文对其进行了详细介绍。

  第一节:SELECT指令简介

  本节将通过几个数据库检索实例的组合,为大家介绍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

  在下一节中,我们将会涉及更强大的查询功能,使你能够限定从数据库中查询到的数据。

  第二节:限定查询结果

  在第一节中,我们对利用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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章