博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL学习笔记(三)
阅读量:6758 次
发布时间:2019-06-26

本文共 997 字,大约阅读时间需要 3 分钟。

  hot3.png

五、多表查询

主、从表:

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

转载于:https://my.oschina.net/higuy/blog/744210

你可能感兴趣的文章
quartus ii 中文注释乱码解决办法
查看>>
Linux网卡配置与绑定
查看>>
java学习之路--String类方法的应用
查看>>
auto,register,static分析
查看>>
百度BAE JAVA环境项目部署和调试
查看>>
CSS盒模型
查看>>
Log4Net 添加自定义字段并保存到数据库
查看>>
Redis集群(三)Cluster集群
查看>>
NSURLSession
查看>>
JFinal学习 & Gradle配置续 & Tomcat配置
查看>>
CSS进度条
查看>>
android的color值
查看>>
对于linux下system()函数的深度理解(整理)
查看>>
软件设计和开发准备
查看>>
ROS + Kinect2 跑ORB_SLAM2 安装步骤记录
查看>>
纯CSS实现垂直居中的几种方法
查看>>
win7注册表常用设置
查看>>
amazeui学习笔记--css(常用组件3)--按钮组Button-group
查看>>
Spring简介
查看>>
new Function()
查看>>