第7章 数据库表的高级操作_第1页
第7章 数据库表的高级操作_第2页
第7章 数据库表的高级操作_第3页
第7章 数据库表的高级操作_第4页
第7章 数据库表的高级操作_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章数据库表的高级查询操作7.1限定条件的查询7.2使用GROUPBY子句的查询7.3使用聚合函数的查询7.4使用ORDERBY子句的查询7.5使用UNION组合多个运算结果上一章返回目录17.1限定条件的查询

SELECT语句中的WHERE子句是用来控制结果集的记录构成。可以在WHERE子句中指定一系列查询条件,而只有这些满足条件的记录集才可以用来构造结果集。

WHERE子句中的查询或限定条件可以是:

①比较运算符(如=、<>、<或>)

②范围说明(BETWEEN和NOTBETWEEN)③可选值列表(IN、NOTIN)

④模式匹配(LIKE和NOTLIKE)

⑤上述条件的逻辑组合(AND、OR和NOT)27.1限定条件的查询1.比较查询条件比较查询条件的表达式有比较的双方和比较运算符组成。系统将根据查询条件的真假来决定某一条记录是否满足该查询条件,最后满足该查询条件的记录才会出现在最终的结果集中。注意:text、ntext和image数据类型不能同比较远算符组合成查询条件。

【例】在“读者”表中检索年龄不大于20岁的读者姓名.

程序代码如下:USETSGLSELECT姓名

FROM读者

WHERE年龄<=2037.1限定条件的查询2.范围查询条件如果需要返回某一字段的值介于二个指定值之间的所有记录,那么可以使用范围查询条件进行检索。通常使用BETWEEN…AND…来指定所含的范围条件。【例】在“读者”表中检索年龄在20到25岁之间的读者姓名.

程序代码如下:USETSGLSELECT姓名FROM读者

WHERE年龄

BETWEEN20AND2547.1限定条件的查询3.列表查询条件包含列表查询条件的查询将返回所有与列表中任意一个值匹配的记录,通常使用IN关键字(包含)来指定列表查询条件。列表中的项目之间必须使用逗号分隔。

【例】在“读者”表检索专业是计算机应用或自动控制的读者姓名。程序代码如下:USETSGLSELECT姓名,专业FROM读者

WHERE专业IN('计算机应用','自动控制')57.1限定条件的查询4.模式查询条件模式查询条件通常用来返回符合某种格式的所有记录,可以使用LIKE或NOTLIKE关键字来指定模式查询条件。LIKE关键字使用通配符来表示字符串需要的匹配的模式,见下表。通配符含义%由零个或者更多字符组成的任意字符串_任意单个字符[]用于指定范围,例如[a-h],表示a到h范围内的任何单个字符[^]用于指定范围,例如[^a-h],表示a到h范围以外的任何单个字符6LIKE关键字的使用格式举例祥见表Like格式检索范围Like’Me%’查询以字母Me开头的所有字符串(如Mengyue)Like’%ing’查询以字母ing结尾的所有字符串(如ming、string)Like’%en%’将查询在任何位置包含字母en的所有字符串(如meng、green)Like’_engyue’将查询以字母engyue’结尾的所有7个字母的名称(如mengyue)Like’[B-K]ing’将查询以字符串ing结尾,以从B到K任何字母开头的所有名称Like’M[^d]%’建查询以字母M开头,并且第二个字母不是d的所有名称75.逻辑运算符除了前面已经提到的查询条件外,还需要使用逻辑运算符,才能组成完整的查询条件。逻辑运算符有AND、OR、NOT。其中,AND、OR用于连接WHERE字句中的查询条件,NOT用于反转查询条件的结果。

【例7.6】在“读者”表中检索专业以“计算机”开头并且性别为男的读者姓名。程序代码如下:USETSGLSELECT姓名,专业

FROM读者

WHERE专业Like'计算机%'AND性别='男'87.2使用GROUPBY子句的查询

GROUPBY子句的主要作用是可以将数据记录设置的条件分成多个组,而且只有使用了GROUPBY子句,SELECT子句中所使用的聚合函数才会起作用。GROUPBY子句关键字后面将跟着用于分组的字段名称列表,这个列表将决定查询结果集分组的依据和顺序。在最终的结果集中,分组列表包含字段的每个非重复值只存在一条记录。

