SQL数据库 数据的查询、汇总 、统计和分析

上传人:飞****9 文档编号:132643820 上传时间:2020-05-18 格式:DOC 页数:32 大小:135KB
返回 下载 相关 举报
SQL数据库 数据的查询、汇总 、统计和分析_第1页
第1页 / 共32页
SQL数据库 数据的查询、汇总 、统计和分析_第2页
第2页 / 共32页
SQL数据库 数据的查询、汇总 、统计和分析_第3页
第3页 / 共32页
SQL数据库 数据的查询、汇总 、统计和分析_第4页
第4页 / 共32页
SQL数据库 数据的查询、汇总 、统计和分析_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《SQL数据库 数据的查询、汇总 、统计和分析》由会员分享,可在线阅读,更多相关《SQL数据库 数据的查询、汇总 、统计和分析(32页珍藏版)》请在金锄头文库上搜索。

1、SQL Server数据库应用与开发第4稿 8 数据的查询、汇总 、统计和分析8. 数据的查询、汇总 、统计和分析本章主题l SELECT语句l 简单的SELECT查询l 设置查询结果的字段名l 关键字ALL和DISTINCT的使用l 查询结果的输出目的地l WHERE子句的条件搜索功能l SELECT的通配符l 字符和通配符冲突时的解决方法l 连接条件设置l 统计运算的高手:聚合函数l 数据分组小计l HAVING子句的使用l ORDER BY子句的使用l 查询名列前茅或落后者l 活用子查询(SubQuery)精彩内容不容错过!这一章是本课程的重点!本章将深入剖析SELECT命令。8.1.

2、SELECT命令SELECT是一个用来从一个或多个表中获取数据的SQL命令。8.2. 简单的SELECT查询如:USE NorthwindSQLSELECT 身份证号码,姓名,电话号码 - 这里是字段列表FROM 飞狐工作室SELECT命令至少包含: 要出现在查询结果中的字段列表,如:身份证号码,姓名,电话号码 字段来自哪些表,如:FROM 飞狐工作室 字段列表也可以是由字段、常量和函数组成的表达式 要列出所有字段,只须用 * 号8.3. 设置查询结果的字段名查询需求请从数据库pubs的authors表,查询出所有作者的代号、姓名、电话号码及住址,而且请使用中文文字作为查询结果的各字段名。解答

3、/* 脚本文件名: Demo91.sql */USE pubsSELECT 作者代号 = au_id, 姓名 = au_fname+au_lname, 电话号码 = phone, 住址 = address FROM authors或 (看看你更喜欢哪一种格式?)/* 脚本文件名: Demo92.sql */USE pubsSELECT au_id AS 作者代号, au_fname+au_lname AS 姓名, phone AS 电话号码, address AS 住址 FROM authors注意: 如果您设置的的字段名包含空格,则须加上单引号SELECT au_fname+au_lname

4、 AS Name of AuthorFROM authors任务:查询teacher表的姓名、性别和生日,列名用中文表示;查询class表的所有班级信息;查询teacher表的教师姓名和年龄。8.4. 关键字ALL和DISTINCT的使用1. 查询需求请列出“飞狐工作室”表中所有员工的雇用日期,但是日期相同者只列出一次即可。USE NorthwindSQLSELECT DISTINCT 雇用日期 FROM 飞狐工作室2. 查询需求请列出“飞狐工作室”表中有哪些部门。USE NorthwindSQLSELECT DISTINCT 部门 FROM飞狐工作室ALL为默认项,显示所有查询到的记录,包括

5、重复项。DISTINCT,对指定字段的内容相同的,仅显示一项。每个SELECT表达式只能有一个DISTINCT关键字。这意味着,DISTINCT是限制整条数据记录都重复者,只显示其中一条,而不是针对单一字段来处理。任务:请列出“章立民工作室”表中有哪些部门。列出teacher表中的教师职称。8.5. 查询结果的输出目的地为什么要讨论查询结果的输出目的地?答:可能希望将查询结果输出到某个存储处以便进行进一步的处理。举例说明INTO子句的用法: 将查询结果存储到当前数据库中的新表MyTmpTable中USE NorthwindSQLSELECT * INTO MyTmpTable FROM 飞狐工

6、作室注:INTO子句会生成相应的表,如果表已存在则提示错误“表已存在”。任务:把teacher表中的教师职称保存到新表教师职称表中。查询员工表中的职称,并存储到新表员工职称表中。8.6. WHERE子句的条件搜索功能1. 查询需求请列出“飞狐工作室”表中目前薪资大于60000的员工。/* 脚本文件名: Demo93.sql */USE NorthwindSQLSELECT 姓名,目前薪资 FROM 飞狐工作室 WHERE 目前薪资 600002. 查询需求请列出“飞狐工作室”表在信息部、行销部和业务部等3个部门任职的员工姓名。/* 脚本文件名: Demo94.sql */USE Northwi

