Sql语言被分为四大类
- 数据查询语言(DQL)
- 数据操纵语言(DML)
- 数据定义语言(DDL)
- 数据控制语言(DCL)
数据查询语言(DQL)
数据查询语言基本结构由select子句,from子句,where子句组成的查询块:
select [字段名] from [表或视图名] where [查询条件]
注:show不属于数据查询语言,严格来说show属于数据控制语言(DCL)。
查询select是对表里的信息数据进行查看,而显示show是对表结构和库中存放表的数据信息查看。
数据操纵语言(DML)
数据操纵语言是用来对表里存在的信息数据做修改,而表本身的主要构成结构不会变动。主要有三种形式:
- 插入:insert
- 更新:update
- 删除:delete
数据定义语言(DDL)
数据定义语言用来创建或修改数据库中的各种对象的结构——库、表、表引擎、字符集、视图、索引、同义词、聚簇以及约束限制结构等;如:
- create database/table/view/index/syn/cluster
- alter table [表名] add/drop/change/modifiy column [字段] [字段定义] after [表存在的字段]
- Drop table [表名];
- truncate table [表名];
- rename [原表名] to [新表名]
注:数据定义语言是隐性提交的,不能rollback回滚
数据控制语言(DCL)
数据控制语言用来授予或回收访问数据库的某种特权,并控制数据库操纵实务发生的时间及效果,对数据库实行监如:
- show:显示
- grant:授权
- rollback [工作点] to [保存点]:回退到某一点
- 回滚到数据最进提交前的状态 mysql>rollback; commit [工作点]:提交
显式提交和隐式提交以及自动提交概念
1.显式提交
所有的数据操纵语句都是要显式提交的,所谓显示提交就是要执行commit/rollback。数据操纵语句执行完后,处理的数据都会放在回滚段中,等待用户进行提交或者回滚,当用户执行commit/rollback后,放在回滚段中的数据就会被删除。显式提交是由你决定是否提交,这种事务允许你自己决定哪批工作必须成功完成,否则所有部分都不能完成。目的是为了给自己的事务定界。
2.隐式提交
mysql数据库隐式提交的三种情况:
- 正常执行完数据定义语言(DDL)包括create,alter,drop,truncate,rename。
- 正常执行完数据控制语言(DCL)包括grant,revoke。
- 正常退出mysql客户端,没有明确发出commit/rollback。
其他的如数据定义语言(DDL),都是隐式提交的。就是不用进行commit/rollback。在运行非数据操控语言后,mysql已经进行了隐式提交。例如create table,在运行指令后表已经建好了,并不在需要进行显式提交。隐式事务又称自动提交事务,由系统自动帮你完成并不需要你来提交。
自动提交
在插入、修改、删除语句执行后,系统将自动进行提交。显式提交转变为隐式提交的过程称为自动提交。
特别鸣谢 @hillsowl 本文摘录自 SQL语言的四大类
本文由 陌上花开 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 1, 2016 at 06:52 am