《第7章 数据库表的高级操作课件.ppt》由会员分享,可在线阅读,更多相关《第7章 数据库表的高级操作课件.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、返回本章首页返回本章首页上一页上一页下一页下一页17.1 限定条件的查询7.2 使用GROUP BY子句的查询7.3 使用聚合函数的查询7.4 使用ORDER BY子句的查询7.5 使用UNION组合多个运算结果上一章上一章返回目录返回目录返回本章首页返回本章首页上一页上一页下一页下一页2 SELECT语句中的WHERE子句是用来控制结果集的记录构成。可以在WHERE子句中指定一系列查询条件,而只有这些满足条件的记录集才可以用来构造结果集。 WHERE子句中的查询或限定条件可以是: 比较运算符(如=、) 范围说明(BETWEEN和NOT BETWEEN) 可选值列表(IN、NOT IN) 模式
2、匹配(LIKE 和 NOT LIKE) 上述条件的逻辑组合(AND 、OR 和 NOT)返回本章首页返回本章首页上一页上一页下一页下一页31 比较查询条件比较查询条件 比较查询条件的表达式有比较的双方和比较运算符组成。系统将根据查询条件的真假来决定某一条记录是否满足该查询条件,最后满足该查询条件的记录才会出现在最终的结果集中。注意:text、ntext和image数据类型不能同比较远算符组合成查询条件。 【例】在“读者”表中检索年龄不大于20岁的读者姓名. 程序代码如下: USE TSGL SELECT 姓名 FROM 读者 WHERE 年龄=20返回本章首页返回本章首页上一页上一页下一页下一
3、页42范围查询条件范围查询条件 如果需要返回某一字段的值介于二个指定值之间的所有记录,那么可以使用范围查询条件进行检索。通常使用BETWEENAND来指定所含的范围条件。【例】在“读者”表中检索年龄在20到25岁之间的读者姓名. 程序代码如下: USE TSGL SELECT 姓名 FROM 读者 WHERE 年龄 BETWEEN 20 AND 25返回本章首页返回本章首页上一页上一页下一页下一页53列表查询条件列表查询条件 包含列表查询条件的查询将返回所有与列表中任意一个值匹配的记录,通常使用IN关键字(包含)来指定列表查询条件。列表中的项目之间必须使用逗号分隔。 【例】在“读者”表检索专业
4、是计算机应用或自动控制的读者姓名。 程序代码如下: USE TSGL SELECT 姓名,专业 FROM 读者 WHERE 专业 IN(计算机应用, 自动控制)返回本章首页返回本章首页上一页上一页下一页下一页64模式查询条件模式查询条件 模式查询条件通常用来返回符合某种格式的所有记录,可以使用LIKE或NOT LIKE关键字来指定模式查询条件。LIKE关键字使用通配符来表示字符串需要的匹配的模式,见下表。通配符含义%由零个或者更多字符组成的任意字符串_任意单个字符用于指定范围,例如a-h,表示a到h范围内的任何单个字符用于指定范围,例如a-h,表示a到h范围以外的任何单个字符返回本章首页返回本
5、章首页上一页上一页下一页下一页7LIKE关键字的使用格式举例祥见表Like格式检索范围Like Me%查询以字母Me开头的所有字符串(如Mengyue)Like %ing查询以字母ing结尾的所有字符串(如ming、string)Like %en%将查询在任何位置包含字母en的所有字符串(如meng、green)Like _engyue将查询以字母engyue结尾的所有7个字母的名称(如mengyue)Like B-King将查询以字符串ing结尾,以从B到K任何字母开头的所有名称Like Md%建查询以字母M开头,并且第二个字母不是d的所有名称返回本章首页返回本章首页上一页上一页下一页下一页
6、85逻辑运算符逻辑运算符 除了前面已经提到的查询条件外,还需要使用逻辑运算符,才能组成完整的查询条件。逻辑运算符有AND、OR、NOT。其中,AND、OR用于连接WHERE字句中的查询条件,NOT用于反转查询条件的结果。 【例7.6】在“读者”表中检索专业以“计算机”开头并且性别为男的读者姓名。 程序代码如下: USE TSGL SELECT 姓名,专业 FROM 读者 WHERE 专业 Like 计算机% AND 性别=男返回本章首页返回本章首页上一页上一页下一页下一页9 GROUP BY 子句的主要作用是可以将数据记录设置的条件分成多个组,而且只有使用了GROUP BY 子句,SELECT
7、子句中所使用的聚合函数才会起作用。GROUP BY 子句关键字后面将跟着用于分组的字段名称列表,这个列表将决定查询结果集分组的依据和顺序。在最终的结果集中,分组列表包含字段的每个非重复值只存在一条记录。 【例】在“读者”表中检索每个专业的平均年龄。 程序代码如下: USE TSGL SELECT 专业, AVG(年龄) AS 平均年龄 FROM 读者 GROUP BY 专业 返回本章首页返回本章首页上一页上一页下一页下一页10 聚合函数包括SUM、AVG、COUNT、COUNT(*)、MAX、MIN。它们的作用是在查询结果集中生成汇总值。除了COUNT(*)外,其他汇总函数都处理单个字段中全部
8、符合条件的值以生成一个结果集。这些汇总函数都可以应用于数据表中的所有记录。 函数语法说明功能SUM(表达式)返回数值表达式中所有值的和AVG(表达式)返回数值表达式中所有值的平均值COUNT(表达式)返回数值表达式中值的个数COUNT(*)返回选定的行数MAX(表达式)返回表达式中的最大值MIN(表达式)返回表达式中的最小值返回本章首页返回本章首页上一页上一页下一页下一页117.3.1 SUM函数函数 聚合函数SUM的功能是返回数值表达式中所有值的和。用来求和的表达式通常是字段名称或包含字段名称的表达式。 使用SUM函数时,应注意以下几点: 运算时,SUM将忽略求和对象中的空值 可以同时使用D
9、ISTINCT关键字,以便在求和之前去掉重复值 SUM函数只能对数值类型的字段使用。返回本章首页返回本章首页上一页上一页下一页下一页127.3.2 AVG函数函数 聚合函数AVG的功能是返回组中值的平均值。用来求平均值的表达式,通常是字段名称或包含字段名称的表达式。 使用AVG函数时,应注意以下几点: 运算时,AVG将忽略运算对象中的空值 可以同时使用DISTINCT关键字,以便在运算之前去掉重复值 AVG函数只能对数值类型的字段使用。返回本章首页返回本章首页上一页上一页下一页下一页137.3.3 MAX函数函数 聚合函数MAX的功能是返回表达式中最高值。用来选取最高值的表达式通常是字段名称或
10、包含字段名称的表达式。 除了可以从数值类型的字段中选取最大值外,MAX函数另外一个常用的功能是从字符类型的字段中选取最大值。 使用MAX函数时,应注意以下两点: 运算时,MAX将忽略运算对象中的空值 不能使用MAX函数从bit、text、image数据类型的字段中选取最大值。返回本章首页返回本章首页上一页上一页下一页下一页147.3.4 MIN函数函数 聚合函数MIN的功能是返回表达式中的最小值。用来选取最小值的表达式通常是字段名称或包含字段名称的表达式。 除了可以从数值类型的字段中选取最小值外,MIN函数另外一个常用的功能是从字符类型的字段中选取最小值。 使用MIN函数时,应注意以下两点:
11、运算时,MIN将忽略运算对象中的空值 不能使用MIN函数从bit、text、image数据类型的字段中选取最小值。返回本章首页返回本章首页上一页上一页下一页下一页157.3.5 COUNT函数和函数和COUNT(*)函数)函数 聚合函数COUNT的功能是返回表达式中值的个数,其表达式通常是字段名称。 聚合函数COUNT(*)的功能是返回符合条件的记录条数。 这两个函数的主要区别:COUNT函数将忽略对象中的空值,而COUNT(*)函数则将所有符合条件的记录都计算在内。使用COUNT函数可以同时使用可选关键字DISTINCT去掉重复值,而使用COUNT(*)函数时则不可以。不能使用COUNT函数
12、来计算定义为text和image数据类型的字段的个数,但是可以使用COUNT(*)函数。返回本章首页返回本章首页上一页上一页下一页下一页16 ORDER BY子句将根据查询结果中的一个字段或多个字段对查询结果进行排序,这种排序的顺序可以是升序的(使用ASC关键字),也可以是降序的(使用DESC关键字)。如果没有指定排序的顺序是升序还是降序,系统将默认为升序。当然,在ORDER BY子句中可以指定不止一个字段,在这种情况下,系统将根据ORDER BY子句中指定的排序字段的顺序对查询结果进行排序 返回本章首页返回本章首页上一页上一页下一页下一页17【例】在“读者”表中检索每个专业的学生信息,并按年
13、龄由小到大进行输出。程序代码如下:USE TSGLSELECT 姓名,专业,年龄 FROM 读者 ORDER BY 专业,年龄返回本章首页返回本章首页上一页上一页下一页下一页18 UNION(并)运算符可用来将两个或多个SELECT语句的查询结果组合成一个结果集。 使用UNION运算符组合两个查询的结果集的基本规则是: 所有查询中的列数和列的顺序必须相同; 数据类型必须兼容 UNION运算符的基本语法格式: select_statement UNION ALL select_statement 其中:select_statement 是SELECT 查询语句 返回本章首页返回本章首页上一页上一页下一页下一页19【例】使用UNION将“读者”表和“学生”表中的人员组合输出。程序代码如下:USE TSGLSELECT 姓名,性别 FROM 读者UNION SELECT 姓名,性别 FROM 学生