数据库系统概论第五版学习笔记连接查询 第三章(三)
来源:互联网 发布:知秋的小说哪本好看 编辑:程序博客网 时间:2024/06/05 20:17
连接查询
内连接:
1. 表与表用逗号“,”分开
2. 增加连接条件(属性相等):student.sno = sc.sno
3. 公共属性一定要加前缀
1. 等值与非等值连接查询
1)连接查询的where子句中用来连接两个表的条件称为连接条件或连接谓词
格式:[<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2>
比较运算符主要有:= > < >= <= !=
连接运算符为 = 时,称为等值连接,使用其他运算符称为非等值连接
查询每个学生及其选修课程的情况
/*这两个表之间的联系是通过公共属性sno实现的*/
Select student.*, sc.*
From student, sc
Where student.sno = sc.sno
2)自然连接:若在等值连接中把目标列中重复的属性列去掉则为自然连接
对上例用自然连接完成
Select student.sno, sname, sex, sage, sdept, cno, grade
From student, sc
Where student.sno = sc.sno
3)一条SQL语句可以同时完成选择和连接查询,这时WHERE子句是由连接谓词和选择谓词组成的复合条件。
查询选修2号课程且成绩在90分以上的所有学生的学号和姓名
Select student.sno, sname
From student, sc
Where student.sno = sc.sno and sc.cno = ’2’ and sc.grade>90
2. 自身连接
一个表与其自己进行连接,称为表的自身连接
查询每一门课的间接先修课(即先修课的先修课)
Select first.cno, second.cpno
From course first, course second
Where first.cpno = second.cno
3. 外连接:
1. 外连接的表是有顺序的
2. 外连接条件不是全局条件
3. 当行一个不能少时,使用外连接
有时想以student表为主体列出每个学生的基本情况及其选课情况。
若某个学生没有选课,仍把student的悬浮元组保存在结果关系中,而在sc表的属性上填空值NULL,这时就需要使用外连接。
外连接:把悬浮元组也保存在结果关系中,而在其他属性上填空值NULL
查询每个学生及其选修课程情况
Select student.sno, sname, sex, sage, sdept, cno, grade
From student LEFT OUTER JOIN sc ON ( student.sno = sc.sno )
/*也可以用USING来去掉结果中的重复值:From student LEFT OUTER JOIN sc USING ( sno )*/
左外连接:T1 LEFT OUTER JOIN T2 ON T1.A = T2.A
右外连接:T1 RIGHT OUTER JOIN T2 ON T1.A = T2.A
全外连接:T1 FULL OUTER JOIN T2 ON T1.A = T2.A
4. 多表连接
两个以上的表进行连接
查询每个学生的学号、姓名、选修课程名及成绩
Select student.sno, sname, cname, grade
From student, sc, course
Where student.sno = sc.sno and sc.cno = course.cno
- 数据库系统概论第五版学习笔记连接查询 第三章(三)
- 数据库系统概论第五版学习笔记数据查询 第三章(二)
- 数据库系统概论 学习笔记(三)第五部分
- 数据库系统概论 学习笔记(三)第五部分
- 数据库系统概论 学习笔记(三)第三部分
- 数据库系统概论第五版学习笔记
- 数据库系统概论第五版学习笔记数据库完整性 第五章
- 数据库系统概论第五版学习笔记1.1 1.2节
- 数据库系统概论第五版学习笔记1.3 1.4节
- 数据库系统概论第五版学习笔记数据库安全性 第四章
- 数据库系统概论 学习笔记(三)第一部分
- 数据库系统概论 学习笔记(三)第二部分
- 数据库系统概论 学习笔记(三)第四部分
- 《数据库系统概论》(第三版)
- 数据库系统概论学习笔记 第七章
- 数据库系统概论学习笔记(一)
- 数据库系统概论 学习笔记(二)
- 《数据库系统概论》学习笔记
- Hibernate:hibernate环境搭建并实现hibernate例子
- Android练习-----单选按钮(RadioButton) && 复选框(CheckBox)
- python 中的循环
- POj2255 利用先序,中序输出后序序列
- Spring-春天的故事1
- 数据库系统概论第五版学习笔记连接查询 第三章(三)
- vs的一些事
- jquery 之 Deferred 使用与实现
- 深入解析AsyncTask(doInBackground不工作)
- Atitit atiuse软件系列
- php源码之路第二章第二节(SAPI概述之FastCGI)
- Python源码学习(1)-VS2008编译python源码
- Redis之(七)主从同步与集群管理
- Codeforces Round #377 (Div. 2) F