数据库
数据库三层结构


数据库的备份

备份
C:\Users\lenovo>mysqldump -u root -p -B zfc_db01(需要备份的数据库) > d:\\back.sql(自己指定的系统路径)
Enter password: ******
恢复
#恢复数据库(注意:进入Mysql命令行再行)
source d:\\back.sql
创建表

Mysql常用数据类型




整型

位类型

小数类型

字符串的基本使用






日期类型的使用

修改表

增删改查

Insert 细节

UPDATE
UPDATE emp set user_name = 'zfc' where ID = 1
DELETE

DELETE FROM EMPLOYEE WHERE USER_NAME = '老妖怪';
SELECT


运算符

ORDER BY

统计函数 Count


SUM

AVG

MAX/MIN

GROUP BY

经典例子

字符串相关函数

数学相关的函数

时间相关的函数





加密函数

流程控制函数

分页查询


有意思的写法

表查询加强

多表查询


自连接

子查询

案例


子查询临时表

all any 操作符


多列子查询



SELECT *
FROM student
WHERE (math, english, chinese) = (
SELECT math, english, chinese
FROM student
WHERE `name` = '宋江'
) AND `name` != '宋江';
SELECT *
FROM emp , (
SELECT deptno, AVG(sal) AS avg_sal
FROM emp
GROUP BY deptno
) temp
WHERE emp.deptno = temp.deptno AND emp.sal > temp.avg_sal表复制(蠕虫复制)



复制表结构

合并查询

外连接


主键



约束(not null ,unique)


外键



check约束

自增长


索引


索引的机制

索引的类型



索引注意细节

事务



事务的隔离级别



1. 读未提交(Read Uncommitted)
概念:在这种隔离级别下,一个事务可以读取到其他事务尚未提交的更改。这意味着你可以读取到正在被其他事务修改的数据,即使这些修改最终可能被回滚。这种情况称为“脏读”。
并发问题:
脏读(Dirty Read):事务A读取了事务B尚未提交的数据,事务B随后回滚,那么事务A读取的数据就是无效的。
最不安全的隔离级别,几乎没有隔离效果。
场景:通常不建议使用这个级别,因为数据的一致性无法得到保证。
2. 读已提交(Read Committed)
概念:在这种隔离级别下,一个事务只能读取到其他事务已提交的更改。未提交的更改对其他事务是不可见的。
并发问题:
不可重复读(Non-Repeatable Read):同一个事务在不同的时间点读取同一行数据时,可能得到不同的结果。这是因为在同一事务内两次读取之间,另一个事务提交了对该数据的更改。
可以避免脏读,但无法避免不可重复读。
场景:大多数数据库(如Oracle)使用这个级别。适用于需要读取最新数据而不是历史数据的场景。
3. 可重复读(Repeatable Read)
概念:在这种隔离级别下,一个事务在开始时看到的数据,在整个事务过程中都是一致的(即使有其他事务修改了这部分数据并提交)。这意味着在一个事务内多次读取同一行数据,会得到相同的结果。
并发问题:
幻读(Phantom Read):在同一个事务内两次读取某个范围的数据时,另一个事务插入了新数据,这会导致第二次读取出现“幻影行”。比如第一次查询某条件下有5行数据,第二次查询可能有6行。
可以避免脏读和不可重复读,但无法避免幻读。
场景:MySQL InnoDB默认的隔离级别。适用于需要保证读取数据一致性的场景,例如金融交易系统。
4. 串行化(Serializable)
概念:最高的隔离级别。所有事务依次排队执行,类似于单线程执行,这样就不会发生并发操作。因此,不会出现脏读、不可重复读和幻读。
并发问题:
无并发问题:所有并发问题都可以避免,因为一个时间点只能有一个事务执行。
性能开销最大,几乎不实际应用于高并发场景。
场景:适用于对数据一致性要求非常高的场景,但会极大降低系统的并发性能。
总结
读未提交:最不安全,可能会读到未提交的数据(脏读)。
读已提交:避免了脏读,但仍然可能会出现不可重复读。
可重复读:避免了脏读和不可重复读,但可能会出现幻读。MySQL的默认隔离级别。
串行化:最高的隔离级别,没有并发问题,但性能最差。
选择哪个隔离级别取决于应用程序对数据一致性和性能的需求
存储引擎

存储引擎的特点



视图



视图的使用




Mysql 管理


Mysql 的权限管理






细节补充

MySQL
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法