mysql 基本概念学习(时间,事务)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lineuman/article/details/81711664

事务的隔离级别
https://www.cnblogs.com/huanongying/p/7021555.html

事务:通俗的场景就是,当异常发生时,sql的回滚。
(可以用说与做来进行类比数据库的事务的提交)
设置隔离级别

SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE]

查看当前事务的隔离级别
当前会话
select @@tx_isolation;
查看系统的
select @@global.tx_isolation;

隔离级别(在理解隔离级别之前要理解会话和提交的概念)
这里写图片描述

  1. read uncommited
  2. read commited
  3. REPEATABLE read
    mysql默认的隔离级别
    可重复的的好处在于,一个会话中多次读是一致的,当多个会话执行update table_name set balance = balance - 1 这种操作时候,能过保证 数据的一致性【读的时候是读取本会话中的,写的时候使用的是其它会话commit之后的值】
  4. serializable

date 类型
datetime类型
TIMESTAMP类型

时间概念:
当前日期和时间(年月日和时分秒)
当前日期(年月日)
当前时间(时分秒)

这里写图片描述

获取某个字段,这些函数在进行数据统计的时候比较常用,例如按月份统计订单数量
年 year()
月 month()
日 day() 每个月第几天

时 hour()

其它内容

Explatin调试命令

索引

视图
show tables; 查看的表包含视图
show create table 查看建表语句
show full tables; 可以查看哪些是视图
show create view [view_name] 查看建视图语句

存储过程
存储函数
触发器
可以这样去理解触发器,时机和动作,和自动调用。这让我想到了切面。
before
after

insert
update
delete
2*3 =6
BEFORE INSERT - 在数据插入表之前被激活触发器。
AFTER INSERT - 在将数据插入表之后激活触发器。
BEFORE UPDATE - 在表中的数据更新之前激活触发器。
AFTER UPDATE - 在表中的数据更新之后激活触发器。
BEFORE DELETE - 在从表中删除数据之前激活触发器。
AFTER DELETE - 从表中删除数据之后激活触发器。

实际问题

很少使用物理删除了,都是通过is_deleted进行逻辑删除。
update 修改数据库,条件出错导致大量改动

猜你喜欢

转载自blog.csdn.net/lineuman/article/details/81711664