DQL、DML、DDL、DCL的区别(SQL语言的分类)
SQL结构化查询语言包含6个部分。SQL(Structure Query Language)语言是数据库的核心语言。
1).数据定义语言 DDL: Data Definition Language (隐形提交的,不用commit,不能rollback)
常用的有CREATE和DROP,用于在数据库中创建新表或删除表,以及为表加入索引等。
a.创建(create): create index,create tablespace... 创建各种对象--表、视图、索引、同义词、聚簇等(create table/view/index/syn/cluster)
b.删除(drop,truncate): truncate删除整个数据,drop删除整个表(数据+表结构)。两者都不用commit,也不能回滚
c.修改(alter): alter table,alter database,alter tablespace...
d.查看(show,desc): show parameter(查看参数的值),desc 对象(查看对象的结构)
2).数据查询语言 DQL: Data Query Language
a.查询(select): select <字段名> from <表或视图名> where <查询条件>;
3).数据操纵语言 DML: Data Manipulation Language (需要commit)
a.插入(insert): insert into <表名> (列1,列2,...) values (值1,值2,...);
b.更新(update): update <表名> set <列名>=新值 where <列名>=值;
c.删除(delete): delete from <表名> where <列名>=值; (只删除数据,可以回滚)
4).数据控制语言 DCL: Data Control Language
用来授予或回收访问数据库的某种特权,并控制数据库操作事务发生的时间及效果,对数据库实行监视等。
通过GRANT和REVOKE确定单个用户或用户组对数据库对象的访问权限。
a.授权(grant): grant create session to scott
b.回滚(rollback)
c.提交(commit)
在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成,在事务提交前,只有操作数据库的人才有权看到所做的事情,在最后提交完成后别人才可以看到
I.显式提交:用commit命令直接完成的提交。 SQL>commit;
II.隐式提交:用SQL命令间接完成的提交。 alter,audit,noaudit,connect,disconnect,create,drop,comment,exit,grant,quit,revoke,rename
III.自动提交:若把autocommit设为on,则在插入、修改、删除语句执行后,系统将自动进行提交。SQL>set autocommit on;
d.新建用户(create user)
5).事务处理语言 TPL:
事务处理语句能确保被DML语句影响的表的所有行及时得以更新。包括:BEGIN、TRANSACTION、COMMIT、ROLLBACK
6).指针控制语言 CCL: Cursor Control Language
DECLARE CURSOR、FETCH INTO、UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。