MySql教程

MySQL学习笔记(四)

本文主要是介绍MySQL学习笔记(四),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

一、索引

1、概念

2、添加索引的条件

3、查看sql语句的执行计划

4、操作索引

5、索引的分类

二、视图(view)

1、概念

2、视图语句

3、视图用法

三、数据库数据的导入导出

1、DBA命令

四、数据库设计三范式(避免数据冗余)

1、三范式内容

2、一对一关系表的设计


一、索引

1、概念

索引:相当于目录;通过目录可以快速的找到对应的资源

在数据库查询一张表时有两种检索方式:全表扫描、根据索引检查(效率高) ​
PS:索引虽然能够提高检索效率,但不能随意添加索引;如果表中数据经常修改,则不适合添加索引,因为数据一旦修改,索引需要重新排序,进行维护

2、添加索引的条件

1、数据量庞大 ​
2、该字段很少的DML操作 ​
3、该字段经常出现在where子句中 ​

PS:主键和具有unique约束的字段会自动添加索引

3、查看sql语句的执行计划

语句:explain select 字段 from 表名 where 条件;

4、操作索引

创建索引:create index 索引名 on 表名(字段); ​ 删除索引:drop index 索引名 on 表名;

索引的实现原理是B 树

5、索引的分类

单一索引:给一个字段添加索引 ​
复合索引:给多个字段添加索引 ​
主键索引:主键上会自动添加索引 ​
唯一索引:有unipue约束的字段上会自动添加索引

PS:模糊查询时,第一个通配符是%,这个时候索引失效

二、视图(view)

1、概念

视图:指站在不同角度去看数据

2、视图语句

创建视图:create view 视图名 as select 字段,... from 表名; ​ 删除视图:drop view 视图名;

3、视图用法

视图可以隐藏表的实现细节,保密级别较高的系统,数据库只对外提供相关的视图;能够通过对视图的操作改变原表数据,不是直接操作原表

三、数据库数据的导入导出

1、DBA命令

数据导出:
mysqldump 数据库名称>导出位置 -u数据库用户名 -p数据库密码——(导出整个库) ​
mysqldump 数据库名称 表名称>导出位置 -u数据库用户名 -p数据库密码——(导出指定数据库中的指定表)

数据导入:create database 数据库名称;
                  use 数据库名称;
        ​​​​​​​        ​​​​​​​  source 数据库位置;

四、数据库设计三范式(避免数据冗余)

1、三范式内容

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

第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部份依赖
        部份依赖:指字段以来多个主键中的其中一个,称为部分依赖
        解决多对多关系:建立三张表,其中关系表使用两个外键

第三范式:建立在第二范式的基础之上,所有非主键字段直接以来主键,不能产生传递依赖
        传递依赖:字段1依赖字段2,字段2依赖主键字段3,称为传递依赖
        一对多关系:两张表,多的表加外键

PS:在实际开发中,以满足客户的需求为主,有时候会拿冗余换速度

2、一对一关系表的设计

1、主键共享

将表一的主键当作表二的主键+外键
​​​​​​​案例:

2、外键唯一

在表二中新增一个字段用于存放表一中的主键,新增字段为表二中的外键且需要添加unique约束 案例:

这篇关于MySQL学习笔记(四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!