MySQL基础(五)
原创大约 2 分钟
MySQL基础(五)
MySQL基础笔记系列
关联关系
外键:用于建立关系的字段称为外键
一对一
什么是一对一: 有AB两张表,A表中一条数据对应B表中的一条数据,同时B表中一条也对应A表中的一条
应用场景: 为了提高查询效率 把原有一张表的数据拆成两张表如:商品表和商品详情表 、 用户表和用户信息扩展表
一对多
- 什么是一对多:有AB两张表,A表中一条数据对应B表多条数据,同时B表一条对应A表一条,称为一对多。
- 应用场景: 员工表和部门表 商品表和商品分类表 用户表和地址表
- 如何建立关系: 在多的表中添加外键指向另外一张表的主键
多对多
- 什么是多对多: 有AB两张表,A表中一条数据对应B表中的多条数据,同时B表中一体数据对应A表中的多条。
- 应用场景: 用户表和权限表 老师表和学生表
- 如何建立关系: 创建关系表,在关系表中添加两个外键指向另外两个表的主键
视图(view)
- 什么是视图:数据库中表和视图都是其内部的对象,视图本质其实是取代了一段SQL查询语句,视图没有自己独立的数据,数据来自于原表
- 视图的作用: 1. 重用SQL,提高开发效率 2. 隐藏敏感字段
create view 视图名 as (子查询);
分类
- 简单视图: 创建视图的子查询中不包含去重,分组,关联查询,聚合函数的视图称为简单视图,可以对视图中的数据进行增删改查操作
- 复杂视图: 和简单视图相反,只能对视图中的数据进行查询操作
使用
- 创建查询每个部门平均工资,最高工资,最低工资,工资总和,部门人数的视图
create view v_emp_info as (select deptno,avg(sal),max(sal),min(sal),sum(sal),count(*) from emp group by deptno);
- 创建一个10号部门的视图
create view v_emp_10 as(select * from emp where deptno=10);
- 创建一个没有工资的员工表视图
create view v_emp_nosal as(select empno,ename,deptno from emp);