260 likes | 355 Views
第六章 数据查询. 金丽霞 2011.3. 目标:. 知识目标. 掌握 SELECT 语句对单表内容进行查询。 掌握 SELECT 语句对多表进行连接查询。 掌握嵌套查询的方法。. 目标:. 技能目标. 能够灵活应用 SELECT 语句对单表内容进行查询。 能够灵活应用 SELECT 语句对多表进行连接查询。 能够灵活应用嵌套查询进行相应的操作。. 一、单表查询 之一 查询指定列的信息. 查询指定列的记录信息 —— 语法. ……. ,. 列名2. AS 别名. SELECT. 列名1. AS 别名. FROM 表名. 学号.
E N D
第六章 数据查询 金丽霞 2011.3.
目标: • 知识目标 • 掌握SELECT语句对单表内容进行查询。 • 掌握SELECT语句对多表进行连接查询。 • 掌握嵌套查询的方法。
目标: • 技能目标 • 能够灵活应用SELECT语句对单表内容进行查询。 • 能够灵活应用SELECT语句对多表进行连接查询。 • 能够灵活应用嵌套查询进行相应的操作。
一、单表查询 之一 查询指定列的信息 查询指定列的记录信息——语法 …… , 列名2 AS 别名 SELECT 列名1 AS 别名 FROM 表名 学号 姓名 性别 年龄 专业 2.实验:例6.1、6.2 3.练习 4.实验:例6.3
单表查询练习1:查询STUDENT表的sname、sage字段 例1:select sname,sage from student
单表查询练习2:查询student表中的所有数据 例2:select * from student
一、单表查询 之二 查找指定列的前N条记录 1.查询前N条记录——语法 n SELECT TOP 列名1 …… ,列名2 FROM 表名 2.实验:例6.7、6.8 3.练习:查询
练习--查找指定列的前N条记录 查询student 表的所有记录 查询student 表前3条记录 查询student 表前3条记录的sno,sname,sex字段
一、单表查询之三WHERE 子句 1.WHERE子句——语法 …… SELECT 列名1 ,列名2 FROM 表名 WHERE 条件表达式 2.练习:
WHERE 子句练习 1.查询信息技术专业的所有学生记录 2.查询年龄是19岁的学生的学号、姓名,性别,年龄 3.查询年龄是19岁且性别是女的学生的学号、姓名,性别,年龄
WHERE 子句练习 4.查询CJ表中成绩在[56,78]范围内的学生 select * from cj where 成绩>=56 and 成绩<=78 成绩 between 56 and 78 5.查询CJ表中成绩在[56,78]范围外的学生 select * from cj where 成绩 not between 56 and 78 成绩<56 or 成绩>78
WHERE 子句练习 6.查询XS表中专业是计算机网络和电子商务的学生 select * from XS where 专业=‘计算机网络’ or 专业=‘电子商务’ 专业 IN (‘计算机网络’,’电子商务’) 7.查询KC表中选修了 A003和J003课程的老师 select * from cj where 课程号 IN (‘A003’,’J003’)
WHERE 子句练习 8.查询XS表中姓张的所有学生信息 select * from XS where 姓名 like ‘张%’ 9.查询xs表中姓名是两个字,姓张的学生的所有字段信息 select * from XS where 姓名 like ‘张_’
思考题:查找XS表中姓名张,中间一个字不清楚,第三个字是强或明的姓名思考题:查找XS表中姓名张,中间一个字不清楚,第三个字是强或明的姓名 • use xsgl • go • select 姓名 • from xs • where rtrim(姓名) like '张_[强,明]' • go
WHERE 子句练习 10.查询KC表中选修了课程却没有成绩的学生的学号 select * from KC where 成绩 is NULL
一、单表查询之四 SELECT语句的统计功能 1、SELECT 语句具有哪些统计功能? 求和 求平均 求最大值 求最小值……
一、单表查询之四 SELECT语句的统计功能 2、SELECT 语句实现统计功能的方法 使用集合函数 GROUP BY 子句 COMPUTE 子句
一、单表查询之四 SELECT语句的统计功能 • 3、练习 • 统计XS表中的总人数 • 统计CJ表中的总课程数 • 统计选修了A001课程的总人数 • 统计选修了A004课程的最高分的学生成绩
一、单表查询之四 SELECT语句的统计功能 • 4、GROUP BY 针对整个查询结果,根据条件对数据进行分组 SELECT 列名1,列名2,别名=函数计算 FROM 表名 GROUP BY 列名1,列名2 GROUP BY 子句写在WHERE 子句之后 SELECT 后所跟的列名要么在集合函数中,要么在GROUP BY子句中
一、单表查询之四 SELECT语句的统计功能 • 5、练习 查询统计XS表中男生总人数和女生总人数 查询统计KC表中各课程选修的总人数 完成练习:例6.22
一、单表查询之四 SELECT语句的统计功能 • 6、HAVING 对各组内的记录进行条件筛选 SELECT 列名1,列名2,别名=函数计算 FROM 表名 GROUP BY 列名1,列名2 HAVING 条件 与WHERE子句的区别是什么?
一、单表查询之四 SELECT语句的统计功能 • 7、练习 对XS表进行查询统计,统计出各专业性别是女的总人数 完成例6.23 对成绩表进行查询统计,统计出平均成绩<80的学生的学号,平均分
二、多表查询之一内连接 • SELECT 列名列表 FROM 表名1 JOIN 表名2 ON 表名1.列名=表名2.列名 • SELECT 列名列表 FROM 表名1 , 表名2 WHERE 表名1.列名=表名2.列名
练习 • 查询xs表中的学号、姓名和CJ表中的课程号、成绩字段的信息。 SELECT XS.学号 XS.姓名 CJ.课程号 CJ.成绩 XS FROM JOIN CJ ON XS.学号=CJ.学号 SELECT XS.学号 XS.姓名 CJ.课程号 CJ.成绩 XS FROM , CJ WHERE XS.学号=CJ.学号
练习 • 查询xs表中的学号、姓名,CJ表中的成绩,KC表中的课程名字段的信息。 SELECT XS.学号 XS.姓名 KC.课程名 CJ.成绩 FROM XS JOIN CJ ON XS.学号=CJ.学号 JOIN kc ON cj.课程号=kc.课程号 SELECT XS.学号 XS.姓名 CJ.课程号 CJ.成绩 XS FROM , CJ ,KC AND CJ.课程号号=KC.课程号 WHERE XS.学号=CJ.学号
练习 • 查询学号是2006030101的学生的学号、姓名、选修课程号、及各门功课的成绩。 • 查询选修了英语的学生的学号、姓名、课程名、成绩。 • 查询选修了课程却没有成绩的学生的学号、姓名、课程名