Mysql数据库基础知识整理
参考资料:
MySQL分区:https://www.bilibili.com/video/BV1E7411q7Nx
MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷:https://www.bilibili.com/video/BV12b411K7Zu
实体书籍:数据库事务并发处理的艺术 事务管理与并发控制 李海翔 等著
博文中部分图片和文字源自网络。部分文字,因学习时记录的笔记时间已久远,无法找到出处,侵删。
数据库并发问题
Mysql数据库事务的实现方式及并发相关: https://blog.csdn.net/qq_41605114/article/details/108716218
Mysql数据库调优
Mysql数据库调优——分区: https://blog.csdn.net/qq_41605114/article/details/108693426
Mysql数据库调优——索引:https://blog.csdn.net/qq_41605114/article/details/108693457
1,范式问题
1.1 函数依赖
函数依赖:A------->B,如果通过A属性(属性组)的值,可以确定唯一B属性的值。则称B依赖于A
学号-------->姓名,(学号,课程)--------->分数
完全函数依赖:A------->B,如果A是一个属性(属性组),则B属性值得确定需要依赖于A属性组中所有的属性值
(学号,课程)---------> 分数
部分函数依赖:A------->B,如果A是一个属性(属性组),则B属性值得确定只需要依赖于A属性组中一项的属性值
(学号,课程)--------->姓名
传递函数依赖:A------->B,B------->C,如果A属性(属性组)的值,可以确定唯一的B属性的值,再通过B属性(属性组)的值可以确定唯一属性的值,则称C传递函数依赖于A
学号------->系名,系名------->系主任
1.2 第一/二/三范式
了解了函数依赖,就可以理解第一/第二/第三范式了。
第一范式:如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式
第二范式:第二范式需要确保数据库表中的每一列都和主键相关,消除部分函数依赖
第三范式:确保数据表中的每一列数据都和主键直接相关,而不能间接相关,消除传递函数依赖
2,sql语言分类
1,数据定义语言DDL(Data Definition Language)
create,drop,alter
主要为以上操作,即对逻辑结构等有操作的,其中包含表结构,视图和索引。
2,数据查询语言DQL(Data Query Language)
以select为关键字,各种简单查询,连接查询等,都属于DQL
3,数据操纵语言DML(Data Manipulation Language)
Insert,update,delete
主要为以上操作,即对数据进行操作的,对应上面所说的查询操作DQL和DML共同构建了多数初级程序员常用的增删改查操作。
查询被划分到了DQL中。
4,数据控制功能DCL(Data Control Language)
commit,rollback等