7、ndSQLSELECT 姓名,部门 FROM 飞狐工作室 WHERE 部门 IN (资讯部,行销部,业务部)3. 查询需求请列出“飞狐工作室”表在信息部、行销部和业务部等3个部门以外任职的员工姓名。/* 脚本文件名: Demo95.sql */USE NorthwindSQLSELECT 姓名,部门 FROM 飞狐工作室 WHERE 部门 NOT IN (资讯部,行销部,业务部)4. 查询需求请列出“飞狐工作室”表中,本月出生的员工姓名和出生日期。/* 脚本文件名: Demo910.sql */USE NorthwindSQLSELECT 姓名,出生日期 FROM 飞狐工作室 WHERE MO

8、NTH(出生日期) = MONTH(GETDATE()5. 查询需求请列出“飞狐工作室”表中,年龄大于20岁的每一位员工的姓名。/* 脚本文件名: Demo911.sql */USE NorthwindSQLSELECT 姓名 FROM 飞狐工作室 WHERE DATEDIFF(year,出生日期,GETDATE()20任务:查询章立民工作室中已婚的员工信息;查询“飞狐工作室”表中行销部的员工信息;查询06010111班或者07010211班的学生信息;查询成绩在80分以下的学生选课信息;查询年龄超过50岁的女教师信息;查询出生日期在1970到1980年之间的教师信息。8.7. SELECT的

9、通配符共有5个通配符。*(星号) 用于字段列表,代表源表中的所有的字段/* 脚本文件名: Demo913.sql */USE NorthwindSQL-连接两张表“客户”表和“订货主档”表SELECT * FROM 客户 INNER JOIN 订货主档 ON 客户.客户编号 = 订货主档.客户编号 WHERE 订货主档.订单日期 BETWEEN 08/01/1996 AND 08/31/1996/* 脚本文件名: Demo914.sql */USE NorthwindSQLSELECT 客户.公司名称,订货主档.* FROM 客户 INNER JOIN 订货主档 ON 客户.客户编号 = 订货

10、主档.客户编号 WHERE 订货主档.订单日期 BETWEEN 08/01/1996 AND 08/31/1996%(百分号) 只能用在WHERE子句中,代表0个或0个以上的字符。如:ABC%代表ABC开头的字符串。 百分号通常与运算符LIKE搭配使用。/* 脚本文件名: Demo915.sql */USE NorthwindSQLSELECT 姓名 FROM 飞狐工作室 WHERE 姓名 LIKE %光% -表示查询姓名中包含“光”字的记录任务:查询“飞狐工作室”表中住在北京市的的员工信息;查询教师表中姓杜的教师信息;查询professional表中专业名称包含计算机的专业信息。_(下划线)

11、 只能用在WHERE子句中,代表1个字符。如:_A%代表第二个字符为A的字符串。 下划线通常与运算符LIKE搭配使用。 USE NorthwindSQL SELECT 姓名 FROM 飞狐工作室 WHERE 姓名 LIKE _建_(中括号) 只能用在WHERE子句中,用来限定任何一个单个字符介于指定的范围或集合中。 通常与运算符LIKE搭配使用。/* 脚本文件名: Demo923.sql */USE pubsSELECT au_fname,au_lname FROM authors WHERE au_lname LIKE P-Zinger -表示第一个字符为PZ之间且后五个字符为inger/*

12、 脚本文件名: Demo924.sql */USE NorthwindSQLSELECT 姓名 FROM 飞狐工作室 WHERE 姓名 LIKE ACD张李% -表示什么? ORDER BY 姓名任务:查询学号尾号为1、3、5、7、9的学生信息。(中括号中包含号) 只能用在WHERE子句中,用来限定任何一个单个字符不介于指定的范围或集合中。 通常与运算符LIKE搭配使用。/* 脚本文件名: Demo927.sql */USE pubsSELECT au_fname,au_lname FROM authors WHERE au_fname LIKE H-Kichel -首字母不介于HK之间且后为

13、ichel/* 脚本文件名: Demo930.sql */USE NorthwindSQLSELECT 身份证号码,姓名 FROM 飞狐工作室 WHERE 身份证号码 LIKE ALM% -这个表示什么意思?任务:查询学号尾号不为1、3、5、7、9的学生信息。8.8. 字符和通配符冲突时的解决方法可以使用ESCAPE子句通知SQL Server哪一个字符是常量字符而并非通配符。用专业术语来说,ESCAPE子句所指定的字符称为“转义符”。/* 脚本文件名: Demo920.sql */USE NorthwindSQLSELECT 姓名, 家庭地址 FROM 飞狐工作室 WHERE家庭地址 LIK

14、E %_% ESCAPE -通知符号后的字符并非通配符,即查询住址中带下划线的记录8.9. 连接条件设置本节内容太重要了!看如下代码,如果TableA有M条记录,TableB有N条记录,则查询结果共有MN条记录:SELECT * FROM TableA,TableB或SELECT * FROM TableA CROSS JOIN TableB为了避免出现上述情况,有4种连接类型可以选择: INNER JOIN特点:查询结果仅包含连接表中彼此相对应的数据记录。/* 脚本文件名: Demo933.sql 本例用于查看每一位客户的订货情况但是,并未下订单的客户不会出现在查询结果中!*/USE NorthwindSQLSELECT 客户.客户编号, 客户.公司名称, 客户.联系人, 客户.电话, 订货主档.订单号码, 订货主档.订单日期, 订货主档.要货日期, 订货主档.送

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号