1.MD5加密
1.1:主要是增强算法复杂度和不可逆性。
1.2:MD5不可逆,具体的值的md5是一样的
1.3:破解原理:背后有一个字典,MD5加密后的值,加密的前值
2.事务:要么都成功要么都失败
2.1:事务的特性
原子性:要么都成功,要么都失败
一致性:事务的前后数据完整性要保持一致
持久性:事务一旦提交就不可逆,被持久化到数据库中
隔离性:多个用户并发访问数据库时,每一个数据库为用户开启的事务,不能被其他事务干扰
2.2:隔离产生的问题
脏读:一个事务读取另一个事务未提交的数据
不可重复读:在一个事务内读取表中某一行数据,多次读取的结果不同。
幻读:在一个事务内读取到别的事务插入的数据,导致前后不一致
2.3:事务的执行流程
关闭自动提交:set autocommit=0
事务开启:start transaction
事务提交:commit
事务回滚:rollback
开启自动提交:set autocommit=1
3.索引:
3.1索引的分类
主键索引(PRIMARY KEY):唯一的标识,主键不可重复,只能有一个列作为主键
唯一索引(UNIQUE KEY):避免重复的列出现,唯一索引可以重复,多个列都可以标识唯一索引
常规索引(KEY/INDEX):默认的,index和key来设置
全文索引(FULLTEXT):在特定的数据库引擎下才有,MyISAM;快速定位数据
3.2索引的作用
<1>创建和定义索引,根据一列或多列。
<2>使用索引:检索数据的操作,where索引的条件
注:MySQL默认innodb引擎,检索和数据都保存在本地;能快速检索数据
4.权限管理与备份
用户表:mysql.user
本质:对这张表进行增删改查
注:选择的主机和登录主机必须一致
5.MySQL备份
5.1为什么要备份
保证数据不丢失
数据转移
5.2MySQL数据库的备份方式
————导出
#直接拷贝物理文件
#在sqlyog可视化工具手动导出
#使用mysqldump命令使用:mysqldump -h 主机 -u 用户名 -p 密码 数据库 表名 > 物理键盘位置/文件名
注:导出多个表,表之间用,隔开;导出整个数据库
————导入
在登录的情况下,切换到指定数据库
mysql -u用户名 -p密码 库名< 备份文件
6.规范数据库设计
6.1为什么要设计
糟糕的数据库设计:
数据冗余,浪费空间
数据库的插入和删除都会麻烦,异常(屏蔽使用物理外键)
程序性能查
良好的数据库设计
节省空间
保证数据库完整性
方便开发系统
6.2关于数据库设计
分析需求:分析业务和需要处理的数据库的需求
概要设计:设计关系图E-R
6.3三大范式:(解决信息重复/更新异常/插入异常/删除异常)
第一范式——>原子性:每一列都是不可再分
第二范式——>在1的基础上+每张表只描述一件事情
第三范式——>在2的基础上+确保每一列数据只和主键有关,而不能间接相关