跨表查询
1.内连接
内联连
关键词
inner join…on
格式
表1 inner join 表2 on 表1.列 = 表2.列
例子
员工表关联部门表进行联表查询
外连接
左外
关键词
left join…on
格式
表1 left join 表2 on 表1.列 = 表2.列
例子
员工表关联部门表进行左外连接查询
右外
关键词
right join…on
格式
表1 right join 表2 on 表1.列 = 表2.列
例子
员工表关联部门表进行右外连接查询
在这里插入图片描述
链接特点
左表与右表的区分
连接的格式
表1 ??? 表2
???代表了
inner join
left join
right join
左表
连接符号左边的表,是左表
上面例子中表1就是左表
连接符号右边的表,是右表
上例中表2就是右表
在这里插入图片描述
在这里插入图片描述
源码参考
– 查询数据
select * from department;
select * from employee;
select * from student;
– 通过内连接跨表查询老师的信息
select employee.eid,employee.name,department.name from employee inner join department on employee.department_id = department.did;
– 左外连接
select employee.eid,employee.name,department.name from employee left join department on employee.department_id = department.did;
select employee.eid,employee.name,department.name from employee right join department on employee.department_id = department.did;
– 插入一行数据
insert into department(dname) values(‘教学部’);
– 插入一行数据,不指定列名
insert into department values(‘防疫指挥部’);
insert into employee values(‘张三丰’,1000);
insert into student values(‘克林’,2004,2005),(‘孙悟空’,2004,2005);
– 插入两行数据
insert into department(dname) select ‘教质部’ union select ‘后勤部’;
– 插入两行数据
insert into department(dname) values(‘学习部’),(‘组织部’);
– 连表查询,查出学生的班主任与教员的名字,并显示出来
select sid,sname as 学生姓名,ep1.name as 班主任,ep2.name as 教员 from student inner join employee as ep1 on student.headmaster_id=ep1.eid inner join employee as ep2 on student.teacher_id = ep2.eid;