当前位置:文档之家› 第三章SQL语言PPT课件

第三章SQL语言PPT课件

FROM Student,SC WHERE Student.Sno = SC.Sno;
猜猜看:若去掉上面语句中的WHERE子句, 将会得到怎样的结果。
2021/2/11
12
37 查询选修了1号课程的学生学号、姓名、性 别、1号课程的考试分数。
SELECT Student.Sno, Sname,Ssex,Grade FROM Student, SC WHERE Student.Sno=Student.Sno and
Cno=‘1’
2021/2/11
13
38 查询选修了数据结构课程的学生学号、姓 名。
SELECT Student.Sno ,Sname FROM Student, SC, Course WHERE Student .Sno=SC.Sno and o=o and Cname=‘数据结构’
3.4.1 插入数据 3.4.2 修改数据 3.4.3 删除数据
2021/2/11
20
3.4.1 插入数据
SQL有两种插入数据的方式
插入单个元组(一条记录) 插入一批元组(多条记录)——插入一个
子查询的结果
2021/2/11
21
(1)插入单个元组:
语句格式
INSERT INTO <表名> [ (<属性列1>[,<属性列2 >…)]
2021/2/11
18
例42 查询1号课程考试成绩高于1号课程平均 分的学生学号。
SELECT Sno FROM SC WHERE Cno=‘1’ and Grade > ( SELECT AVG(Grade)
FROM SC WHERE Cno=‘1’ )
2021/2/11
19
3.4 数 据 更 新
Sname 李勇 刘晨 王敏 张立
Ssex
Sage
Sdept

20
CS

19
IS

18
MA

19
IS
2021/2/11
8
SC表
Sno
06001 06001 06001 06002 06002
2021/2/11
Cno
1
2
3 2 3
Grade
92 85 88 90 80
9
等值连接以后的结果表为:
Student.Sno Sname Ssex
2021/2/11
10
什么是自然连接?
自然连接是等值连接的一种特殊情况,只需把 目标列中两个重复的属性列去掉一个,得到的 就是自然连接。
目标列就是你要查询的列
2021/2/11
11
用自然连接完成上面的查询:
SELECT Student.Sno,Sname,Ssex, Sage,Sdept,Cno,Grade
06001
李勇 男
06001

06002
刘晨 女
Sage 20 20 20 19 19
Sdept CS CS CS IS IS
SC.Sno 06001 06001 06001 06002 06002
Cno Grade 1 92 2 85 3 88 2 90 3 80
2021/2/11
6
举例说明等值连接与自然连接:
36 查询每个学生的基本信息,以及选 修课程的情况。
SELECT student . * , SC . * FROM Student, SC Where Student.Sno=SC.Sno
2021/2/11
7
Student 表
Sno 06001 06002 06003 06004
多表查询除了连接以外,还有一种查询叫做嵌 套查询。
嵌套查询意指在查询语句的WHERE子句或 HAVING子句中,还存在着子查询。
也就是说,查询语句中还嵌套着查询,故名嵌 套查询。
2021/2/11
16
例40 查询和马小辫在同一个系读书的学生的学 号、姓名、性别。
SELECT Sno,Sname,Ssex FROM Student WHERE Sdept IN ( SELECT Sdept
它是将两个以上的表连接起来作为一个新的整体 进行查询。
用来连接两个表的条件称为连接条件或连接谓词
2021/2/11
3
连接查询的一般格式:
[<表名1>.]<列名1> <比较运算符> [<表名 2>.]<列名2> 比较运算符:=、>、<、>=、<=、!=
[<表名1>.]<列名1> BETWEEN [<表名2>.]<列名 2> AND [<表名2>.]<列名3>
2021/2/11
4
SQL中连接查询的主要类型有:
广义笛卡尔积
等值连接(含自然连接)
非等值连接查询
自身连接查询
外连接查询
复合条件连接查询
2021/2/11
5
用得最多的是属于等值连接的自然连接。
等值连接是通过等号把两个或两个以上的表连 接起来;
自然连接是在等值连接的基础上,去掉相同的 列而得到的。
2021/2/11
14
例39 查询1号课程不及格的学生的学号、姓名。
SELECT Student.Sno, Sname FROM Student, SC WHERE Student .Sno=SC .Sno and Cno=‘1’ and Grade<60
看看哪里有问题?
2021/2/11
15
嵌套查询:
第三章 关系数据库标准语言SQL(2)
2021/2/11
1
3.4 多表查询
同时涉及多个表的查询称为多表查询 多表查询又分为连接查询和嵌套查询两种 下面分别讲述。
2021/2/11
2
3.4.1 连接查询
查询涉及到两个以上的表,连接查询是通过比 较 运 算 符 = 、 > 、 < 、 >= 、 <= 、 != 、 Between……and等等,
VALUES (<常量1> [,<常量2>] … ) 功能
将一个新元组(记录)插入到指定表中。
2021/2/11
22
例1
将一个新生的注册信息 (学号:090512102;姓名:陈冬;性别:男;所
在系:计算机系;年龄:18岁)添加到Student 表中。
FROM Student WHERE Sname=‘马小辫’)
2021/2/11
17
例41 查询1号课程考了满分的学生的学号和姓 名。
SELECT Sno, Sname FROM Student WHERE Sno IN ( SELECT Sno
FROM SC WHERE Cno=‘1’ and Grade=100 )
相关主题