网络学院
迷城学吧
硬件
手机
旅游
生活
渔鱼
美图
电影
游戏
  导航: 迷城学吧 · 数据库类教程 · MSSQL教程 · Sql2000基础教程

sqlserver24学时教程连载17-第17学时 数据查询

 
最新推荐文章
图文推荐
 
『sqlserver24学时教程连载17-第17学时 数据查询』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2007-8-8 18:59:28 

    第17学时 数 据 查 询

    在过去几个学时的课程里,我们已经讨论了如何创建数据库、创建表、分配许可和其他

    管理任务。但我们还没有讨论如何取出存储在数据库里的数据。这是一个相当重要的功能,

    你需要知道如何去做。

    本学时的要点包括:

    取数据

    pubs数据库概览

    打开一个数据库

    SELECT语句

    限制行数

    函数

    17.1 取数据

    作为数据库日常操作的一部分,你需要从数据库中提取数据。如果无法提取数据,那么

    存储的那些数据又有什么用呢?大多数时候,你和你的用户使用为向数据库输入数据而写的

    那些应用程序来访问数据库中的数据。但有时,也可以用其他方法访问数据。其中最主要的

    方法是使用SELECT语句。

    17.2 pubs数据库概览

    在先前大部分的时间里,我们使用 OrderCenter数据库完成了绝大多数练习。本学时和接

    下来的几个学时里,我们将使用 pubs数据库。这是因为我们还没有在 OrderCenter数据库中放

    图17-1 pubs数据库结构关

    系图

    158 SQL Server 7 24学时教程

    任何数据。为了让你理解本章将要讨论的大量 SELECT语句,你必须充分了解pubs数据库的构

    成和表之间的相互作用关系。正如我们前面提到的, pubs数据库是一个小型数据库,它在安

    装SQL Server时同时被安装。pubs数据库是一个模仿出版公司数据库的模型。该数据库跟踪

    作者、出版物、出版商以及其他类似信息。图 17-1显示了pubs数据库的结构关系图。

    17.3 打开一个数据库

    打开一个数据库就是你登录到SQL Server,并告诉SQL Server你将对一个指定的数据库执

    行命令。当你正在SQL Query Analyzer中工作时,可以从两种途径中任选一种来打开数据库。

    第一种方法是在右上角下拉列表框中选择所要打开的数据库的名称,如图 17-2所示。

    图17-2 SQL Query Analyzer

    中的数据库框

    另一种途径是在一个SQL脚本中使用SQL Server的USE关键字,下面是该命令的语法:

    其中<database_name>是你所要打开的数据库的名称。

    17.4 SELECT语句

    SELECT语句是从数据库的表中访问和提取数据的一种工具。它是最强有力的工具之一,

    而且它有比SQL中其他语句多得多的可用选项。 SELECT语句可以从表中取出所有的行和列,

    或者两者任一个的子集。最基本的 SELECT语句是从表中取出所有的行和列。在这个学时的大

    部分例子中,我们将使用 authors表。要取出authors表中所有的行和列,你可以执行程序清单

    17-1中的命令。

    程序清单17-1 简单的SELECT语句

    正如你所看到的,程序清单17-1的语句中包含四个基本部分。第一部分是关键字 SELECT.

    它告诉SQL Server你将要做什么。语句下一部分是列名的列表,你可以列出你所要从表中输

    159第17学时 数 据 查 询

    出的列。稍后,我们将详细讨论。这里所做的只是用星号 (*)表示想取出表中所有的列。关键

    字SELECT和列的列表组合在一起,有时称作 SELECT子句和SELECT列表。

    语句的下一部分是关键字FROM.使用FROM关键字是为了告诉SQL Server你想从哪儿取

    出列。最后,你告诉SQL Server需要从哪个表中取出数据。关键字 FROM和表的名字组合在一

    起,通常叫做FROM子句。

    这是最基本的SELECT语句,仅仅演示了你需要用 SELECT语句所做的工作的很小部分。

    需要说明的一件事是,SELECT语句中这些组成部分的位置和间隔并不重要,只要你所写的单

    词次序是正确的。例如,下面所有的语句都得到同一个结果,只是程序清单 17-1中语句的排

    列较为合适。

    和

    和

    和

    执行了这个语句后,你将得到类似于图 17-3所示的结果集。

    图17-3 程序清单17-1的结

    果集

    17.4.1 限制列

    或许你会说,这样返回的数据太多了。在非常大的表中,这样要比你所需分类取出的信

    息多得多。例如,如果公司的副总裁告诉你他需要一张包含每位作者的名字、姓氏和电话号

    160 SQL Server 7 24学时教程

    码的清单,将会出现什么样的结果呢?在上面的查询中,你可以找到你要的数据,但如果你

    只看到所需要的数据,工作将容易得多。要做到这样,你应当列出需要看到的列的名称。如

    果看一下上次查询的结果,你会发现列的名称都排列在返回信息的上面。在这个例子中,你

    只需要去查询名为au_fname、au_lname和phone的列。程序清单17-2列出了这次查询需要运行

    的命令。

    程序清单17-2 限制列数

    正如你所见,我们只是把SELECT语句中的星号(*)用由逗号分开的列名代替。 SELECT语

    句的其余部分与我们前面列出的一模一样。查询结果如图 17-4所示。

    图17-4 程序清单17-2的结

    果集

    17.4.2 改变列标题

    程序清单17-2的查询结果集对于使用户不必再从大量的数据中分类找到所要的信息来说

    更有用。对于大多数查询,人们经常更想直接看到所查询的数据。记住,我们现在是为公司

    副总裁建一个电话号码清单。

    有一个限制是你有时会遇到开发人员用不易理解的名字来命名表中的列。例如,一个名

    为SAP的系统中,它所有的列名都是 6~8个字母的德语缩写。可以想象,一个对该系统不熟悉

    的人如何才能理解这些列名。这里有一个办法就是改变列的名称,使它易于被人们理解。这

    被称作“列别名”。程序清单17-3显示如何操作。

    程序清单17-3 改变列标题

    正如你所看到的,有两种方法可以解决这个问题。第一种是把别名放在列名的前面,并

    161第17学时 数 据 查 询

    用等号隔开,就像列名 au__fname、au__lname的情况一样。另一种方法是利用 SQL的AS关键

    字。使用它时,可以把别名放在列名后面,并由 AS分开。这两种方法得到相同的结果。但使

    用AS加别名是一个更好一点的方法。该查询的结果见图 17-5.

    图17-5 程序清单17-3的结

    果集

    17.4.3 添加说明文字

    使用SELECT语句时,另一种功能是向返回的结果集中加入说明文字。说明文字是加入到

    返回结果中的字符串值。该值不随行的变化而变化。一个例子是在每一个从服务器返回的电

    话号码前加入单词“Phone:”。程序清单17-4列出了该查询的代码。

    程序清单17-4 加入说明文字

    我们所做的是向结果集中加入单词“ Phone:”(即文字说明),如图17-6所示。它利用了

    SQL字符串的连接功能:加号。你让 SQL Server将两个字符串连接而形成一个字符串。

    在这个例子中,你也许会想“这又怎么样呢?”。诚然,这个例子并不能充分体现它的作

    用,但加入文字说明可能有很多其他的用途。到目前为止,我们学习创建了一个只有名字、

    姓氏和电话号码的电话号码清单。但大多数人并不用这种方法在电话号码本里查找电话号码,

    他们按照“姓氏,名字”的样式来查找。同样,我们可以使用文字说明把两个列合并起来。

    程序清单17-5显示了文字说明与列信息合并的用法。

    程序清单17-5 合并列

    我们在程序清单17-5中所做的是利用字符串连接功能,把 au_lname 和au_fname两列合并

    为一个逻辑列,取名“Name”。该查询的结果如图17-7所示。

    162 SQL Server 7 24学时教程

    图17-6 程序清单17-4的结果集

    图17-7 程序清单17-5的结果集

    17.4.4 改变行序

[1] [2] [3] 下一页

如果您有什么疑问,可以至论坛提出或者解答他人的疑问    返回页面顶部

·上一篇:
·下一篇:
·导航: 迷城学吧 · 数据库类教程 · MSSQL教程 · Sql2000基础教程
网友自拍|生活百味|历史图片|摄影世界|明星图片|体坛图库|美女图片|图片纪实|世界奇观
相关文章
advertisement
Photshop高手进阶

关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 申请链接 | 设为首页 | 本页加入收藏 返回顶部  
网站文本地图
  版权所有:迷城学吧 欢迎各种媒体转载我们的原创作品[转载请注明出处]
Copyright © 2005-2008 www.McXb.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Monsi. Optimized for 1024x768 to Firefox and MS-IE6 7. Site powered by JoyON.
红盾Gov315
有一个迷样的城市
在每个人的内心深处
让我们探索发掘这古老的墓