MySQL学习笔记(三)

无人久伴 提交于 2019-12-14 10:09:30

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

五、多表查询

主、从表:

如果表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;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!