五、多表查询
主、从表:
如果表A的主关键字(primary key)是表B的字段,则该字段称为表B的外键。
外键:用来实现参照完整性的,不的外键约束方式将可以使两张表紧密的结合起来,特别 修改或者删除的级联操作
外键约束
作用:保证数据完整性 (***)
添加外键:
alter table 表名 add foreign key 当前表名(dno) references 关联的表 (did);
### 表间关系(表记录与另一有记录的关系)(专门人, 建模工具ER)
1:1
设计: 一般设计一张表就可以,有时根据业务的需要拆分多张表形成一对一
案例:用户基础信息,用户详细信息
原则:主键对应,唯一外键对应
n:n|n:m|*:*
案例:学生选择的课程,课程对应多个学生
1:n|1:*
案例:部门与员工
### 外连接
1. 左外连接(把左表所有的数据查询出来)
前提:要有外键
语法: left [outer] join A表.字段 on B表.字段
select * from dept t1 left join emp t2 on t1.did = t2.dno;
2. 右外连接
前提:要有外键
语法: right [outer] join A表.字段 on B表.字段
select * from dept t1 right join emp t2 on t1.did = t2.dno;
3.完全外连接 full join 或 full outer join
前提:要有外键
SQL语句:select * from student full join course on student.ID=course.ID
#. 子查询
查询的内容要用另一个查询的结果
select * from emp where ename > (select * from emp where 条件)
先完成子查询,后进行查询
四、内连接
1.普通的内连接
前提:要有外键
关键字: inner join A表.字段 on B表.字段
2.隐式的内连接(用得最多)
不用inner join ... on 关键字
select * from dept d, emp e where d.did=e.dno;