【例】在“读者”表中检索每个专业的平均年龄。程序代码如下:USETSGLSELECT专业,AVG(年龄)AS平均年龄

FROM读者

GROUPBY专业

97.3使用聚合函数的查询聚合函数包括SUM、AVG、COUNT、COUNT(*)、MAX、MIN。它们的作用是在查询结果集中生成汇总值。除了COUNT(*)外,其他汇总函数都处理单个字段中全部符合条件的值以生成一个结果集。这些汇总函数都可以应用于数据表中的所有记录。函数语法说明功能SUM(表达式)返回数值表达式中所有值的和AVG(表达式)返回数值表达式中所有值的平均值COUNT(表达式)返回数值表达式中值的个数COUNT(*)返回选定的行数MAX(表达式)返回表达式中的最大值MIN(表达式)返回表达式中的最小值107.3.1SUM函数聚合函数SUM的功能是返回数值表达式中所有值的和。用来求和的表达式通常是字段名称或包含字段名称的表达式。使用SUM函数时,应注意以下几点:

①运算时,SUM将忽略求和对象中的空值

②可以同时使用DISTINCT关键字,以便在求和之前去掉重复值

③SUM函数只能对数值类型的字段使用。117.3.2AVG函数聚合函数AVG的功能是返回组中值的平均值。用来求平均值的表达式,通常是字段名称或包含字段名称的表达式。使用AVG函数时,应注意以下几点:

①运算时,AVG将忽略运算对象中的空值

②可以同时使用DISTINCT关键字,以便在运算之前去掉重复值

③AVG函数只能对数值类型的字段使用。127.3.3MAX函数聚合函数MAX的功能是返回表达式中最高值。用来选取最高值的表达式通常是字段名称或包含字段名称的表达式。除了可以从数值类型的字段中选取最大值外,MAX函数另外一个常用的功能是从字符类型的字段中选取最大值。使用MAX函数时,应注意以下两点:

①运算时,MAX将忽略运算对象中的空值

②不能使用MAX函数从bit、text、image数据类型的字段中选取最大值。137.3.4MIN函数聚合函数MIN的功能是返回表达式中的最小值。用来选取最小值的表达式通常是字段名称或包含字段名称的表达式。除了可以从数值类型的字段中选取最小值外,MIN函数另外一个常用的功能是从字符类型的字段中选取最小值。使用MIN函数时,应注意以下两点:

①运算时,MIN将忽略运算对象中的空值

②不能使用MIN函数从bit、text、image数据类型的字段中选取最小值。147.3.5COUNT函数和COUNT(*)函数聚合函数COUNT的功能是返回表达式中值的个数,其表达式通常是字段名称。聚合函数COUNT(*)的功能是返回符合条件的记录条数。这两个函数的主要区别:①COUNT函数将忽略对象中的空值,而COUNT(*)函数则将所有符合条件的记录都计算在内。②使用COUNT函数可以同时使用可选关键字DISTINCT去掉重复值,而使用COUNT(*)函数时则不可以。③不能使用COUNT函数来计算定义为text和image数据类型的字段的个数,但是可以使用COUNT(*)函数。157.4使用ORDERBY子句的查询

ORDERBY子句将根据查询结果中的一个字段或多个字段对查询结果进行排序,这种排序的顺序可以是升序的(使用ASC关键字),也可以是降序的(使用DESC关键字)。如果没有指定排序的顺序是升序还是降序,系统将默认为升序。当然,在ORDERBY子句中可以指定不止一个字段,在这种情况下,系统将根据ORDERBY子句中指定的排序字段的顺序对查询结果进行排序16【例】在“读者”表中检索每个专业的学生信息,并按年龄由小到大进行输出。程序代码如下:USETSGLSELECT姓名,专业,年龄FROM读者ORDERBY专业,年龄177.5使用UNION组合多个运算结果

UNION(并)运算符可用来将两个或多个SELECT语句的查询结果组合成一个结果集。使用UNION运算符组合两个查询的结果集的基本规则是:

①所有查询中的列数和列的顺序必须相同;

②数据类型必须兼容

UNION运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论