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
- 串行化
- 可以防止:脏读,重复度,幻读
隔离级别相关命令
-- 查看隔离级别命令
select @@tx_isoloation;
-- 设置隔离级别
set global transaction isolation level 级别名称;