电子工业出版社15040-《SQL-Server实例教程》-电子教案第5章课件

上传人:无*** 文档编号:241534462 上传时间:2024-07-02 格式:PPT 页数:98 大小:5.20MB
返回 下载 相关 举报
电子工业出版社15040-《SQL-Server实例教程》-电子教案第5章课件_第1页
第1页 / 共98页
电子工业出版社15040-《SQL-Server实例教程》-电子教案第5章课件_第2页
第2页 / 共98页
电子工业出版社15040-《SQL-Server实例教程》-电子教案第5章课件_第3页
第3页 / 共98页
点击查看更多>>
资源描述
S SQ QL L S Se er rv ve er r 实实 例例 教教 程程(2 20 00 08 8版版)第第 5 5 章章 查询操作查询操作不登高山不登高山,不知天之高也不知天之高也不临深溪不临深溪,不知地之厚也不知地之厚也 2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)本章学习导航本章学习导航2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)数据库查询是指数据库管理系统按照数据库查询是指数据库管理系统按照数据库用户数据库用户的指定的条件的指定的条件,从数据库中的相关表中找到满足条件,从数据库中的相关表中找到满足条件的信息的过程。的信息的过程。数据查询涉及两个方面:数据查询涉及两个方面:一是一是用户指定查询条用户指定查询条件,件,二是二是系统进行处理并把查询结果反馈给用户。系统进行处理并把查询结果反馈给用户。本章学习导航本章学习导航2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)本章任务描述本章任务描述任 务 编 号子 任 务任 务 内 容任务1使用T-SQL语句完成对数据库中某一个表的信息的基本查询操作任务1-1查询所有列任务1-2查询指定列任务1-3查询计算列任务1-4为查询列指定别名任务1-5简单条件查询任务1-6、任务1-7复合条件查询任务1-8、任务1-9指定范围查询任务1-10、任务1-11集合查询任务1-12、任务1-13、任务1-14模糊查询任务1-15涉及空值查询任务1-16消除重复行的查询任务1-17查询前N行任务2使用T-SQL对数据表中的记录进行排序、分组和统计操作任务2-1单关键字排序任务2-2多关键字排序任务2-3简单分组任务2-4分组后排序2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)本章任务描述本章任务描述任 务 编 号子 任 务任 务 内 容任务2-5分组后筛选任务2-6使用COMPUTE子句任务2-7使用WITH CUBE子句任务2-8实现分页任务2-9实现排名任务3使用T-SQL对数据库中的多表进行查询,以获得完整的信息任务3-1、任务3-2等值连接任务3-3自身连接任务3-4、任务3-5左外连接任务3-6右外连接任务3-7完整外部连接任务3-8交叉连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)本章任务描述本章任务描述任 务 编 号子 任 务任 务 内 容任务4 使用T-SQL实现嵌套查询以通过不同的表获取完整的信息任务4-1、任务4-2、任务4-3使用IN或NOT IN的子查询任务4-4使用比较运算符的子查询任务4-5使用ANY或ALL的子查询任务4-6使用EXISTS的子查询任务4-7抽取数据到另一个表中任务4-8INSERT语句中的子查询任务4-9、任务4-10UPDATE语句中的子查询任务4-11删除语句中的子查询任务5 使用联合查询任务6在SQL Server 2008中使用PIVOT和UNPIVOT运算符实现交叉表查询任务7使用SSMS进行数据查询2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)单表查询 任务任务1 在在SQL Server 2008中使用中使用T-SQL语句完成对语句完成对数据库中某一个表的信息的基本查询操作。数据库中某一个表的信息的基本查询操作。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)一、选择列【任务任务1-1】网站销售部管理人员或采购部管理人员网站销售部管理人员或采购部管理人员网站销售部管理人员或采购部管理人员网站销售部管理人员或采购部管理人员需要了解所有商品的详细信息。需要了解所有商品的详细信息。需要了解所有商品的详细信息。需要了解所有商品的详细信息。SELECT*FROM Goods(一)所有列(一)所有列2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)一、选择列2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-2】网站管理人员在了解商品信息时只需要网站管理人员在了解商品信息时只需要网站管理人员在了解商品信息时只需要网站管理人员在了解商品信息时只需要了解所有商品的商品号、商品名称和商品单价。了解所有商品的商品号、商品名称和商品单价。了解所有商品的商品号、商品名称和商品单价。了解所有商品的商品号、商品名称和商品单价。【提示提示】SELECTSELECT子句中的子句中的【】中各个列的中各个列的先后顺序可以与表中的顺序不一致。先后顺序可以与表中的顺序不一致。用户在查询时可以根据需要改变列的显示顺序,用户在查询时可以根据需要改变列的显示顺序,但不改变表中列的原始顺序。但不改变表中列的原始顺序。一、选择列(二)指定列(二)指定列2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)一、选择列2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-3】在在在在GoodsGoods表中存储有商品数量和商品单表中存储有商品数量和商品单表中存储有商品数量和商品单表中存储有商品数量和商品单价,现在需要了解所有商品的商品号、商品名称和商品价,现在需要了解所有商品的商品号、商品名称和商品价,现在需要了解所有商品的商品号、商品名称和商品价,现在需要了解所有商品的商品号、商品名称和商品总额。总额。总额。总额。【提示提示】该语句中该语句中【】中第中第3 3项不是通常的列名,而项不是通常的列名,而是一个计算表达式,是商品单价与商品数量的乘积,所得是一个计算表达式,是商品单价与商品数量的乘积,所得的积是商品的总价值。的积是商品的总价值。计算列不仅可以是算术表达式,还可以是字符串常量、函计算列不仅可以是算术表达式,还可以是字符串常量、函数等。数等。一、选择列(三)计算列(三)计算列2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)一、选择列2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-4】要求了解所有商品的商品号、商品名称和要求了解所有商品的商品号、商品名称和要求了解所有商品的商品号、商品名称和要求了解所有商品的商品号、商品名称和总价值,但希望以汉字标题商品号、商品名称和总价值总价值,但希望以汉字标题商品号、商品名称和总价值总价值,但希望以汉字标题商品号、商品名称和总价值总价值,但希望以汉字标题商品号、商品名称和总价值表示表示表示表示g_IDg_ID、g_Nameg_Name和和和和g_Price*g_Numberg_Price*g_Number。【提示提示】用户可以通过指定别名来改变查询结果的列标题,这在含有算术表用户可以通过指定别名来改变查询结果的列标题,这在含有算术表达式、常量、函数名的列分隔目标列表达式时非常有用。达式、常量、函数名的列分隔目标列表达式时非常有用。有三种方法指定别名:有三种方法指定别名:通过通过“列名列名 列标题列标题”形式;形式;通过通过“列名列名 AS AS 列标题列标题”形式;形式;通过通过“列标题列标题=列名列名”形式。形式。一、选择列(四)使用别名(四)使用别名2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)一、选择列2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【课堂实践1】操作要求:操作要求:(1 1)查询)查询WebShopWebShop数据库中会员信息表数据库中会员信息表CustomersCustomers中的所有内容。中的所有内容。(2 2)查询)查询WebShopWebShop数据库中会员信息表数据库中会员信息表CustomersCustomers中会员的编号(中会员的编号(c_IDc_ID)、)、用户名(用户名(c_Namec_Name)、真实姓名()、真实姓名(c_TrueNamec_TrueName)和密码()和密码(c_Passwordc_Password)。)。(3 3)查询)查询WebShopWebShop数据库中会员信息表数据库中会员信息表CustomersCustomers中会员的编号(中会员的编号(c_IDc_ID)、)、用户名(用户名(c_Namec_Name)、真实姓名()、真实姓名(c_TrueNamec_TrueName)、年龄()、年龄(c_Agec_Age)和密码)和密码(c_Passwordc_Password)。)。(4 4)查询)查询WebShopWebShop数据库中会员信息表数据库中会员信息表CustomersCustomers中会员的编号(中会员的编号(c_IDc_ID)、)、用户名(用户名(c_Namec_Name)、真实姓名()、真实姓名(c_TrueNamec_TrueName)、年龄和密码)、年龄和密码(c_Passwordc_Password)并以汉字标题显示列名。)并以汉字标题显示列名。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)二、选择行二、选择行【任务任务1-5】需要了解所有商品中的需要了解所有商品中的需要了解所有商品中的需要了解所有商品中的“热点热点热点热点”商品的商品的商品的商品的所有信息。所有信息。所有信息。所有信息。(一)满足条件的行(一)满足条件的行1、简单条件查询、简单条件查询2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-6】需要了解商品类别为需要了解商品类别为需要了解商品类别为需要了解商品类别为“01”01”,商品单价,商品单价,商品单价,商品单价在在在在25002500元以上的商品信息,要求以汉字标题显示商品元以上的商品信息,要求以汉字标题显示商品元以上的商品信息,要求以汉字标题显示商品元以上的商品信息,要求以汉字标题显示商品号、商品名称、商品类别号和价格。号、商品名称、商品类别号和价格。号、商品名称、商品类别号和价格。号、商品名称、商品类别号和价格。2 2、复合条件查询、复合条件查询、复合条件查询、复合条件查询二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-7】需要了解需要了解需要了解需要了解“湖南湖南湖南湖南”省的所有男性的会员省的所有男性的会员省的所有男性的会员省的所有男性的会员或者是年龄在或者是年龄在或者是年龄在或者是年龄在3030岁以下的会员的会员号、会员名称、岁以下的会员的会员号、会员名称、岁以下的会员的会员号、会员名称、岁以下的会员的会员号、会员名称、性别、籍贯和年龄。性别、籍贯和年龄。性别、籍贯和年龄。性别、籍贯和年龄。二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-8】需要了解所有年龄在需要了解所有年龄在需要了解所有年龄在需要了解所有年龄在20202525岁之间的会岁之间的会岁之间的会岁之间的会员的名称、籍贯和年龄(用员的名称、籍贯和年龄(用员的名称、籍贯和年龄(用员的名称、籍贯和年龄(用NlNl表示,不是基本表中的表示,不是基本表中的表示,不是基本表中的表示,不是基本表中的字段,是计算出来的列)。字段,是计算出来的列)。字段,是计算出来的列)。字段,是计算出来的列)。3 3、指定范围查询指定范围查询指定范围查询指定范围查询二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-9】需要了解所有年龄不在需要了解所有年龄不在需要了解所有年龄不在需要了解所有年龄不在20202525岁之间的岁之间的岁之间的岁之间的会员的名称、籍贯和会员的名称、籍贯和会员的名称、籍贯和会员的名称、籍贯和NlNl(同(同(同(同【任务任务任务任务1-81-8】)。)。)。)。二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-10】需要了解来自需要了解来自需要了解来自需要了解来自“湖南株洲湖南株洲湖南株洲湖南株洲”和和和和“湖南湖南湖南湖南长沙长沙长沙长沙”两地会员的详细信息。两地会员的详细信息。两地会员的详细信息。两地会员的详细信息。二、选择行二、选择行4 4、指定集合查询、指定集合查询、指定集合查询、指定集合查询2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-11】需要了解家庭地址不是需要了解家庭地址不是需要了解家庭地址不是需要了解家庭地址不是“湖南株洲湖南株洲湖南株洲湖南株洲”和和和和“湖南长沙湖南长沙湖南长沙湖南长沙”的商品的详细信息。的商品的详细信息。的商品的详细信息。的商品的详细信息。二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-12】需要了解所有商品中需要了解所有商品中需要了解所有商品中需要了解所有商品中“三星三星三星三星”的商品的商品的商品的商品的详细信息。的详细信息。的详细信息。的详细信息。5 5、模糊查询、模糊查询、模糊查询、模糊查询二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-13】需要了解姓需要了解姓需要了解姓需要了解姓“黄黄黄黄”且名字中只有两个且名字中只有两个且名字中只有两个且名字中只有两个汉字的会员的会员名、真实姓名、电话和电子邮箱。汉字的会员的会员名、真实姓名、电话和电子邮箱。汉字的会员的会员名、真实姓名、电话和电子邮箱。汉字的会员的会员名、真实姓名、电话和电子邮箱。【提示提示】如果在如果在“黄黄”后用两个后用两个“_”_”,则姓,则姓“黄黄”的的名字为两个汉字和三个汉字的商品将都被查询名字为两个汉字和三个汉字的商品将都被查询出来。出来。二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-14】知道一个商品的商品名称中包含有知道一个商品的商品名称中包含有知道一个商品的商品名称中包含有知道一个商品的商品名称中包含有“520”520”字样,要求查询该商品的商品号、商品名称、字样,要求查询该商品的商品号、商品名称、字样,要求查询该商品的商品号、商品名称、字样,要求查询该商品的商品号、商品名称、商品单价和商品折扣。商品单价和商品折扣。商品单价和商品折扣。商品单价和商品折扣。二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】如果用户要查询的匹配字符串本身就含有如果用户要查询的匹配字符串本身就含有“%”%”或或“_”_”,比如要查询名字为,比如要查询名字为“三星三星Cdmaix_008”Cdmaix_008”的商品的信息,这时就要使用的商品的信息,这时就要使用“ESCAPE”ESCAPE”关键字对通配符进行转义。关键字对通配符进行转义。ESCAPE“”ESCAPE“”短语表示短语表示“”为换码字符,这样匹为换码字符,这样匹配串中紧跟在配串中紧跟在“”后面的字符后面的字符“_”_”不再具有通不再具有通配符的含义,而是取其本身含义,即普通的配符的含义,而是取其本身含义,即普通的“_”_”字符。字符。二、选择行二、选择行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-15】查询暂时没有商品图片的商品信息。查询暂时没有商品图片的商品信息。查询暂时没有商品图片的商品信息。查询暂时没有商品图片的商品信息。【提示提示】这里的这里的“IS”IS”不能用等号(不能用等号(“=”=”)代替。)代替。IS NULLIS NULL表表示空,示空,IS NOT NULLIS NOT NULL表示非空。表示非空。这里的这里的NULLNULL值是抽象的空值,不是值是抽象的空值,不是0 0,也不是空字符串,也不是空字符串,如果用户将已有的商品的图片信息删除,则为空字符如果用户将已有的商品的图片信息删除,则为空字符串,而非串,而非NULLNULL值。值。二、选择行二、选择行6 6、涉及空值的查询、涉及空值的查询、涉及空值的查询、涉及空值的查询2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-16】需要了解在需要了解在需要了解在需要了解在WebShopWebShop网站进行了购网站进行了购网站进行了购网站进行了购物并下了订单的会员编号,如果一个会员下了多个订单,物并下了订单的会员编号,如果一个会员下了多个订单,物并下了订单的会员编号,如果一个会员下了多个订单,物并下了订单的会员编号,如果一个会员下了多个订单,只需要显示一次会员编号。只需要显示一次会员编号。只需要显示一次会员编号。只需要显示一次会员编号。二、选择行二、选择行未消除重复行未消除重复行消除重复行消除重复行(二)消除重复行(二)消除重复行(二)消除重复行(二)消除重复行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务1-17】需要了解前需要了解前需要了解前需要了解前8 8种商品的详情信息。种商品的详情信息。种商品的详情信息。种商品的详情信息。二、选择行二、选择行(三)前(三)前(三)前(三)前N N行行行行2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【课堂实践2】操作要求:操作要求:(1 1)查询)查询WebShopWebShop数据库中数据库中“VIPVIP会员会员”的详细情况。的详细情况。(2 2)查询)查询WebShopWebShop数据库中男数据库中男“VIPVIP会员会员”的详细情况,并对所有的列使用的详细情况,并对所有的列使用汉字标题。汉字标题。(3 3)查询)查询WebShopWebShop数据库中来自湖南的男数据库中来自湖南的男“VIPVIP会员会员”的姓名(的姓名(c_Namec_Name)、)、性别(性别(c_Genderc_Gender)、出生年月()、出生年月(c_Birthc_Birth)、籍贯()、籍贯(c_Addressc_Address)、联系)、联系电话(电话(c_Phonec_Phone)和)和E-mailE-mail(c_E-mailc_E-mail)地址,要求使用汉字标题。)地址,要求使用汉字标题。(4 4)查询所有使用)查询所有使用163163邮箱的会员详细信息。邮箱的会员详细信息。(5 5)查询最先注册的)查询最先注册的10%10%的会员详细信息。的会员详细信息。(6 6)查询所有姓)查询所有姓“刘刘”的会员信息,要求显示姓名(的会员信息,要求显示姓名(c_Namec_Name)、性别)、性别(c_Genderc_Gender)、出生年月()、出生年月(c_Birthc_Birth)和籍贯()和籍贯(c_Addressc_Address)。)。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)任务任务2 在在SQL Server 2008中使用中使用T-SQL对数据表中对数据表中的记录进行排序、分组和统计操作。的记录进行排序、分组和统计操作。三、三、ORDER BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-1】需要了解商品类别号为需要了解商品类别号为需要了解商品类别号为需要了解商品类别号为“01”01”的商品的的商品的的商品的的商品的商品号、商品名称和商品单价,并要求根据商品的价格商品号、商品名称和商品单价,并要求根据商品的价格商品号、商品名称和商品单价,并要求根据商品的价格商品号、商品名称和商品单价,并要求根据商品的价格进行降序(价格由高到低)排列。进行降序(价格由高到低)排列。进行降序(价格由高到低)排列。进行降序(价格由高到低)排列。三、三、ORDER BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】用用ORDERORDERBYBY子句对查询结果按价格排序时,若按升序排列,子句对查询结果按价格排序时,若按升序排列,价格为空值的记录将最先显示;若按降序排列,价格为空价格为空值的记录将最先显示;若按降序排列,价格为空值的记录将最后显示。值的记录将最后显示。中英文字符按其中英文字符按其ASCIIASCII码大小进行比较。码大小进行比较。数值型数据根据其数值大小进行比较。数值型数据根据其数值大小进行比较。日期型数据按年、月、日的数值大小进行比较。日期型数据按年、月、日的数值大小进行比较。逻辑型数据逻辑型数据“False”False”小于小于“TrueTrue”。三、三、ORDER BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-2】需要了解价格在需要了解价格在需要了解价格在需要了解价格在25002500元以上的商品的商元以上的商品的商元以上的商品的商元以上的商品的商品号、商品名称、商品类别号和商品单价信息,并要求品号、商品名称、商品类别号和商品单价信息,并要求品号、商品名称、商品类别号和商品单价信息,并要求品号、商品名称、商品类别号和商品单价信息,并要求按类别号升序排列;如果是同一类别的商品,则按价格按类别号升序排列;如果是同一类别的商品,则按价格按类别号升序排列;如果是同一类别的商品,则按价格按类别号升序排列;如果是同一类别的商品,则按价格降序排列。降序排列。降序排列。降序排列。三、三、ORDER BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-3】需要了解每一类别的商品总数。需要了解每一类别的商品总数。需要了解每一类别的商品总数。需要了解每一类别的商品总数。四、四、GROUP BY 子句子句(一一一一)简单分组简单分组简单分组简单分组2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-4】需要了解每一个订单的总金额,并根据需要了解每一个订单的总金额,并根据需要了解每一个订单的总金额,并根据需要了解每一个订单的总金额,并根据订单总额进行升序排列。订单总额进行升序排列。订单总额进行升序排列。订单总额进行升序排列。(二二二二)分组后排序分组后排序分组后排序分组后排序四、四、GROUP BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-5】需要了解订单总额大于需要了解订单总额大于需要了解订单总额大于需要了解订单总额大于50005000的订单信息的订单信息的订单信息的订单信息,并按升序排列。,并按升序排列。,并按升序排列。,并按升序排列。(三三三三)分组后筛选分组后筛选分组后筛选分组后筛选四、四、GROUP BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】在使用分组时要显示的列要么包含在聚合函数中,在使用分组时要显示的列要么包含在聚合函数中,要么包含在要么包含在GROUP BYGROUP BY子句中,否则不能被显示。子句中,否则不能被显示。WHEREWHERE子句与子句与HAVINGHAVING短语的根本区别在于作用对象短语的根本区别在于作用对象不同。不同。WHEREWHERE子句作用于基本表或视图,从中选择子句作用于基本表或视图,从中选择满足条件的记录。满足条件的记录。HAVINGHAVING短语作用于组,从中选短语作用于组,从中选择满足条件的组。择满足条件的组。四、四、GROUP BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)五、五、COMPUTE BY 子句子句COMPUTECOMPUTE子句需要提供下列信息:子句需要提供下列信息:(1 1)可选)可选BYBY关键字,它基于每一列计算指定的行关键字,它基于每一列计算指定的行聚合。聚合。(2 2)行聚合函数名称,包括)行聚合函数名称,包括SUMSUM、AVGAVG、MINMIN、MAXMAX或或COUNTCOUNT。(3 3)要对其执行聚合函数的列。)要对其执行聚合函数的列。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-6】需要了解需要了解需要了解需要了解OrderDetailsOrderDetails表中的单价和表中的单价和表中的单价和表中的单价和数量的总和。数量的总和。数量的总和。数量的总和。使用使用COMPUTE使用使用COMPUTEBY五、五、COMPUTE BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】提供提供COMPUTECOMPUTE和和COMPUTE BYCOMPUTE BY是为了向后兼容。是为了向后兼容。SQL Server 2005SQL Server 2005中可以使中可以使用用ROLLUPROLLUP运算符。运算符。在在COMPUTECOMPUTE或或COMPUTE BYCOMPUTE BY子句中,不能包含子句中,不能包含ntextntext、texttext或或imageimage数据类型。数据类型。GROUP BYGROUP BY生成单个结果集。每个组都有一个只包含分组依据列和显示该生成单个结果集。每个组都有一个只包含分组依据列和显示该组子聚合的聚合函数的行。选择列表只能包含分组依据列和聚合函数组子聚合的聚合函数的行。选择列表只能包含分组依据列和聚合函数 COMPUTE COMPUTE 生成多个结果集。一种结果集包含每个组的明细行,其中包含生成多个结果集。一种结果集包含每个组的明细行,其中包含选择列表中的表达式。另一种结果集包含组的子聚合,或选择列表中的表达式。另一种结果集包含组的子聚合,或SELECTSELECT语句的语句的总聚合。选择列表可包含除分组依据列或聚合函数之外的其他表达式。总聚合。选择列表可包含除分组依据列或聚合函数之外的其他表达式。聚合函数在聚合函数在COMPUTECOMPUTE子句中指定,而不是在选择列表中指定。子句中指定,而不是在选择列表中指定。五、五、COMPUTE BY 子句子句2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-7】既需要了解每一类送货方式产生的总金既需要了解每一类送货方式产生的总金既需要了解每一类送货方式产生的总金既需要了解每一类送货方式产生的总金额,也需要了解每一个员工处理的订单的总金额。额,也需要了解每一个员工处理的订单的总金额。额,也需要了解每一个员工处理的订单的总金额。额,也需要了解每一个员工处理的订单的总金额。六、六、WITH CUBE 汇总数据汇总数据多维度汇总数据多维度汇总数据2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-8】在订单表中按订单总额(在订单表中按订单总额(在订单表中按订单总额(在订单表中按订单总额(o_Sumo_Sum)进行)进行)进行)进行排序,需要显示其中指定的第排序,需要显示其中指定的第排序,需要显示其中指定的第排序,需要显示其中指定的第3 35 5条记录,通过这种条记录,通过这种条记录,通过这种条记录,通过这种方法实现分页。方法实现分页。方法实现分页。方法实现分页。七、分页和排名七、分页和排名 【提示提示】ROW_NUMBER ROW_NUMBER返回结果集分区内行的序列号,每个分区的第一行从返回结果集分区内行的序列号,每个分区的第一行从 1 1 开开始。始。ORDER BY ORDER BY 子句可确定在特定分区中为行分配唯一子句可确定在特定分区中为行分配唯一 ROW_NUMBER ROW_NUMBER 的顺序。的顺序。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务2-9】在订单表中按订单总额进行排序,需要在订单表中按订单总额进行排序,需要在订单表中按订单总额进行排序,需要在订单表中按订单总额进行排序,需要显示其中指定的第显示其中指定的第显示其中指定的第显示其中指定的第3 35 5条记录的排名情况。条记录的排名情况。条记录的排名情况。条记录的排名情况。七、分页和排名七、分页和排名2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【课堂实践3】操作要求:操作要求:(1 1)对会员信息表)对会员信息表CustomersCustomers按年龄进行降序排列。按年龄进行降序排列。(2 2)对会员信息表)对会员信息表CustomersCustomers按会员类型(按会员类型(c_Typec_Type)进行升序排列,类型相)进行升序排列,类型相同的按年龄进行降序排列。同的按年龄进行降序排列。(3 3)统计)统计CustomersCustomers表中男、女会员的总人数。表中男、女会员的总人数。(4 4)统计)统计OrdersOrders表中每一会员的订单总额,并显示大于平均总额的会员编表中每一会员的订单总额,并显示大于平均总额的会员编号和订单总额。号和订单总额。(5 5)统计)统计OrdersOrders表中每一天的订单总额,并根据订单总额进行降序排列。表中每一天的订单总额,并根据订单总额进行降序排列。(6 6)使用)使用COMPUTECOMPUTE语句统计产生订单的天数和订单总额。查询语句统计产生订单的天数和订单总额。查询WebShopWebShop数据数据库中会员信息表库中会员信息表CustomersCustomers中的所有内容。中的所有内容。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)连接查询 任务任务3 在在SQL Server 2008中使用中使用T-SQL对数据库中对数据库中的多表进行查询,以获得更详细更完整的信息。的多表进行查询,以获得更详细更完整的信息。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)一、内连接一、内连接(一)等值连接(一)等值连接 其一般格式如下:其一般格式如下:.2 【提示提示】当比较运算符为当比较运算符为“=”=”时,称为等值连接。时,称为等值连接。此外连接谓词还可以使用下面形式:此外连接谓词还可以使用下面形式:.BETWEEN BETWEEN.2 AND AND.32024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-1】需要了解每个商品的商品号、商品名称需要了解每个商品的商品号、商品名称需要了解每个商品的商品号、商品名称需要了解每个商品的商品号、商品名称和商品类别名称。和商品类别名称。和商品类别名称。和商品类别名称。一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】由于由于g_IDg_ID、g_Nameg_Name和和 t_Namet_Name属性列在属性列在GoodsGoods与与TypesTypes表中是唯一的,因此使用时可以去掉表名前缀。表中是唯一的,因此使用时可以去掉表名前缀。t_IDt_ID在两个表都出现了,因此引用时必须加上表名在两个表都出现了,因此引用时必须加上表名前缀。该查询的执行结果不再出现前缀。该查询的执行结果不再出现Types.t_IDTypes.t_ID列。列。一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-2】需要了解所有订单中订购的商品信息需要了解所有订单中订购的商品信息需要了解所有订单中订购的商品信息需要了解所有订单中订购的商品信息(商品名称、购买价格和购买数量)和订单日期。(商品名称、购买价格和购买数量)和订单日期。(商品名称、购买价格和购买数量)和订单日期。(商品名称、购买价格和购买数量)和订单日期。一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】如果是按照两个表中的相同属性进行等值连接,且如果是按照两个表中的相同属性进行等值连接,且目标列中去掉了重复的属性列,但保留了所有不重目标列中去掉了重复的属性列,但保留了所有不重复的属性列,则称之为自然连接。复的属性列,则称之为自然连接。自行比较使用自行比较使用JOINJOIN连接和使用连接和使用WHEREWHERE连接的异同。连接的异同。一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)(二)非等值连接(二)非等值连接 使用使用、=、=等运算符作为连接条件的连接称为非等等运算符作为连接条件的连接称为非等值连接。值连接。(三)自身连接(三)自身连接连接操作不仅可以在两个表之间进行,也可以是一个表与连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,这种连接称为表的自身连接。其自己进行连接,这种连接称为表的自身连接。一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-3】需要了解不低于需要了解不低于需要了解不低于需要了解不低于“三星三星三星三星SGH-C178”SGH-C178”价价价价格的商品号、商品名称和商品单价,查询后的结果要求格的商品号、商品名称和商品单价,查询后的结果要求格的商品号、商品名称和商品单价,查询后的结果要求格的商品号、商品名称和商品单价,查询后的结果要求按商品单价升序排列。按商品单价升序排列。按商品单价升序排列。按商品单价升序排列。一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】因为是对同一个表进行连接操作,所以用别名因为是对同一个表进行连接操作,所以用别名G1G1和和G2G2代表同一个表代表同一个表GoodsGoods。如果将上述语句中如果将上述语句中SELECTSELECT子句中的子句中的G2G2换成换成G1G1,将会,将会出现如下图所示的错误查询结果。出现如下图所示的错误查询结果。一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)自身连接错误查询结果自身连接错误查询结果一、内连接一、内连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-4】需要了解所有商品类别及其对应商品信需要了解所有商品类别及其对应商品信需要了解所有商品类别及其对应商品信需要了解所有商品类别及其对应商品信息,如果该商品类别没有对应商品也需要显示其类别信息,如果该商品类别没有对应商品也需要显示其类别信息,如果该商品类别没有对应商品也需要显示其类别信息,如果该商品类别没有对应商品也需要显示其类别信息。息。息。息。(一)左外连接(一)左外连接二、外连接二、外连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)左外连接(左外连接(1)二、外连接二、外连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-5】需要了解所有订单所订购的商品信息和需要了解所有订单所订购的商品信息和需要了解所有订单所订购的商品信息和需要了解所有订单所订购的商品信息和订单日期。订单日期。订单日期。订单日期。左外连接(左外连接(2)二、外连接二、外连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-6】需要了解所有商品的信息(即使是不存需要了解所有商品的信息(即使是不存需要了解所有商品的信息(即使是不存需要了解所有商品的信息(即使是不存在对应的商品类别信息,实际上这种情况是不存在的)。在对应的商品类别信息,实际上这种情况是不存在的)。在对应的商品类别信息,实际上这种情况是不存在的)。在对应的商品类别信息,实际上这种情况是不存在的)。(二)右外连接(二)右外连接二、外连接二、外连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-7】需要了解所有商品的基本信息和类别信需要了解所有商品的基本信息和类别信需要了解所有商品的基本信息和类别信需要了解所有商品的基本信息和类别信息。息。息。息。(三)完整外部连接(三)完整外部连接 二、外连接二、外连接2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务3-8】对商品信息表和成绩表进行交叉连接。对商品信息表和成绩表进行交叉连接。对商品信息表和成绩表进行交叉连接。对商品信息表和成绩表进行交叉连接。三、交差连接三、交差连接SELECT*FROMTypesCROSSJOINGoodsSELECTTypes.*,Goods.*FROMTypes,Goods2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【课堂实践4】操作要求:操作要求:(1 1)查询每笔订单的基本信息(订单号、订单日期、总金额)以)查询每笔订单的基本信息(订单号、订单日期、总金额)以及付款方式(名称),和处理该订单的员工名称。及付款方式(名称),和处理该订单的员工名称。(2 2)使用)使用WHEREWHERE语句来实现语句来实现【任务任务3-33-3】中的查询操作。中的查询操作。(3 3)实现订单表()实现订单表(OrdersOrders)和订单详情表()和订单详情表(OrderDetailsOrderDetails)的左)的左外连接。外连接。(4 4)实现订单表()实现订单表(OrdersOrders)和订单详情表()和订单详情表(OrderDetailsOrderDetails)的右)的右外连接。外连接。(5 5)实现订单表()实现订单表(OrdersOrders)和订单详情表()和订单详情表(OrderDetailsOrderDetails)的完)的完整外部连接。整外部连接。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)子查询 任务任务4 在在SQL Server 2008中使用中使用T-SQL实现嵌套查实现嵌套查询以实现各种灵活的查询操作。询以实现各种灵活的查询操作。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)一、子查询类型一、子查询类型 (一)使用(一)使用IN或或NOT IN的子查询的子查询【任务任务任务任务任务任务4-14-14-1】需要了解和需要了解和需要了解和需要了解和需要了解和需要了解和“摩托罗拉摩托罗拉摩托罗拉摩托罗拉摩托罗拉摩托罗拉 W380”W380”W380”为同类商品的商品为同类商品的商品为同类商品的商品为同类商品的商品为同类商品的商品为同类商品的商品号、商品名称和类别号。号、商品名称和类别号。号、商品名称和类别号。号、商品名称和类别号。号、商品名称和类别号。号、商品名称和类别号。1、确定、确定“摩托罗拉摩托罗拉W380”所属类别名。所属类别名。2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)2、查找类别号为、查找类别号为01的商品信息。的商品信息。一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】实现同一个查询可以采用多种方法,当然不同的实现同一个查询可以采用多种方法,当然不同的方法其执行效率可能会有差别,甚至会差别很大,方法其执行效率可能会有差别,甚至会差别很大,数据库用户可以根据自己的需要进行合理的选择。数据库用户可以根据自己的需要进行合理的选择。在查询语句中的常量必须准确,如上例中的在查询语句中的常量必须准确,如上例中的“摩摩托罗拉托罗拉W380”W380”中间的空格也不能省略,否则会出中间的空格也不能省略,否则会出现查找不到的情况。现查找不到的情况。一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务4-2】需要了解购买了需要了解购买了需要了解购买了需要了解购买了“红双喜牌兵乓球拍红双喜牌兵乓球拍红双喜牌兵乓球拍红双喜牌兵乓球拍”的订单号、订单时间和订单总金额。的订单号、订单时间和订单总金额。的订单号、订单时间和订单总金额。的订单号、订单时间和订单总金额。【提示提示】连接总是可以表示为子查询,子查询经常(但不总是)可以连接总是可以表示为子查询,子查询经常(但不总是)可以表示为连接。表示为连接。在一些必须检查存在性的情况中,使用连接会产生更好的性在一些必须检查存在性的情况中,使用连接会产生更好的性能。能。一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务4-3】需要了解购买了商品号为需要了解购买了商品号为需要了解购买了商品号为需要了解购买了商品号为“060001”060001”的的的的会员会员会员会员e_IDe_ID(会员号)、(会员号)、(会员号)、(会员号)、e_Namee_Name(会员名称)和(会员名称)和(会员名称)和(会员名称)和e_Addresse_Address(籍贯)。(籍贯)。(籍贯)。(籍贯)。一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务4-4】使用使用使用使用“=”=”完成完成完成完成“【任务任务任务任务4-24-2】”。(二)、使用比较运算符的子查询(二)、使用比较运算符的子查询一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务4-5】需要了解比籍贯为需要了解比籍贯为需要了解比籍贯为需要了解比籍贯为“湖南长沙湖南长沙湖南长沙湖南长沙”任一会任一会任一会任一会员年龄小的会员信息,查询结果按降序排列。员年龄小的会员信息,查询结果按降序排列。员年龄小的会员信息,查询结果按降序排列。员年龄小的会员信息,查询结果按降序排列。(三)、使用(三)、使用 ANY 或或 ALL 的子查询的子查询一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】请读者自行分析请读者自行分析“出生年月出生年月”和和“年龄年龄”的关系的关系以及比较的方法。以及比较的方法。事实上,用聚合函数实现子查询通常比直接用事实上,用聚合函数实现子查询通常比直接用ANYANY或或ALLALL查询效率要高。查询效率要高。如果将上例中的如果将上例中的ALLALL改为改为ANYANY,即只需要比最大的,即只需要比最大的小即可。反过来,如果是大于小即可。反过来,如果是大于ANYANY,则只需要大于,则只需要大于最小的即可。最小的即可。一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【任务任务4-6】针对针对针对针对EmployeesEmployees表中的每一名员工,表中的每一名员工,表中的每一名员工,表中的每一名员工,在在在在OrdersOrders表中查找处理过订单并且送货模式为表中查找处理过订单并且送货模式为表中查找处理过订单并且送货模式为表中查找处理过订单并且送货模式为“邮寄邮寄邮寄邮寄”的所有订单信息。的所有订单信息。的所有订单信息。的所有订单信息。(四)、使用(四)、使用 EXISTS 的子查询的子查询一、子查询类型一、子查询类型2024/7/2S SQ QL L S Se er rv ve er r案案 例例 教教 程程(2 20 00 08 8版版)【提示提示】使用存在量词使用存在量词EXISTSEXISTS后,若内层查询结果非空,则外层的后,若内层查询结果非空,则外层的WHEREWHER
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!