多表连接
来源:互联网 发布:cntv mac版 编辑:程序博客网 时间:2024/06/14 10:18
连接概念:
(1)FROM子句中的连接条件;
(2)WHERE子句中的连接条件和搜索条件;
(3)HAVING子句中的搜索条件。
(4)CROSS JOIN:结果只包含两个表中所有行的结合,指明两个表之间的笛卡尔操作。
(5)[INNER] JOIN:内连接,结果只包含满足条件的列。
(6)LEFT[OUTER] JOIN:左连接,结果包含满足条件的行及左侧表中的全部行。
(7)RIGHT [OUTER] JOIN:右连接,结果包含满足条件的行及右侧表中的全部行。
(8)FULL [OUTER] JOIN:完全连接,结果包含满足条件的行和两侧表中的全部行。
内连接:通过比较数据源表间共享列的值,从多个源表检索符合条件的行的操作。可以使用等号运算符连接,也可以连接两个不相等的列中的值。
例如:查询选修课程号为c1234的学生的学号、姓名和期末成绩。
SELECT student.studentno,sname,final
FROM student INNER JOIN score
ON student.studentno=score.studentno
WHERE score.courseno='c1234'
外部连接:包括满足搜索条件的连接表中的所有行,甚至包括在其他连接表中没有匹配行的一个表中的行。对于当一个表中的行与其他表中的行不匹配时返回的结果集行,则解析为不存在相应的表的所有结果集列提供NULL值。
(1)左连接,是一种外部连接,其中包括JOIN子句中左侧表中的所有行。右表中的行与左表中的行不匹配时,将为来自右表的所有结果集列赋以NULL值。
例如:利用左外连接方式查询08级学生的学号、姓名、平时成绩和期末成绩。
SELECT student.studentno,sname,usually,final
FROM student LEFT JOIN score
ON student.studentno=score.studentno
WHERE substring(student.studentno,1,2)='08'
(2)右外连接,其中包含JOIN子句中最右侧表的所有行。如果右侧表中的行与左侧表中的行不匹配,则将结果集中来自左侧表的所有列分配NULL值。
例如:利用右连接方式查询教师的排课情况。
SELECT courseno,tname,teacher.teacherno,major
FROM teach_class RIGHT JOIN teacher
ON teacher_class.teacherno=teacher.teacherno
- 【Oracle】多表连接查询——内连接、左连接、右连接、全连接(外连接)、完全连接
- Mysql连接查询(自然连接、自身连接、外连接、多表连接)总结
- 数据库多表连接查询(外连接和内连接)
- mysql 左右连接 以及内连接 多表连接
- 数据库多表连接查询(外连接和内连接)
- oracle 多表连接 内连接 外连接
- 多表连接查询-内连接-外连接
- 多表连接查询
- 多表连接查询
- 多表连接查询
- 多表连接查询
- 多表连接Update
- 多表连接查询
- 多表连接原理!
- 多表连接
- SQL多表连接
- oracle多表连接
- 多表连接查询
- bool和BOOL的区别(转)
- POJ 3687 Labeling Balls
- Oracle 记录表名和表记录数
- 单例模式2(single pattern)
- Zen Coding 快速编写HTML/CSS代码的实现
- 多表连接
- 从30岁到35岁:为你的生命多积累一些厚度
- jquery的bind,unbind,live,data这些函数
- 【转载】Java多线程编程详解
- 软件工程----软件生存期模型
- SQL自定义函数
- ssh无密码访问的实现
- C语言实现UNIX中一次读入一个字符
- Glibc简介