主题:SQL内链接、外链接定义和举例

 

一、SQL内链接、外链接定义

1、SQL内链接:将2张表按照on的条件,返回公共部分

表示如图:

[数据库基础]--  SQL内链接、外链接举例_外链

 

 

(1)sql第一种形式

select * from  Table_1 t1,Table_2  t2 where t1.id=t2.id;

(2)sql第二种形式

select * from Table_1  t1 inner join Table_2  t2 on t1.id=t2.id;

 

 

 

2、SQL外连接:包含左链接和右连接

--1)、左链接,如图

[数据库基础]--  SQL内链接、外链接举例_sql_02

select * from Table_1 t1 left join Table_2 t2 on t1.id =t2.id ;

select * from Table_1 t1 left outer join Table_2 t2 on t1.id =t2.id;

 

--2)、右链接,如图

[数据库基础]--  SQL内链接、外链接举例_sql_03

sql举例:select * from Table_1 t1  right join Table_2 t2 on t1.id=t2.id;

select * from Table_1 t1 right outer join Table_2 t2 on t1.id =t2.id;

 

二、SQL内链接、外链接举例

1、创建2张测试表、并且添加测试数据

 

-- 1、创建学生表
CREATE TABLE `t_student` (
`id` int(11) COMMENT '课程id',
`name` varchar(40) NOT NULL COMMENT '姓名',
`student_id` int(4) NOT NULL COMMENT '学生编号'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '学生表';


-- 2、创建课程表
CREATE TABLE `t_course` (
`id` int(11) COMMENT '课程id',
`name` varchar(40) NOT NULL COMMENT '名称'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '课程表';

--3、插入测试数据
INSERT INTO `t_student` VALUES (1,'张三',101);
INSERT INTO `t_student` VALUES (2,'李四',102);
INSERT INTO `t_student` VALUES (3,'王五',103);
INSERT INTO `t_student` VALUES (4,'张三',101);
INSERT INTO `t_student` VALUES (5,'李四',102);
INSERT INTO `t_student` VALUES (7,'李四',103);
INSERT INTO `t_course` VALUES (1,'语文');
INSERT INTO `t_course` VALUES (2,'数学');
INSERT INTO `t_course` VALUES (3,'英语');
INSERT INTO `t_course` VALUES (4,'物理');
INSERT INTO `t_course` VALUES (5,'化学');
INSERT INTO `t_course` VALUES (6,'生物');

 

 

 

2、测试内链接

-- 内链接:
    select * from t_student ts inner join t_course  tc on ts.id=tc.id;

-- 结果:

      

[数据库基础]--  SQL内链接、外链接举例_测试数据_04

3、测试外链接(左连接和右链接)

  --1)、左链接:select * from t_student ts left join t_course  tc on ts.id=tc.id;

[数据库基础]--  SQL内链接、外链接举例_外链_05

 

--2)、右链接:select * from t_student ts right join t_course  tc on ts.id=tc.id;

[数据库基础]--  SQL内链接、外链接举例_测试数据_06

 

 

注:以上内容可能有不全面,欢迎各位朋友批评指正!谢谢