2021-4-12课程——SQL Server查询【5】+数据更新+空值处理+视图

本篇涉及内容较多,有集合查询,基于派生表的查询,数据更新操作(增删改),空值的处理和视图。总结顺序也是按照这个顺序。
一、集合查询

集合操作主要包括并操作UNION、交操作INTERSECT和差操作EXCEPT
PS:参加集合操作的各查询结果的列数必须相同,对应项的数据类型也必须相同

例1:查询计算机科学系的学生及年龄不大于19岁的学生。
即查询计算机科学系的学生和年龄不大于19岁的学生,很明显是一个并操作。使用union时,系统会自动去掉重复元组,如果要保留重复元组则需要使用union all操作符

使用union

select *
from Student
where Sdept='CS'
union
select *
from Student
where Sage<=19;

在这里插入图片描述

使用union all并对比

select *
from Student
where Sdept='CS'
union all
select *
from Student
where Sage<=19;

在这里插入图片描述

例2:查询选修了课程1或者选修了课程2的学生

select Sno
from SC
where Cno='1'
union
select Sno
from SC
where Cno='2';

也可使用or

select distinct Sno -- 使用distinct去重
from SC
where Cno='1' or Cno='2';

例3:查询计算机科学系的学生与年龄不大于19岁的学生的交集

select *
from Student
where Sdept='CS'
intersect
select *
from Student
where Sage<=19;

在这里插入图片描述

例4:查询既选修了课程1又选修了课程2的学生

select Sno
from SC
where Cno='1'
intersect
select Sno
from SC
where Cno='2';

在这里插入图片描述
上述语句也可更改为

select Sno
from SC
where Cno='1' and Sno in
	(select Sno
	from SC
	where Cno='2');

例4:查询计算机科学系的学生与年龄不大于19岁的学生的差集
含义即为在计算机科学系的学生中去掉年龄不大于19岁的

select *
from Student
where Sdept='CS'
except
select *
from Student
where Sage<=19;

在这里插入图片描述

二、基于派生表的查询

子查询不仅可以出现在where子句中,还可以出现在from子句中,这时子查询生成的临时派生表成为主查询的查询对象。

例1:查询每个学生超过自己选修课程平均成绩的课程号

该句中的子查询生成了一个派生表Avg_sc,记录了每个学生的学号和平均成绩。

select Sno,Cno
from SC,(select Sno,avg(Grade)
		 from SC
		 group by Sno)
		 as Avg_sc(avg_sno,avg_grade)
where SC.Sno=Avg_sc.avg_sno
and SC.Grade>=Avg_sc.avg_grade;

在这里插入图片描述
如果子查询中有聚集函数,则需要指定列名(如例1),否则不是必须。

例2:查询所有选修了1号课程的学生姓名

select Sname
from Student,(select Sno
			  from SC
			  where Cno='1')
			  as SCI
where Student.Sno=SCI.Sno;
三、数据更新
1.插入数据

直接插入数据在之前的博客中已经总结过,不再赘述,放上链接

SQL Server——索引+基于单表的数据插入与简单查询【1】

下面总结插入子查询结果的插入

例:对每一个系,求学生的平均年龄,并把结果存入数据库

①首先新建一个表,其中一个存放系名,另一列存放相应的学生的平均年龄

vcreate table Dept_age
(Sdept char(15),
Avg_age smallint);

②对Student表按系分组求平均年龄,再把系名和平均年龄存入新表中

insert 
into Dept_age(Sdept,Avg_age)
select Sdept,avg(Sage)
from Student
group by Sdept;

在这里插入图片描述

2.修改数据
2.1修改某一个元组的值

例:将学生201215121的年龄改为22岁

update Student
set Sage=22
where Sno='201215121';

在这里插入图片描述

2.2修改多个元组的值

例:将所有学生的年龄增加1岁

update Student
set Sage=Sage+1;

在这里插入图片描述

2.3带子查询的修改语句

例:将计算机科学系全体学生的成绩置0

update SC
set Grade=0
where Sno in
	(select Sno
	 from Student
	 where Sdept='CS');

在这里插入图片描述

3.删除数据

使用delete关键字,使用where限制条件,如果没有则表示删除表中所有元组,但表的定义仍在字典中。即delete语句删除的是表中的数据,而不是关于表的定义。

3.1删除某一个元组

例:删除学号为201215128的学生纪录

delete
from Student
where Sno='201215128';

在这里插入图片描述

3.2删除多个元组的值

例:删除所有的学生选课记录

delete
from SC;
3.3带子查询的删除语句

例:删除计算机科学系所有学生的选课记录

delete
from SC
where Sno in
	(select Sno
	 from Student
	 where Sdept='CS');
四、空值的处理
1.数据库中的空值即NULL,它有三种含义:不知道、不存在、无意义。SQL语言中允许某些元组的某些属性在一定情况下取空值,一般有以下三种情况。

①该属性应该有一个值,但目前不知道它的具体值。如,某学生的年龄属性,因为学生登记表漏填了,不知道该学生年龄,因此取空值。
②该属性不应该存值。例如,缺考学生的成绩为空,因为他没有参加考试。
③由于某种原因不便于填写。如一个人的电话号码等涉及个人隐私的内容。

2.空值的判断

使用is nullis not null

例:从Student表中找出漏填了数据的学生信息

select *
from Student
where Sname is null or Ssex is null or Sage is null or Sdept is null;
3.空值的约束条件

