数据库应用基础 Fundamental and Application of Database 第五讲 测控技术与自动化教研中心冯仁剑
Fundamental and Application of Fundamental and Application of Database Database 数据库应用基础 数据库应用基础 第五讲 测控技术与自动化教研中心 测控技术与自动化教研中心 冯仁剑
352SQL中的连接查询 SQL中连接查询的主要类型 广义笛卡尔积 等值连接(含自然连接) 非等值连接查询 自身连接查询 外连接查询 复合条件连接查询
3.5.2 SQL 3.5.2 SQL中的连接查询 SQL中连接查询的主要类型 – 广义笛卡尔积 – 等值连接(含自然连接) – 非等值连接查询 – 自身连接查询 – 外连接查询 – 复合条件连接查询
广义笛卡尔积 ●不带连接谓词的连接 ●很少使用 例 SELECT Student * Sc FROM Student SC
一、广义笛卡尔积 一、广义笛卡尔积 z 不带连接谓词的连接 z 很少使用 例: SELECT Student.* , SC.* FROM Student, SC
、等值与非等值连接查询 等值连接、自然连接、非等值连接 「例]查询每个学生及其选修课程的情况。 SELECT Student * sc FROM Student, SC WHERE Student sno=sc sno
二、等值与非等值连接查询 二、等值与非等值连接查询 等值连接、自然连接、非等值连接 [ 例] 查询每个学生及其选修课程的情况。 SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno = SC.Sno;
等值连接 连接运算符为=的连接操作 K表名1>列名1>=[表名2>]列名2 任何子句中引用表1和表2中同名属性时,都必须加 表名前缀。引用唯一属性名时可以加也可以省略表 名前缀
等值连接 z 连接运算符为 = 的连接操作 – [.] = [.] – 任何子句中引用表1和表2中同名属性时,都必须加 表名前缀。引用唯一属性名时可以加也可以省略表 名前缀
等值连接 假设 Student表、SC表分别有下列数据: Student表 Sno Sname Ssex Sage Sdept 95001李勇男20 9500刘晨女19IS 95003王敏女 95004张立男19Is
等值连接 假设Student表、SC表分别有下列数据: Student表 Sno Sname Ssex Sage Sdept 95001 李勇 男 20 CS 95002 刘晨 女 19 IS 95003 王敏 女 18 MA 95004 张立 男 19 IS
等值连接 SC表 SI no Grade 95001 95001 95001 95002 28800 95002 323
等值连接 SC 表 Sno Cno Grade 95001 1 92 95001 2 85 95001 95002 95002 3 2 3 88 90 80
等值连接 结果表 Student Sno Sname Ssex Sage Sdept SC Sno Cno Grade 95001李勇男20 92 95001李勇男20CS95001 95001李勇男20CS95001388 95002刘晨女19IS95002290 95002刘晨女19IS95002380
等值连接 结果表 Student.Sno Sname Ssex Sage Sdept SC.Sno Cno Grade 95001 李勇 男 20 CS 95001 1 92 95001 李勇 男 20 CS 95001 2 85 95001 李勇 男 20 CS 95001 3 88 95002 刘晨 女 19 IS 95002 2 90 95002 刘晨 女 19 IS 95002 3 80
自然连接 ●等值连接的一种特殊情况,把目标列中 重复的属性列去掉。 例]对上例用自然连接完成。 SELECT Student Sno, Sname, Ssex, Sage Sdept, Cno, grade FROM Student, SC WHERE Student Sno=SC sno
自然连接 z 等值连接的一种特殊情况,把目标列中 重复的属性列去掉。 [例] 对上例用自然连接完成。 SELECT Student.Sno,Sname,Ssex,Sage, Sdept,Cno,Grade FROM Student,SC WHERE Student.Sno = SC.Sno;
非等值连接查询 连接运算符不是=的连接操作 K]列名1×]列名2> 比较运算符:>、] BETWEEN[]AND ]<列名3
非等值连接查询 非等值连接查询 连接运算符 不是 = 的连接操作 [.][.] 比较运算符: > 、 = 、.] BETWEEN [.] AND [.]