Sql的分类

DDL 数据定义语言

DDL(data definition language)数据库定义语言 的主要语句(操作) Create 语句:可以创建数据库和数据库的一些对象。 Drop 语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。 Alter 语句:修改数据表定义及属性。

DML 数据操作语言

DML(data manipulation language)数据操纵语言 的主要语句(操作) Insert 语句:向数据表张插入一条记录。 Delete 语句:删除数据表中的一条或多条记录,也可以删除数据表中的所有记录,但是,它的操 作对象仍是记录。 Update 语句:用于修改已存在表中的记录的内容。

DCL 数据控制语言

DCL(Data Control Language)数据库控制语言 的主要语句(操作) Grant 语句:允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限。 Revoke 语句:可以废除某用户或某组或所有用户访问权限

DQL 数据查询语言

select 查询语句

Mysql初始化的database作用

mysql库

该库是mysql核心数据库,该库下的表主要存储数据库用户、权限等mysql自身需要使用的信息,主要有以下表:

  • columns_priv:列级别全新表
  • db:库级别权限表
  • user:用户账号
  • tables_priv:表级权限
  • procs_priv:存储过程与函数权限
  • proxies_priv:代理用户的权限
  • event:事件与任务调度表
  • gtid:与GTID主从复制有关的表
  • innodb_index_stats:innodb索引统计信息
  • innodb_table_stats:innodb表统计信息
  • plugin:插件表

sys库

记录了当前mysql的一些运行信息,方便于让DBA快速了解数据库现状

information_schema库

信息数据库,主要保存了其他数据库的源数据

performance_schema库

保存性能相关的数据,监控Mysql的性能

Mysql事务的四大特性

原子性

一致性

隔离性

持久性

Mysql的四种隔离级别

产生隔离需求的背景

在MySQL中并发访问数据可能出现的问题:

  • 脏读:一个事务读取到了另一个事务没有提交的数据
  • 不可重复读:一个事务中 两次读取的数据不一致
  • 幻读:一个事务中,一次查询的结果,无法支撑后续的业务操纵

四种隔离级别

read uncommitted

  • 读未提交
  • 可以防止哪些问题 : 无

read committed(Oracle默认级别)

  • 读已提交
  • 可以防止 :脏读

repeatable read(Mysql默认级别)

  • 可重复读
  • 可以防止 :脏读,不可重复读

serializable

  • 串行化
  • 可以防止:脏读,重复度,幻读

隔离级别相关命令

  1. -- 查看隔离级别命令
  2. select @@tx_isoloation;
  3. -- 设置隔离级别
  4. set global transaction isolation level 级别名称;