属性定义(或者域定义)中有not null约束条件的不能取空值,加了unique限制的属性不能取空值,码属性不能取空值。
空值与另一个值(包括另一个空值)的算术运算结果为空值,空值与另一个值(包括另一个空值)的比较运算的结果为unknown。在查询语句中,只有使where和having子句中的选择条件为true的元组才被选出作为输出结果

例1:找出选修1号课程的不及格的学生

select Sno
from SC
where Grade<60 and Cno='1';

选出的学生是那些参加了考试(Grade属性为非空值)而不及格的学生,不包括缺考的学生。因为前者使条件Grade<60的值为true,后者使条件的值为unknown。

例2:选出选修1号课程的不及格的学生以及缺考的学生

select Sno
from SC
where Grade<60 and Cno='1'
union
select Sno
from SC
where Grade is null and Cno='1';

上述语句等价于

select Sno
from SC
where Cno='1' and (Grade<60 or Grade is NULL);
五、视图

视图是从一个或及格基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍然存放在基本表中。所以一旦基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。视图一经定义,就可以和基本表一样被查询、被删除。也可以在一个视图之上再定义新的视图。

1.定义视图
1.1建立视图

create view<视图名> [(<列名> [,<列名>]…)]
as <子查询>
[vith check option];

with check option表示对视图进行update,insert和delete操作时要保证更新、插件或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。组成视图的属性列名或者全部省略或者全部指定,没有第三种选择。如果省略了,则隐含该视图由子查询中的select子句目标列中的诸字段组成,但在下列三种情况必须明确指定组成视图的所有列名。
(1)某个目标列不是单纯的属性名,而是聚集函数或列表达式
(2)多表连接时选出了几个同名列做出视图的字段
(3)需要在视图中为某个列启用新的更合适的名字

例1:建立信息系学生的视图

create view IS_Student
as
select Sno,Sname,Sage
from Student
where Sdept='IS';

在这里插入图片描述
关系数据库管理系统执行create view语句的结果只是把视图的定义存入数据字典,并不执行其中的select语句。只是在堆视图进行查询时,才按视图的定义从基本表中将数据查出。

例2:建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生

create view IS_Student
as
select Sno,Sname,Sage
from Student
where Sdept='IS'
with check option;

加上了with check option,这样以后在对该视图进行插入、修改和删除操作时,关系数据库管理系统会自动加上Sdept='IS’的条件。

行列子集视图:一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码。

例3:建立信息系选修了1号课程的学生的视图(包括学号、姓名、成绩)

create view IS_S1(Sno,Sname,Grade)
as
select Student.Sno,Sname,Grade
from Student,SC
where Sdept='IS' and Student.Sno=SC.Sno and SC.Cno='1';

在这里插入图片描述

视图不仅可以建立在一个或多个基本表上,也可以建立在一个或多个已定义好的视图上,或建立在基本表与视图上。

例4:建立信息系选修了1号课程且成绩在90分以上的学生的视图

create view IS_S2
as
select Sno,Sname,Grade
from IS_S1
where Grade>=90;

在这里插入图片描述

例5:定义一个反映学生出生年份的视图

派生属性列,实际并不存在,也称虚拟列,带虚拟列的视图也称为带表达式的视图。

create view BT_S(Sno,Sname,Sbirth)
as
select Sno,Sname,2021-Sage
from Student;

例6:将学生的学号及平均成绩定义为一个视图

分组视图:带有聚集函数和group by子句的视图。通过聚集函数得到的目标列必须明确定义各个属性列名。

create view S_G(Sno,Gavg)
as
select Sno,avg(Grade)
from SC
group by Sno;

例7:将Student表中所有女生记录定义为一个视图

create view F_Student(F_sno,F_name,F_sex,F_age,F_dept)
as
select *
from Student
where Ssex='女';
1.2删除视图

drop view <视图名> [cascade];

例:删除视图BT_S和视图IS_S1

drop view BT_S;
drop view IS_S1;
2.查询视图

例1:在信息系学生的视图中找出年龄小于20岁的学生

select Sno,Sname
from IS_Student
where Sage<20;

在这里插入图片描述

视图消解:(关系数据库)在对视图进行查询时,首先进行有效性检查,检查涉及的表和视图等是否存在。若存在,则从数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,然后再执行修正了查询。

例2:查询选修了1号课程的信息系学生

select IS_Student.Sno,Sname
from IS_Student,SC
where IS_Student.Sno=SC.Sno and SC.Cno='1';

例3:在S_G视图中查询平均成绩在80分以上的学生的学号和平均成绩(并未出问题。。就很迷)

select *
from S_G
where Gavg>=80

等价于

select *
from (select Sno,avg(Grade)
from SC
group by Sno) as S_G(Sno,Gavg)
where Gavg>=80;

在这里插入图片描述

3.更新视图

概念:是指通过视图来插入、删除和修改数据,由于视图是不是存储数据的虚表,所以对视图的更新最终要转换为对基本表的更新。为了提高安全性,可以在定义视图时加上with check option子句,这样只有满足条件时才会执行。

例1:将信息系学生视图IS_Student中学号为“201215125”的学生姓名改为“刘辰”

update IS_Student
set Sname='刘辰'
where Sno='201215125';

在这里插入图片描述

例2:向信息系学生视图IS_Student中插入一个新的学生记录,其中学号为“201215129”,姓名为“赵新”,年龄为20岁

insert into
IS_Student
values('201215129','赵新',20);

在该视图中会发现并没有这条数据,而在基本表中是有的,下面这张图片就是。百度了一下,我都醉了,这T-SQL和标准SQL的差别也真是。。书上说的和实际的操作很多东西差别都很大。。

在sql2008中向视图插入数据发生错误
在这里插入图片描述
解决办法:
①重新建立视图

