Mysql:视图和三范式
Posted guanghen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql:视图和三范式相关的知识,希望对你有一定的参考价值。
mysql
(三):视图和三范式
视图:
-
什么是视图?
不同角度看数据。(或者说是原数据的一部分)
-
创建视图,删除视图;
//创建 create view myview as select empno ,ename from emp; //删除 drop view myview; //只能以DQL方式创建视图
-
对视图进行CRUD会影响原表数据。
-
使用方式:
找到原表---→创建原表的视图(元彪的一部分字段)----→对视图进行CRUD---→视图被修改的部分==原表被修改的部分;
-
为什么要进行视图操作?
视图可以隐藏表的实现细节。保密级别较高的系统,数据库只对外提供相关的视图,程序员只对视图进行CRUD;
导入导出数据库数据:
- 导出:
//导出整个库
mysqldump 数据库名>目标地址+目标数据库脚本文件名称 -u账号 -p密码
//导出指定表,在数据表名后加指定表明即可
mysqldump 数据库名 数据表名>目标地址+目标数据库脚本文件名称 -u账号 -p密码
- 导入:
create databases 数据库名>源数据库地址+脚本名;
use 此库;
source 此库地址以及脚本名;
数据库设计三范式(重点)://没懂
-
什么是设计范式?
设计表的依据。按照三范式设计表不会出现数据冗余;
-
三范式是哪些?
-
第一范式:任何一张表都应有主键,并每个字段原子性不可再分;
-
第二范式:在第一范式的基础上,所有非主键字段完全依赖主键;
tips:多对多关系?三张表,关系表两个外键。
-
在第二范式基础上,所有非主键字段直接依赖主键,不能产生传递依赖。
tips:一对多?两张表,多的表加外键。
-
-
在实际的开发中,以满足客户的需求为主,有时会拿冗余换速度。视情况而定。
-
实际开发有三种数据关联方式:
-
一对一
设计方案:
- 主键共享:第一张表创建主键,第二张表的外键也使用这个主键;
- 外键唯一:第一张表创建主键且由若干数据,第二张表创建一个外键,这个外键有unique唯一性约束。
-
一对多
-
多对多
-
以上是关于Mysql:视图和三范式的主要内容,如果未能解决你的问题,请参考以下文章
使用 json rereiver php mysql 在片段中填充列表视图