数据库多表连接(一)

  • Post author:
  • Post category:其他


一、基本连接


基本原则:

1.SELECT子句列表中,每个目标列前都要加上基表名称

2.FROM子句应包括所有使用的基表

3.WHERE子句应定义一个同等连接


实例:

select a.student_Name,a.student_ID,a.exam_No,b.director from result_Info a,class_Info b where a.class_No =b.class_No


二、内连接


语法格式:

SELECT 目标列

FROM 表1 [NNER]JOIN 表2 [ON 连接条件]

[WHERE子句]

[ORDER BY子句]


实例:

SELECT a.班级名,a.班级人数,b.姓名,b.联系方式 from 班级信息 a inner join 辅导员信息 b ON a.辅导员=b.辅导员编号 and b.性别=’女’


三、外连接


1、内连接和外连接的区别:

内连接消除与另一个表的任何行不匹配的行,而外连接会返回FROM子句中提到的至少一个表或视图中的所有行,只要这些行符合任何搜索条件

外连接中参与连接的表有主从之分,

以主表的每行数据去匹配从表中的数据行,如果符合连接条件,直接返回查询结果中,如果主表中的行在从表中没有找到匹配的行,主表的行仍然保留,并返回到查询结果中,相应的从表中的行中被填上空值后也返回到查询结果中


2、外连接

外连接分类:左外连接,右外连接,全连接

左外连接:以左边的数据表为主表

SELECT a.exam_No,a.course_Name,a.result,a.class_No,b.student_Name, b.student_Sex ,b.tele_Number from result_Info a

left

outer

join

student_Info b on a.student_ID = b.student_ID

右外连接:以右边的数据表为主表

SELECT a.exam_No,a.course_Name,a.result,a.class_No,b.student_Name, b.student_Sex ,b.tele_Number from result_Info a

right

outer

join

student_Info b on a.student_ID = b.student

3、全连接

返回左表和右表中的所有行,显示所有数据

SELECT a.exam_No,a.course_Name,a.result,a.class_No,b.student_Name, b.student_Sex ,b.tele_Number from result_Info a

full

outer

join

student_Info b on a.student_ID = b.student_ID



版权声明:本文为weixin_44124953原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。