Download presentation
Presentation is loading. Please wait.
1
第十一章 查询
2
查询 11.1 查询语句的基本格式 11.2 单表查询 11.3 多表查询 11.4 查询聚合数据 11.5 嵌套查询
11.1 查询语句的基本格式 11.2 单表查询 11.3 多表查询 11.4 查询聚合数据 11.5 嵌套查询 11.6 保存查询结果
3
11.1 查询语句的基本格式 Select 字段列表 From 表名 [Where 条件表达式] [Group By 字段列表
11.1 查询语句的基本格式 Select 字段列表 From 表名 [Where 条件表达式] [Group By 字段列表 [Having 条件表达式]] [Order By 字段列表 [ASC|DESC]]
4
11.2 单表查询 单表查询 单表查询中几种方式 结果集中字段或查询条件中涉及的属性来源于一个数据表 输出表中所有列 选择部分列输出
11.2 单表查询 单表查询 结果集中字段或查询条件中涉及的属性来源于一个数据表 单表查询中几种方式 输出表中所有列 选择部分列输出 重新命名输出列的列名 去除重复记录 使用where子句 使用order by子句
5
单表查询 使用Where子句 列名=表达式 表达式形式 算术比较 逻辑组合(and ,or) between…and…(含相等) in
like 通配符 %,_,[]
6
例11-1 查询出所有人员的基本情况
7
例11-2 查询出所有人员的姓名(EmpName)、性别(SexInfo)和年龄(EmpAge)
8
例11-3 查询各部门的名称和电话, 并以“部门名称”和“联系电话”表示
9
例11-4 查询出所有员工的职务(EmpRole)
10
例11-5 查询出所有编辑(EmpRole)的姓名
11
例11-6 查询出所有年龄EmpAge>30岁(含30)的男性员工的姓名和职务
12
例11-7 查询出所有年龄EmpAge在25岁至40岁之间(含25和40)的员工的姓名、职务和年龄
13
例11-8 查询出所有年龄EmpAge不在25岁至40岁之间(不含25和40)的员工的姓名、职务和年龄
14
例11-9 查询出由肖盈或秦娟或王玲玲(DesignerName)设计的期刊的编号
15
例11-10 查询出姓“张”的员工的名单
16
例11-11 查询出具有“核稿”权限(PermitStr)的人员姓名及职务
17
例11-12 查询出电话号码DepTel第六位为“2”的部门的名称、负责人姓名及电话
18
例11-13 查询出2004年发行的期刊名称(MagName)为《北京信息周报》第1至5期的编号和设计者姓名
19
例11-14 请按年龄(EmpAge)由大到小 输出所有员工情况
20
例11-15 请按姓名(EmpName)次序输出所有员工情况
21
例11-16 请按部门升序(DepId)输出所有员工情况,并按年龄(EmpAge)降序排序
22
11.3 多表查询 多表查询 连接表的先决条件 连接方法 注意 结果集中字段或查询条件涉及的字段来源于多个表 涉及到的表都是有关联关系的
11.3 多表查询 多表查询 结果集中字段或查询条件涉及的字段来源于多个表 连接表的先决条件 涉及到的表都是有关联关系的 通过外键实现 连接方法 在from子句中列出所有表 在where子句中指定连接条件 注意 对于同名字段引用时要有表名 n个表连接应有n-1个连接条件
23
例11-17 查询出张斌所在部门的名称
24
例11-18 查询出刊登文章题目(DocTitle)为“去国外旅游”一文的期刊名称和该期设计者的姓名、年龄和职务
25
11.4 查询聚合数据 常用的聚合函数(集合函数) 使用Group by 使用Having 注意
11.4 查询聚合数据 常用的聚合函数(集合函数) Sum,avg,min,max,count(*),count 使用Group by 分组求聚合函数 使用Having 筛选条件中含有聚合函数 注意 正确选择输出字段 聚合函数不考虑空值( count(*)除外)
26
例11-19 计算出员工的平均年龄 和员工人数
27
例11-20 计算出员工的平均年龄和员工人数, 并分别以“平均年龄”和“员工人数”表示
28
例11-21 按性别SexInfo分别计算出员工的平均年龄和员工人数,并分别以“平均年龄”和“员工人数”表示
29
例11-22 按性别分别计算出部门编号为1的员工的平均年龄和员工人数,并分别以“平均年龄”和“员工人数”表示
30
例11-23 查询出部门编号DepId为2的部门名称及员工的平均年龄(以“平均年龄”表示)
31
11.5 嵌套查询 嵌套查询 子查询 嵌套查询的用法 在Where子句的表达式中出现另一个查询的情况 在一个查询中嵌套的另一个查询
11.5 嵌套查询 嵌套查询 在Where子句的表达式中出现另一个查询的情况 子查询 在一个查询中嵌套的另一个查询 嵌套查询的用法 可用于解决多表查询 当where子句中需使用集合函数时可使用子查询
32
嵌套查询 子查询结果集为多条记录时使用in 去掉重复记录时使用exists not in和not exists的区别
(尽量避免使用distinct) not in和not exists的区别 not in针对一列
33
例11-24 查询出年龄EmpAge大于平均年龄的员工姓名及年龄
34
例 查询出张斌所在部门的名称
35
例11-26 查询出期刊编号(MagId)为bxz200101至bxz200106的设计者姓名和职务
36
例11-27 查询出具有与“王涓”编辑的文章所属栏目相同的期刊名称
37
11.6 保存查询结果 将查询结果保存到一个新的数据表中 Select 输出列表 into [#]新表名 from 表名 where 子句…
11.6 保存查询结果 将查询结果保存到一个新的数据表中 Select 输出列表 into [#]新表名 from 表名 where 子句… 可以将结果保存到变量中 Select from 表名 显示变量 Select @变量名
38
例11-28 将文章字数多于平均字数的文章 标题保存到临时表temp_title中
39
例11-29 将期刊编号MagId为“bxz200401”的文章总字数及篇数分别保存在变量sumwords和number中
Similar presentations