第六章 数据查询
DESCRIPTION
第六章 数据查询. 金丽霞 2011.3. 目标:. 知识目标. 掌握 SELECT 语句对单表内容进行查询。 掌握 SELECT 语句对多表进行连接查询。 掌握嵌套查询的方法。. 目标:. 技能目标. 能够灵活应用 SELECT 语句对单表内容进行查询。 能够灵活应用 SELECT 语句对多表进行连接查询。 能够灵活应用嵌套查询进行相应的操作。. 一、单表查询 之一 查询指定列的信息. 查询指定列的记录信息 —— 语法. ……. ,. 列名2. AS 别名. SELECT. 列名1. AS 别名. FROM 表名. 学号. - PowerPoint PPT PresentationTRANSCRIPT
一、单表查询 之一 查询指定列的信息
1. 查询指定列的记录信息——语法
FROM 表名 SNO SNAME SEX SAGE SDEPT
99001 张岩 男 20 信息技术
99002 李诚 女 19 网络技术
99003 周敏 女 18 信息技术
99004 陈立 男 19 信息技术
学号 姓名 性别 年龄 专业
AS 别名 AS 别名SELECT 列名1
, 列名2
……
2. 实验:例6.1 、 6.2
3. 练习
4. 实验:例6.3
单表查询练习 1 :查询 STUDENT 表的 sname 、 sage
字段
例 1 : select sname,sage from student
SNO SNAME SEX SAGE SDEPT
99001 张岩 男 20 信息技术
99002 李诚 女 19 网络技术99003 周敏 女 18 信息技术99004 陈立 男 19 信息技术
SNAME SAGE
张岩 20
李诚 19
周敏 18
陈立 19
单表查询练习 2 : 查询 student 表中的所有数据
例 2 : select * from student
SNO SNAME SEX SAGE SDEPT
99001 张岩 男 20 信息技术
99002 李诚 女 19 网络技术99003 周敏 女 18 信息技术99004 陈立 男 19 信息技术
一、单表查询 之二 查找指定列的前 N 条记录
1. 查询前 N 条记录——语法
FROM 表名
SELECT TOP n
2. 实验:例 6.7 、 6.8
列名 1 ,列名2
……
3. 练习:查询
练习 -- 查找指定列的前 N 条记录
SNO SNAME SEX SAGE SDEPT
99001 张岩 男 20 信息技术99002 李诚 女 19 网络技术99003 周敏 女 18 信息技术99004 陈立 男 19 信息技术
查询 student 表的所有记录
查询 student 表前 3 条记录
查询 student 表前 3 条记录的 sno , sname,sex 字段
WHERE 子句练习
1. 查询信息技术专业的所有学生记录
2. 查询年龄是 19 岁的学生的学号、姓名,性别,年龄
SNO SNAME SEX SAGE SDEPT
99001 张岩 男 20 信息技术99002 李诚 女 19 网络技术99003 周敏 女 18 信息技术99004 陈立 男 19 信息技术
3. 查询年龄是 19 岁且性别是女的学生的学号、姓名,性别,年龄
WHERE 子句练习
4. 查询 CJ 表中成绩在 [56,78] 范围内的学生
select *
from cj
where
5. 查询 CJ 表中成绩在 [56,78] 范围外的学生
成绩 >=56 and 成绩<=78
成绩 between 56 and 78
select *
from cj
where 成绩 <56 or 成绩 >78 成绩 not between 56 and 78
WHERE 子句练习
6. 查询 XS 表中专业是计算机网络和电子商务的学生
select *
from XS
where
7. 查询 KC 表中选修了 A003 和 J003 课程的老师
专业 =‘ 计算机网络’ or 专业 =‘ 电子商务’专业 IN (‘ 计算机网络’ ,’ 电子商务’ )
select *
from cj
where 课程号 IN (‘A003’,’J003’)
WHERE 子句练习
8. 查询 XS 表中姓张的所有学生信息
select *
from XS
where
9. 查询 xs 表中姓名是两个字,姓张的学生的所有字段信息
姓名 like ‘ 张 %’
select *
from XS
where 姓名 like ‘ 张 _’
思考题:查找 XS 表中姓名张,中间一个字不清楚,第三个字是强或明的姓名
• use xsgl• go • select 姓名• from xs• where rtrim( 姓名 ) like ' 张 _[ 强 , 明 ]'• go
一、单表查询之四 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 语句的统计功能
• 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. 成绩
JOIN
FROM XS
CJ ON XS. 学号 =CJ. 学号
SELECT XS. 学号
XS. 姓名
CJ. 课程号 CJ. 成绩
,
FROM XS
CJ WHERE XS. 学号 =CJ. 学号
练习• 查询 xs 表中的学号、姓名, CJ 表中的成
绩, KC 表中的课程名字段的信息。SELECT XS. 学
号XS. 姓名
KC. 课程名 CJ. 成绩
JOIN
FROMXS
kc ON cj. 课程号 =kc. 课程号
SELECT XS. 学号
XS. 姓名
CJ. 课程号 CJ. 成绩
,
FROM XS
CJ WHERE XS. 学号 =CJ. 学号
JOIN CJ ON XS. 学号 =CJ. 学号
, KC AND CJ. 课程号号 =KC. 课程号