Mysql

1、介绍


基础

一、SQL

1、整体介绍


2、DDL

2.1 数据库操作

2.2 表操作(创建 查询 数据类型)

2.2.1 创建 查询


例子:


2.2.2 数据类型:

2.2.3 修改




3、DML

展开:


ex:

4、DQL

数据查询语言

4.1 基本查询


将所选出来的内容换个名字,即起别名,as可省略:

4.2 条件查询 


ex:

4.3 聚合函数


ex:

4.4 分组查询

ex:

4.5 排序查询

4.6 分页查询


ex:

4.7 执行语句

5、DCL

5.1 管理用户


ex:

5.2 权限控制

查询、授予、撤销:

ex:

二、函数

1、字符串函数

ex:

2、数值函数

ex:
mod就是求余数

!!!!!!!!!

3、日期函数

ex:
type这个参数可以是年月日

4、流程函数

ex:
判断是否为空,null也为空,但若是'null'就不是空了。

总结:

三、约束

1、概述

2、约束演示

3、外键约束

3.1 概念

3.2 基础语法

添加链接:

ex:

3.3 删除/更新行为

总结:

四、多表查询

1、多表关系

一对多:(多的一门设置外键)

多对多:(来一张表记录关系)

ex:

中间表:

一对一:

ex:

2、多表查询概述

这样查询是不行的哦:

正确如下:

3、内连接

ex:

4、外连接

ex:

右外连接可以改为左外连接:

5、自连接

6、联合查询

7、子查询

7.1 标量子查询


ex:

7.2 列子查询


Ex:
in:

all:

7.3 行子查询


ex:

7.4 表子查询


ex:

8、多表查询案例

ex:



没看完

总结:

五、事务

5.1 简介

5.2 操作

两种方式控制:

(1)关闭自动提交事务,改手动:

autocommit=1:自动提交,为0是手动提交

(2)不用改手动,需要时显式的开启一个事务:

5.3 事务四大特性 ACID

5.4 并发事务问题

 

5.5 事务隔离级别

总结:

进阶

一、存储引擎

1、体系结构

2、存储引擎-创建 查看

3、存储引擎特点

innodb:

3、选择

总结

二、索引...

1、概述

2、索引结构

2.1 Btree索引

2.2 B+tree


mysql中的B+tree:

2.3 hash

2.4 思考题

3、索引分类


innodb中:聚集索引 vs 二级索引


思考题:

4、索引语法


ex:

5、性能分析

5.1 查看执行频次

5.2 慢查询日志

5.3 show Profiles

5.4 explain

6、使用规则

7、设计原则

三、SQL优化...

1、插入数据

2、主键优化

3、order by优化

4、group by优化

5、limit优化

6、count优化

7、update优化

小结

四、视图...

五、锁...

1、介绍

2、全局锁

2.1 全局锁介绍

2.2 一致性数据备份

3、表级锁

3.1

3.2

3.3

4、行级锁

4.1

4.2

4.3

锁-小结

六、InnoDB引擎

6.1 逻辑存储结构...

6.2 架构-内存结构...

6.3 事务原理-redolog undolog...

6.4 MVCC

在快照读时,需要通过MVCC来判断使用哪一个数据版本。

6.4.1 MVCC-隐藏字段


可以通过查看表空间,来看该表中具体存在哪些隐藏字段,指令:ibd2sdi 表空间文件的名字

6.4.2 MVCC - undo log


它的两个作用:一是回滚,二是用于MVCC,即与MVCC中的DB_ROLL_PIR回滚指针结合使用。
ex:update时,undo log文件中的内容和隐藏字段的变化

6.4.3 此时若要查询这一行数据,返回哪一个版本呢?依赖于readview
readview:

 

RC隔离机制下,快照读返回的版本选择规则:

RR下:

所以:

innodb总结

七、Mysql管理

7.1 系统数据库

7.2 常用工具

运维

一、日志


错误日志:看错误信息,解决问题
二进制日志:主从复制
查询日志
慢查询日志:性能优化时看sql语句的性能

1.1 错误日志

查看日志位置

实时查看错误日志内容
tail -50 /var... 查看该文件尾部50行
实时查看 -f 

1.2 二进制日志


基于ROW的直接看看不懂,使用-v参数转为SQL语句查看,可以看到Updata指令,接下来是记录前和后的数据分别是什么:

1.3 查询日志

默认关:

开启后,可看到:

1.4 慢查询日志

二、主从复制

2.1 概述

2.2 原理

2.3 搭建

2.3.1 服务器准备



可以看到mysql已启动,说明正常安装好了

2.3.2 主库配置


2.3.3 从库配置



2.3.4 测试

主从复制总结

三、分库分表

3.1 介绍

3.2 Mycat

四、读写分离

4.1 介绍

4.2 一主一从

4.3 一主一从读写分离

配置逻辑库,配置完成这个逻辑库之后,记得给root用户加上对该逻辑库的访问权限:



1和3能实现读写分离。
 

4.4 双主双从



两个从库:


接着为两个从库关联一下主库:

然后两个主库也要能够相互复制:继续配置两个主库

搭建好咯,测试:

4.5 双主双从读写分离

声明一个逻辑库,指定逻辑节点dataNode,并对其进行参数设置(dataHost,关联数据库database),然后配置dataHost参数(设置读写节点,balance),记得给root加上该逻辑库的访问权限:


可测试

读写分离总结

三大范式

数据库三大范式是什么?(3NF详解)-CSDN博客
什么是范式?
范式是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式。

最常用的三大范式
第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列)

第二范式(2NF):满足第一范式;且不存在部分依赖,即非主属性必须完全依赖于主属性。(主属性即主键;完全依赖是针对于联合主键的情况,非主键列不能只依赖于主键的一部分)

第三范式(3NF):满足第二范式;且不存在传递依赖,即非主属性不能与非主属性之间有依赖关系,非主属性必须直接依赖于主属性,不能间接依赖主属性。(A -> B, B ->C, A -> C)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值