MySQL学习笔记(四)
2022/2/9 19:28:40
本文主要是介绍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学习笔记(四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南
- 2024-10-22MySQL数据库入门教程:从安装到基本操作
- 2024-10-22MySQL读写分离入门教程:轻松实现数据库性能提升
- 2024-10-22MySQL分库分表入门教程
- 2024-10-22MySQL慢查询的诊断与优化指南
- 2024-10-22MySQL索引入门教程:快速理解与应用指南
- 2024-10-22MySQL基础入门教程:从安装到基本操作
- 2024-10-22MySQL数据库中的Binlog详解与操作教程
- 2024-10-12部署MySQL集群项目实战:新手入门教程