create view IS_Student(Sno,Sname,Sage,Sdept)
as
select Sno,Sname,Sage,Sdept
from Student
where Sdept='IS';

②插入数据

insert into
IS_Student
values('201215129','赵新',20,'IS');

插入成功!
在这里插入图片描述

例3:删除信息系学生视图IS_Student中学号为“201215129”的记录

delete
from IS_Student
where Sno='201215129';

没有赵新了!
在这里插入图片描述

4.视图的作用

①视图能够简化用户的操作
视图机制使用用户将注意力集中在所关心的数据上,可以简化用户的数据查询操作。

②视图使用户能以多种角度看待同一数据
视图机制能使不同的用户以不同的方式看待同一数据,有很大的灵活性。

③视图对重构数据库提供了一定程度的逻辑独立性
关系数据库中,新建立的视图定义为用户原来的关系,使使用的外模式保持不变,用户的应用程序通过视图仍然能够查找数据。

④视图能够对机密数据提供安全保护
对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上。

⑤适当利用视图可以更清晰地表达查询
因为视图是简化了之后的查询,所以查询起来更加容易。

六、课程总结
感觉T-SQL和标准SQL的差别还挺大的,许多问题需要自己实践发现并想办法解决。问题和要记忆的很多,许多东西要经常回顾,联想到一起效果会更好。
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
河南机电高等专科学校 《企业中小型数据库系统开发能力实训》 报告 设计题目: 学生成绩管理系统 系 部: 计算机科学与技术系 年 级: 2014级 专业班级: 姓 名: 学 号: 设 计 时 间: 2015.6.23-2015.6.26 "总 成 绩 " " "教师签名 " " " " " 1、目的 通过本次实训,运用数据库原理及应用课程的基本知识构建一个可用的数据库,通 过实现,加强对数据库的认识与理解。 1.掌握在分析用户需求的基础上,使用SQL Server 2005设计符合实际应用的数据库 的方法和步骤。 2.掌握数据库及其相应对象的创建方法。 2、要求 使用用SQL Server 2005建立某个管理系统的数据库,其中要求包含所学的其他的数 据库对象,使其能够完成一定的功能。 1.建立5张以上的用户表,表之间有一定联系,以保证参照完整性; 2.表中某些列的值要唯一但允许空值,某些列的值要唯一而且不允许空值; 3.给表上建立两个以上的约束(类型、条件等自定),使表中的某些列满足一定的 条件; 4.给经常查询的列建立一个索引; 5.建立两张以上的视图,使用户能查看部分数据; 6.建立至少三个触发器、两个存储过程加强表之间的数据完整性、一致性约束; 7.创建三个游标; 8.写出不少于6个SELECT语句(其中要有不少于2个的嵌套查询),并要附上题目和 查询结果; 9.写出不少于4个的数据更新语句; 10.写出实训过程中所涉及的知识点及难点,碰到的问题和解决办法以及实训体会。 3、步骤 1.需求分析 高校学生的成绩管理工作量大、繁杂、人工处理非常困难。学生成绩管理系统借助 于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学 生成绩管理系统的运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩 管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判 断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境 。 数据需求 能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相 应时间要短。 功能描述 具体功能包括:系统应该提供课程安排数据的插入、删除、更新查询:成绩的添加 、修改、删除、查询学生基本信息查询的功能。 2.概念结构设计 画E-R模型 学号 图1-1学生实体E-R图 职称 图1-2教师实体E-R图 学分 图1-3课程实体E-R图 成绩 图1-4成绩实体E-R图 图1-5全局E-R图 3.逻辑结构设计 将图1-5全局E-R图转换为关系模型: 在本课程设计中,存在四个实体(学生,教师,课程,成绩),三个联系(考试, 考试,考试),在学生实体中,学号作为其关键字;在教师实体中,教师编号作为其关键 字;在课程实体中,课程编号作为其关键字;在成绩实体中,学号作为其关键字。实体 关系模式: 学生(学号,姓名,性别,出生日期,院系名称,出生地,入学时间,政治面貌) 教师(教师编号,姓名,性别,出生日期,院系名称,职称,学历) 课程课程号,课程名,学分) 成绩(课程号,学号,教师编号,成绩,) 4.物理结构设计 将逻辑结构设计的关系模型转换为物理数据库,即具体的RDBMS中所支持的关系模型 ——表。在SQL Server 2005数据库管理系统中创建学生表,教师表,课程表和成绩表。表结构分别如表1- 6~表1-9所示 表1-6学生表 "列名 "数据类型 "是否允许为空 "默认值 "是否主键 " "学号 "Cher(5) "不允许 " "是 " "姓名 "Cher(6) "不允许 " " " "性别 "Cher(2) "允许 "'男' " " "出生日期 "smalldatetime "允许 " " " "院系名称 "Cher(20) "不允许 " " " "入学时间 "smalldatetime "允许 " " " "出生地 "Cher(20) "允许 " " " "政治面貌 "Cher(4) "允许 " " " " " " " " " 表1-7教师表 "列名 "数据类型 "是否允许为空 "默认值 "是否主键 " "教师编号 "Cher(5) "不允许 " "是 " "姓名 "Cher(6) "不允许 " " " "性别 "Cher(2) "允许 "'男' " " "出生日期 "smalldatetime "允许 " " " "院系名称 "Cher(20) "不允许 " " " "职称 "smalldatetime "允许 " " " "学历 "Cher(20) "允许 " " " " " " " " " 表1-8课程表 "列名 "数据类型 "是否允许为空 "默认值 "是否主键 " "课程号 "Cher(5) "不允许 " " " "
Excel 2007数据透视表完全剖析 5/7 完整清晰版 PDF ,有目录。共 100MB,分为7个分卷 Excel 2007 数据透视表完全剖析 OFFICE2007 作者:(美)杰莱(Jelen,B.),(美)亚历山大(Alexander,M.) 著,潘洪涛,解巧云 译 出版社:人民邮电出版社 出版日期:2008-2-1 ISBN:9787115171962 字数:496000 页码:301 -------------------------------------------------------------------------------- 高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据数据视图,利用VBA实现自动化,Excel服务器,熟悉功能区。   “使用没有数据透视表的电子表格软件就像使用没有生火的壁炉。Bill和Mike提供了进一步理解数据的潜能。本书用浅显易懂的方法,以及适合专业人士的小篇幅论述了功能强大、容易理解的指令。”     ——菲利普服务公司产品服务组CEO,Bruce Roberson “在如今这个有太多数据和太少时间的时代,本书非常专业地提供了内容丰富的数据透视表教程,让我们可以更高效地利用自己的数据和时间。”     ——德勒咨询公司高级经理,Kameron Yu   本书集中了数据透视表所有优秀的功能,是一本内涵丰富的指南,提供了日常问题的解决方案。 只需学习前2章就可以掌握如何创建基本的数据透视表并提高生产率,在数分钟内生成报表。 在前6章内可以学会使用数据透视表快速突出显示排名前1O的客户或者收益率排在后5位的产品;快速创建分析结果,根据产品或者地区,或同时根据这二者来对比本阶段与上一阶段的销售额;单击几下鼠标,而不需要了解任何公式,就可以方便地按月、按季度或者按年汇总交易数据。 读完本书,您将成为数据透视表的真正权威,能够利用VBA使数据透视表自动化,用OLAP多维数据集创建外部数据数据透视表,甚至创建动态报表系统。让企业经理单击几下鼠标就可以自己找到问题的答案。   ·利用大量数据透视表的诀窍;   ·在数秒钟内创建功能强大的汇总报表:   ·方便地构建高级(ad-hOC)查询工具:   ·增强执行报表的能力;   ·筛选出前10位客户或者产品的报表:   ·将动态图表添加到报表中;   ·按月、按季度或者按年快速汇总日常数据。 在目前的电子表格软件中,Microsoft公司的Excel无疑是人们用得最多的。但是普遍认为大约50%的Excel用户只利用了20%的Excel功能,要真正发挥Excel强大的功能,数据透视表无疑是必须掌握的。本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的透视表问题。   本书由Mr.Excel等经验丰富的Excel专家执笔,图文并茂,内容详实,并在相关网站上提供了书中示例使用的Excel文件,可供读者练习操作时使用,非常适合中、高级Excel用户,以及公司中需要大量统计报表的工作人员。 第1章 数据透视表基础 1 1.1 什么是数据透视表 1 1.2 为什么应该使用数据透视表 2 1.3 何时应该使用数据透视表 4 1.4 数据透视表的结构 4 1.4.1 值区域 4 1.4.2 行区域 5 1.4.3 列区域 5 1.4.4 报表筛选区域 6 1.5 数据透视表的幕后 7 1.6 对数据透视表报表的限制 7 1.7 下一步 9 第2章 创建基本数据透视表 11 2.1 为数据透视表报表准备数据 11 2.1.1 确保数据以表格形式布局 12 2.1.2 避免在分节标题中存储数据 12 2.1.3 避免重复组作为列 13 2.1.4 消除数据源中的空白和空单元格 13 2.1.5 应用适当的类型格式于字段 14 2.1.6 有效的数据源设计概要 14 2.2 案例学习:清除数据用于数据透视表分析 15 2.3 创建基本数据透视表 16 2.3.1 添加字段到报表中 19 2.3.2 增加数据透视表的层次 22 2.3.3 重新排列数据透视表 22 2.3.4 创建报表筛选 23 2.4 案例学习:依据市场分析行为 25 2.5 与数据源保持一致 29 2.5.1 对现有数据源已经进行修改 29 2.5.2 数据源的范围已经随着行或者列的增加而扩大 29 2.6 共享数据透视表缓存 30 2.7 利用新的数据透视表工具节约时间 31 2.7.1 推迟布局更新 31 2.7.2 利用一次单击从头开始 32 2.7.3 重新定位数据透视表 33 2.8 下一步 33 第3章 自定义数据透视表 35 3.1 改变常用修饰 36 3.1.1 应用表格样式恢复网格线 37 3.1.2 修改数字格式来添加千位分隔符 38 3.1.3 用0代替空值 39 3.1.4 修改字段名称 41 3.2 改变布局 42 3.2.1 使用新的压缩形式布局 42 3.2.2 使用大纲形式的布局 44 3.2.3 使用传统的表格形式布局 44 3.3 案例学习 46 3.4 利用样式和主题自定义数据透视表的外观 50 3.4.1 自定义样式 52 3.4.2 修改未来数据透视表的默认样式 53 3.4.3 用文档主题修改样式 54 3.5 修改汇总计算 55 3.5.1 了解空单元格会导致计数的原因 55 3.5.2 使用除计数或求和之外的其他函数 56 3.6 添加和删除分类汇总 58 3.6.1 有许多行字段时,禁止分类汇总 58 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和 62 3.7.4 确定每一行业务对总计的贡献大小 62 3.7.5 创建季节性报表 63 3.7.6 用占总和的百分比选项度量两个字段的百分比 63 3.7.7 使用百分比选项将一行与另一行进行对比 65 3.7.8 利用指数选项跟踪相对重要性 65 3.8 案例学习:根据业务报表的行计算收入 67 3.9 下一步 71 第4章 控制查看视图数据的方法 73 4.1 组合数据透视表字段 73 4.1.1 组合日期字段 74 4.1.2 按月组合时包含年 75 4.1.3 按周组合日期字段 76 4.1.4 在一个报表中组合两个日期字段 77 4.2 案例学习:创建订单时间间隔报表 78 4.3 案例学习:组合文本字段 80 4.4 查看数据透视表字段列表 82 4.4.1 停靠和浮动数据透视表字段列表 82 4.4.2 重新排列数据透视表字段列表 83 4.4.3 使用区域节下拉菜单 83 4.4.4 使用字段下拉菜单 84 4.5 对数据透视表中的数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 使用自定义序列排序 91 4.6 对数据透视表中的数据进行筛选 92 4.6.1 添加字段到报表筛选区域 92 4.6.2 从报表筛选区中选择一项 94 4.6.3 从报表筛选区中选择多项 94 4.6.4 快速选择或清除所有筛选项 96 4.6.5 使用字段列表筛选 96 4.6.6 使用标签筛选 98 4.6.7 使用日期筛选 99 4.6.8 使用值筛选 101 4.7 案例学习:创建10个最大值的报表 102 4.8 下一步 104 第5章 在数据透视表内进行计算 105 5.1 计算字段与计算项简介 105 5.1.1 方法1:手工添加计算字段到数据源中 106 5.1.2 方法2:在数据透视表外使用公式创建计算字段 107 5.1.3 方法3:直接在数据透视表内插入计算字段 108 5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 122 5.5.3 使用工作表函数 122 5.5.4 使用常量 123 5.5.5 引用总计 123 5.5.6 计算字段专用规则 123 5.5.7 计算项专用规则 124 5.6 管理和维护数据透视表计算 125 5.6.1 编辑和删除数据透视表计算 125 5.6.2 改变计算项的求解次序 126 5.6.3 提供公式的说明文档 127 5.7 下一步 128 第6章 使用数据视图和其他可视化工具 129 6.1 什么是真正的数据视图 129 6.2 创建第一个透视图表 130 6.3 牢记数据视图规则 133 6.3.1 修改基础数据透视表影响数据视图 133 6.3.2 数据透视表中数据字段的放置可能不一定最适合数据视图 133 6.3.3 Excel 2007中仍然存在的少量格式限制 135 6.4 案例学习:创建显示产品发货频率和收入分布情况的报表 136 6.5 能够替代使用数据视图的其他办法 141 6.5.1 方法1:把数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据视图 143 6.5.3 方法3:分发数据视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 使用条件格式处理数据透视表 146 6.7 下一步 153 第7章 借助数据透视表对不同的数据源进行分析 155 7.1 使用多重合并计算数据区域 156 7.2 多重合并计算数据区域的数据透视表的详细分析 161 7.2.1 “行”字段 162 7.2.2 “列”字段 162 7.2.3 “值”字段 162 7.2.4 页字段 163 7.2.5 重新定义数据透视表 164 7.3 案例学习:合并和分析数据集 164 7.4 使用外部数据源构建数据透视表 167 7.4.1 使用MicrosoftAccess数据构建数据透视表 167 7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel 2007的兼容模式 176 8.1.3 版本为12数据透视表没有降级方法 176 8.1.4 共享数据透视表的策略 177 8.2 将数据透视表另存为网页 177 8.3 将数据透视表发布到Excel Services 179 8.3.1 使用Excel Services显示电子表格的要求 180 8.3.2 为Excel Services准备电子表格 180 8.3.3 将电子表格发布到Excel Services 181 8.3.4 Excel Services中最终用户可以执行的操作 183 8.3.5 使用Excel Services不能执行的操作 183 8.3.6 在浏览器中查看数据透视表 184 8.4 下一步 185 第9章 使用和分析OLAP数据 187 9.1 什么是OLAP 187 9.2 连接到OLAP多维数据集 188 9.3 理解OLAP多维数据集的结构 191 9.4 理解OLAP数据透视表的局限性 192 9.5 创建脱机多维数据集 193 9.6 摆脱具有多维数据集函数的数据透视表模板 196 9.7 下一步 198 第10章 借助宏改善数据透视表报表 199 10.1 为什么对数据透视表报表使用宏 199 10.2 录制第一个宏 200 10.3 创建带有表单控件的用户界面 202 10.4 改变已录制的宏以添加功能 204 10.5 案例学习:借助一个组合框将两个数据透视表同步 208 10.6 下一步 213 第11章 使用VBA创建数据透视表 215 11.1 VBA简介 215 11.1.1 在Excel中启用VBA 215 11.1.2 启用开发工具功能 216 11.1.3 Visual Basic编辑器 217 11.1.4 Visual Basic工具 217 11.1.5 宏录制器 218 11.1.6 理解面向对象编码 218 11.2 学习技巧 219 11.2.1 编写代码处理任意大小的数据区域 219 11.2.2 使用超变量:对象变量 220 11.3 Excel的版本 220 11.4 使用Excel VBA构建数据透视表 223 11.4.1 用“求和项”取代“计数项” 225 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 11.5.3 使用AutoSort控制排序 232 11.5.4 更改默认的数字格式 232 11.5.5 禁用多个行字段的分类汇总功能 233 11.5.6 禁用行总计 233 11.6 创建最终报表要处理的一些问题 234 11.6.1 创建一个新的工作簿来保存报表 234 11.6.2 在空白报表工作表上创建摘要 235 11.6.3 填充大纲视图 235 11.6.4 处理最终格式 236 11.6.5 添加分类汇总 237 11.6.6 将所有步骤汇总 238 11.7 处理两个以上数据字段的问题 241 11.7.1 计算数据字段 243 11.7.2 计算项 245 11.8 使用分组汇总数据字段 247 11.9 使用高级数据透视表技术 251 11.9.1 使用AutoShow生成执行概要 251 11.9.2 使用ShowDetail过滤记录集 254 11.9.3 为每个区域或模型创建报表 256 11.9.4 手动筛选数据透视表中两个以上的项 260 11.10 手动控制排序方式 261 11.11 使用求和、平均值、计数、最小值、最大值等 261 11.12 创建报表百分比 262 11.12.1 占总量百分比 263 11.12.2 月增长率 263 11.12.3 特定项的百分比 263 11.12.4 汇总 264 11.13 使用Excel 2007中数据透视表的新功能 264 11.13.1 使用新筛选器 265 11.13.2 应用表格样式 269 11.13.3 更改布局 270 11.13.4 应用数据可见形式 271 11.13.5 理解Excel 97 273 11.14 下一步 274 第12章 数据透视表的常见问题 275 12.1 数据透视表常见问题诊断 275 12.1.1 我总是遇到错误“数据透视表 字段名无效” 275 12.1.2 刷新数据透视表时数据消失了 276 12.1.3 我的数据透视表总是使用“计数”而不使用“求和” 276 12.1.4 我的数据透视表总是将工作簿中的列调整为最适合标题的列宽 276 12.1.5 “推迟布局更新”选项锁住了排序、刷选、分组等功能 277 12.1.6 老版本的Excel无法正常地打开数据透视表 277 12.1.7 在试图给字段分组时得到一个错误消息 278 12.1.8 我的数据透视表将同一个数据项显示两次 278 12.1.9 删除的数据项仍然显示在筛选区域中 279 12.1.10 刷新了数据透视表,然后计算字段显示为错误值 280 12.2 数据透视表常见问题解答 281 12.2.1 怎样让数据透视表自动刷新 281 12.2.2 怎样才能同时刷新一个工作簿中的所有数据透视表 281 12.2.3 怎样使用一种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多列中行字段留下的空单元格 285 12.2.7 为什么我的数据透视表对于某些数据项不包含月 286 12.2.8 怎样将一个排名数值字段添加到数据透视表 288 12.2.9 怎样隐藏数据透视表中的计算错误 290 12.2.10 怎样使数据透视表报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视表 292 12.2.12 怎样避免不断地重定义数据透视表的数据区域 294 附录A 查找选项卡上的数据透视表命令 297 A.1 插入数据透视表 297 A.2 从传统的数据透视表工具栏中查找命令 298
Excel 2007数据透视表完全剖析 4/7 完整清晰版 PDF ,有目录。共 100MB,分为7个分卷 Excel 2007 数据透视表完全剖析 OFFICE2007 作者:(美)杰莱(Jelen,B.),(美)亚历山大(Alexander,M.) 著,潘洪涛,解巧云 译 出版社:人民邮电出版社 出版日期:2008-2-1 ISBN:9787115171962 字数:496000 页码:301 -------------------------------------------------------------------------------- 高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据数据视图,利用VBA实现自动化,Excel服务器,熟悉功能区。   “使用没有数据透视表的电子表格软件就像使用没有生火的壁炉。Bill和Mike提供了进一步理解数据的潜能。本书用浅显易懂的方法,以及适合专业人士的小篇幅论述了功能强大、容易理解的指令。”     ——菲利普服务公司产品服务组CEO,Bruce Roberson “在如今这个有太多数据和太少时间的时代,本书非常专业地提供了内容丰富的数据透视表教程,让我们可以更高效地利用自己的数据和时间。”     ——德勒咨询公司高级经理,Kameron Yu   本书集中了数据透视表所有优秀的功能,是一本内涵丰富的指南,提供了日常问题的解决方案。 只需学习前2章就可以掌握如何创建基本的数据透视表并提高生产率,在数分钟内生成报表。 在前6章内可以学会使用数据透视表快速突出显示排名前1O的客户或者收益率排在后5位的产品;快速创建分析结果,根据产品或者地区,或同时根据这二者来对比本阶段与上一阶段的销售额;单击几下鼠标,而不需要了解任何公式,就可以方便地按月、按季度或者按年汇总交易数据。 读完本书,您将成为数据透视表的真正权威,能够利用VBA使数据透视表自动化,用OLAP多维数据集创建外部数据数据透视表,甚至创建动态报表系统。让企业经理单击几下鼠标就可以自己找到问题的答案。   ·利用大量数据透视表的诀窍;   ·在数秒钟内创建功能强大的汇总报表:   ·方便地构建高级(ad-hOC)查询工具:   ·增强执行报表的能力;   ·筛选出前10位客户或者产品的报表:   ·将动态图表添加到报表中;   ·按月、按季度或者按年快速汇总日常数据。 在目前的电子表格软件中,Microsoft公司的Excel无疑是人们用得最多的。但是普遍认为大约50%的Excel用户只利用了20%的Excel功能,要真正发挥Excel强大的功能,数据透视表无疑是必须掌握的。本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的透视表问题。   本书由Mr.Excel等经验丰富的Excel专家执笔,图文并茂,内容详实,并在相关网站上提供了书中示例使用的Excel文件,可供读者练习操作时使用,非常适合中、高级Excel用户,以及公司中需要大量统计报表的工作人员。 第1章 数据透视表基础 1 1.1 什么是数据透视表 1 1.2 为什么应该使用数据透视表 2 1.3 何时应该使用数据透视表 4 1.4 数据透视表的结构 4 1.4.1 值区域 4 1.4.2 行区域 5 1.4.3 列区域 5 1.4.4 报表筛选区域 6 1.5 数据透视表的幕后 7 1.6 对数据透视表报表的限制 7 1.7 下一步 9 第2章 创建基本数据透视表 11 2.1 为数据透视表报表准备数据 11 2.1.1 确保数据以表格形式布局 12 2.1.2 避免在分节标题中存储数据 12 2.1.3 避免重复组作为列 13 2.1.4 消除数据源中的空白和空单元格 13 2.1.5 应用适当的类型格式于字段 14 2.1.6 有效的数据源设计概要 14 2.2 案例学习:清除数据用于数据透视表分析 15 2.3 创建基本数据透视表 16 2.3.1 添加字段到报表中 19 2.3.2 增加数据透视表的层次 22 2.3.3 重新排列数据透视表 22 2.3.4 创建报表筛选 23 2.4 案例学习:依据市场分析行为 25 2.5 与数据源保持一致 29 2.5.1 对现有数据源已经进行修改 29 2.5.2 数据源的范围已经随着行或者列的增加而扩大 29 2.6 共享数据透视表缓存 30 2.7 利用新的数据透视表工具节约时间 31 2.7.1 推迟布局更新 31 2.7.2 利用一次单击从头开始 32 2.7.3 重新定位数据透视表 33 2.8 下一步 33 第3章 自定义数据透视表 35 3.1 改变常用修饰 36 3.1.1 应用表格样式恢复网格线 37 3.1.2 修改数字格式来添加千位分隔符 38 3.1.3 用0代替空值 39 3.1.4 修改字段名称 41 3.2 改变布局 42 3.2.1 使用新的压缩形式布局 42 3.2.2 使用大纲形式的布局 44 3.2.3 使用传统的表格形式布局 44 3.3 案例学习 46 3.4 利用样式和主题自定义数据透视表的外观 50 3.4.1 自定义样式 52 3.4.2 修改未来数据透视表的默认样式 53 3.4.3 用文档主题修改样式 54 3.5 修改汇总计算 55 3.5.1 了解空单元格会导致计数的原因 55 3.5.2 使用除计数或求和之外的其他函数 56 3.6 添加和删除分类汇总 58 3.6.1 有许多行字段时,禁止分类汇总 58 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和 62 3.7.4 确定每一行业务对总计的贡献大小 62 3.7.5 创建季节性报表 63 3.7.6 用占总和的百分比选项度量两个字段的百分比 63 3.7.7 使用百分比选项将一行与另一行进行对比 65 3.7.8 利用指数选项跟踪相对重要性 65 3.8 案例学习:根据业务报表的行计算收入 67 3.9 下一步 71 第4章 控制查看视图数据的方法 73 4.1 组合数据透视表字段 73 4.1.1 组合日期字段 74 4.1.2 按月组合时包含年 75 4.1.3 按周组合日期字段 76 4.1.4 在一个报表中组合两个日期字段 77 4.2 案例学习:创建订单时间间隔报表 78 4.3 案例学习:组合文本字段 80 4.4 查看数据透视表字段列表 82 4.4.1 停靠和浮动数据透视表字段列表 82 4.4.2 重新排列数据透视表字段列表 83 4.4.3 使用区域节下拉菜单 83 4.4.4 使用字段下拉菜单 84 4.5 对数据透视表中的数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 使用自定义序列排序 91 4.6 对数据透视表中的数据进行筛选 92 4.6.1 添加字段到报表筛选区域 92 4.6.2 从报表筛选区中选择一项 94 4.6.3 从报表筛选区中选择多项 94 4.6.4 快速选择或清除所有筛选项 96 4.6.5 使用字段列表筛选 96 4.6.6 使用标签筛选 98 4.6.7 使用日期筛选 99 4.6.8 使用值筛选 101 4.7 案例学习:创建10个最大值的报表 102 4.8 下一步 104 第5章 在数据透视表内进行计算 105 5.1 计算字段与计算项简介 105 5.1.1 方法1:手工添加计算字段到数据源中 106 5.1.2 方法2:在数据透视表外使用公式创建计算字段 107 5.1.3 方法3:直接在数据透视表内插入计算字段 108 5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 122 5.5.3 使用工作表函数 122 5.5.4 使用常量 123 5.5.5 引用总计 123 5.5.6 计算字段专用规则 123 5.5.7 计算项专用规则 124 5.6 管理和维护数据透视表计算 125 5.6.1 编辑和删除数据透视表计算 125 5.6.2 改变计算项的求解次序 126 5.6.3 提供公式的说明文档 127 5.7 下一步 128 第6章 使用数据视图和其他可视化工具 129 6.1 什么是真正的数据视图 129 6.2 创建第一个透视图表 130 6.3 牢记数据视图规则 133 6.3.1 修改基础数据透视表影响数据视图 133 6.3.2 数据透视表中数据字段的放置可能不一定最适合数据视图 133 6.3.3 Excel 2007中仍然存在的少量格式限制 135 6.4 案例学习:创建显示产品发货频率和收入分布情况的报表 136 6.5 能够替代使用数据视图的其他办法 141 6.5.1 方法1:把数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据视图 143 6.5.3 方法3:分发数据视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 使用条件格式处理数据透视表 146 6.7 下一步 153 第7章 借助数据透视表对不同的数据源进行分析 155 7.1 使用多重合并计算数据区域 156 7.2 多重合并计算数据区域的数据透视表的详细分析 161 7.2.1 “行”字段 162 7.2.2 “列”字段 162 7.2.3 “值”字段 162 7.2.4 页字段 163 7.2.5 重新定义数据透视表 164 7.3 案例学习:合并和分析数据集 164 7.4 使用外部数据源构建数据透视表 167 7.4.1 使用MicrosoftAccess数据构建数据透视表 167 7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel 2007的兼容模式 176 8.1.3 版本为12数据透视表没有降级方法 176 8.1.4 共享数据透视表的策略 177 8.2 将数据透视表另存为网页 177 8.3 将数据透视表发布到Excel Services 179 8.3.1 使用Excel Services显示电子表格的要求 180 8.3.2 为Excel Services准备电子表格 180 8.3.3 将电子表格发布到Excel Services 181 8.3.4 Excel Services中最终用户可以执行的操作 183 8.3.5 使用Excel Services不能执行的操作 183 8.3.6 在浏览器中查看数据透视表 184 8.4 下一步 185 第9章 使用和分析OLAP数据 187 9.1 什么是OLAP 187 9.2 连接到OLAP多维数据集 188 9.3 理解OLAP多维数据集的结构 191 9.4 理解OLAP数据透视表的局限性 192 9.5 创建脱机多维数据集 193 9.6 摆脱具有多维数据集函数的数据透视表模板 196 9.7 下一步 198 第10章 借助宏改善数据透视表报表 199 10.1 为什么对数据透视表报表使用宏 199 10.2 录制第一个宏 200 10.3 创建带有表单控件的用户界面 202 10.4 改变已录制的宏以添加功能 204 10.5 案例学习:借助一个组合框将两个数据透视表同步 208 10.6 下一步 213 第11章 使用VBA创建数据透视表 215 11.1 VBA简介 215 11.1.1 在Excel中启用VBA 215 11.1.2 启用开发工具功能 216 11.1.3 Visual Basic编辑器 217 11.1.4 Visual Basic工具 217 11.1.5 宏录制器 218 11.1.6 理解面向对象编码 218 11.2 学习技巧 219 11.2.1 编写代码处理任意大小的数据区域 219 11.2.2 使用超变量:对象变量 220 11.3 Excel的版本 220 11.4 使用Excel VBA构建数据透视表 223 11.4.1 用“求和项”取代“计数项” 225 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 11.5.3 使用AutoSort控制排序 232 11.5.4 更改默认的数字格式 232 11.5.5 禁用多个行字段的分类汇总功能 233 11.5.6 禁用行总计 233 11.6 创建最终报表要处理的一些问题 234 11.6.1 创建一个新的工作簿来保存报表 234 11.6.2 在空白报表工作表上创建摘要 235 11.6.3 填充大纲视图 235 11.6.4 处理最终格式 236 11.6.5 添加分类汇总 237 11.6.6 将所有步骤汇总 238 11.7 处理两个以上数据字段的问题 241 11.7.1 计算数据字段 243 11.7.2 计算项 245 11.8 使用分组汇总数据字段 247 11.9 使用高级数据透视表技术 251 11.9.1 使用AutoShow生成执行概要 251 11.9.2 使用ShowDetail过滤记录集 254 11.9.3 为每个区域或模型创建报表 256 11.9.4 手动筛选数据透视表中两个以上的项 260 11.10 手动控制排序方式 261 11.11 使用求和、平均值、计数、最小值、最大值等 261 11.12 创建报表百分比 262 11.12.1 占总量百分比 263 11.12.2 月增长率 263 11.12.3 特定项的百分比 263 11.12.4 汇总 264 11.13 使用Excel 2007中数据透视表的新功能 264 11.13.1 使用新筛选器 265 11.13.2 应用表格样式 269 11.13.3 更改布局 270 11.13.4 应用数据可见形式 271 11.13.5 理解Excel 97 273 11.14 下一步 274 第12章 数据透视表的常见问题 275 12.1 数据透视表常见问题诊断 275 12.1.1 我总是遇到错误“数据透视表 字段名无效” 275 12.1.2 刷新数据透视表时数据消失了 276 12.1.3 我的数据透视表总是使用“计数”而不使用“求和” 276 12.1.4 我的数据透视表总是将工作簿中的列调整为最适合标题的列宽 276 12.1.5 “推迟布局更新”选项锁住了排序、刷选、分组等功能 277 12.1.6 老版本的Excel无法正常地打开数据透视表 277 12.1.7 在试图给字段分组时得到一个错误消息 278 12.1.8 我的数据透视表将同一个数据项显示两次 278 12.1.9 删除的数据项仍然显示在筛选区域中 279 12.1.10 刷新了数据透视表,然后计算字段显示为错误值 280 12.2 数据透视表常见问题解答 281 12.2.1 怎样让数据透视表自动刷新 281 12.2.2 怎样才能同时刷新一个工作簿中的所有数据透视表 281 12.2.3 怎样使用一种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多列中行字段留下的空单元格 285 12.2.7 为什么我的数据透视表对于某些数据项不包含月 286 12.2.8 怎样将一个排名数值字段添加到数据透视表 288 12.2.9 怎样隐藏数据透视表中的计算错误 290 12.2.10 怎样使数据透视表报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视表 292 12.2.12 怎样避免不断地重定义数据透视表的数据区域 294 附录A 查找选项卡上的数据透视表命令 297 A.1 插入数据透视表 297 A.2 从传统的数据透视表工具栏中查找命令 298

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值