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 此库地址以及脚本名;

数据库设计三范式(重点)://没懂

  • 什么是设计范式?

    ​ 设计表的依据。按照三范式设计表不会出现数据冗余;

  • 三范式是哪些?

    1. 第一范式:任何一张表都应有主键,并每个字段原子性不可再分;

    2. 第二范式:在第一范式的基础上,所有非主键字段完全依赖主键

      ​ tips:多对多关系?三张表,关系表两个外键。

    3. 在第二范式基础上,所有非主键字段直接依赖主键,不能产生传递依赖

      ​ tips:一对多?两张表,多的表加外键。

  • 在实际的开发中,以满足客户的需求为主,有时会拿冗余换速度。视情况而定。

  • 实际开发有三种数据关联方式:

    1. 一对一

      设计方案:

      1. 主键共享:第一张表创建主键,第二张表的外键也使用这个主键;
      2. 外键唯一:第一张表创建主键且由若干数据,第二张表创建一个外键,这个外键有unique唯一性约束。
    2. 一对多

    3. 多对多

以上是关于Mysql:视图和三范式的主要内容,如果未能解决你的问题,请参考以下文章

使用 json rereiver php mysql 在片段中填充列表视图

MySQL笔记--- 创建表;插入,修改,删除数据;主键,外键约束;事务;索引;视图;三范式;

如何在片段中填充列表视图?

mysql学习

从mysql的片段中加载ListView

MVC和三层架构