MySQL常用DDL、DML、DCL、MDL、WAL语言整理

最近在刷MySQL课程,贴一下MySQL的常用名词缩写。
整理来源于百度。

一、DDL

  • Data Definition Language 数据库定义语言; 如create procedure之类
创建数据库
CREATE DATABASE [IF NOT EXISTS] DBNAME [CHARACTER SET 'CHAR_NAME'] [COLLATE 'COLL_NAME']
修改:ALTER 删除:DROP(略)

二、DML

  • Data Manipulation Language 数据操纵语言,如insert,delete,update,select(插入、删除、修改、检索)插入修改数据。
#插入
INSERT INTO students (Name,Gender,teacher) VALUE ('dalizi','M','mage'),('wusong','M','zhuima');

INSERT INTO students SET Name='dalizi',Gender='M',tearcher='zhuima';

#更新
UPDATE tb_name SET column=value WHERE column=value;

UPDATE students SET Course='mysql' WHERE Name='dalizi';

#替换
mysql>REPLACE tb_name SET column=value WHERE column=value;

mysql>REPLACE students SET Course='mysql' WHERE Name='dalizi';

#查询
SELECT [DISTINCT] column FROM tb_name WHERE CONDITION;

#创建视图
CREATE VIEW VIEW_NAME AS SELECT....

三、DCL

  • Data Control Language 数据库控制语言,如grant,deny,revoke等,只有管理员才有这样的权限。

创建用户

mysql>CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'

删除用户

mysql>DROP USER 'USERNAME'@'HOSHOST支持通配符

_:任意单个字符

%:任意多个字符

授权

mysql>GRANT pri1,pri2...ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD']

取消授权

mysql>REVOKE pri1,pri2...ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';

查看授权

mysql>SHOW GRANTS FOR 'USERNAME'@'HOST';

举例:

CREATE USER 'dalizi'@'%' IDENTIFIED BY '123456';

SHOW GRANTS FOR 'dalizi'@'%';

GRANT ALL PRIVILEGES ON testdb.* TO 'dalizi'@'%';

四、MDL

  • Metadata lock,元数据锁,MySQL为实现并发情况下的数据一致性引入的锁机制。

五、WAL

  • WAL: Write-Ahead Logging

先写日志,再写磁盘。具体说,当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log里面,并更新内存,这个时候更新计算完成了。同时InnoDB引擎会在在系统比较空闲的时候,将这个操作记录更新到磁盘里。

WAL机制主要得益于两个方面
redo log 和 binlog 都是顺序写,磁盘的顺序写比随机写速度要快;
组提交机制,可以大幅度降低磁盘的 IOPS 消耗。

只要redo log和binlog保证持久化到磁盘,就能确保MySQL异常重启后,数据可以回复。

redo log保证事务的持久性
undo log保证事务的一致性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值