SQL语言:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)

SQL语言包括四种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)。

1、常用的DDL语句

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引
数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。一个数据库模式包含该数据库中所有实体的描述定义。这些定义包括结构定义、操作方法定义等。数据库模式定义语言并非 程序设计语言,DDL数据库模式定义语言是SQL语言( 结构化程序设计语言)的组成部分。

在一些特定情况下,如:金融、安全、税务等等部门,有一些数据库为了安全需要,需要禁止执行DDL语句。在Oracle数据库下,禁止DDL语句需要执行下面的SQL语句:


2、常用的DML语句

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据
数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改。 在DML中,应用程序可以对数据库作插入(insert),删除(delete),修改(update),排序(order by),检索(select)等五种操作。

3、常用的DCL语句:

GRANT  授权

它可以把语句权限或者对象权限授予给其他用户和角色。语法:GRANT {ALL | statement[,...n]} TO security_account [ ,...n ]

例如:

grant select, insert, update, delete, references, alter, index on username.table_name to username;     --username代表该表的所有者
grant create table, create view, create sequence to username;
授予 对象权限的语法形式为:
GRANT{ ALL [ PRIVILEGES ] | permission [ ,...n ] }{[ ( column [ ,...n ] ) ]
     ON { table | view }| 
     ON { table | view } [ ( column [ ,...n ] ) ]| 
     ON {stored_procedure | extended_procedure }| 
     ON { user_defined_function } }
     TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role} ]

DENY 拒绝授权

用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。否定语句权限的语法形式为:

DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ]
否定 对象权限的语法形式为:
DENY{ ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] )] 
ON { table | view } | 
ON { table | view } [ ( column [ ,...n ] ) ] |
ON { stored_procedure | extended_procedure } | 
ON {user_defined_function } } 
TO security_account [ ,...n ] [ CASCADE ]

REVOKE 撤销授权

REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。

收回语句权限的语法形式为:
REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ]
例如:
revoke select, insert, update, delete, references, alter, index on username.table_name to username;
收回 对象权限的语法形式为:
REVOKE[ GRANT OPTION FOR ] { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [( column [ ,...n ] ) ] 
ON { table | view } | 
ON { table | view } [ (column [ ,...n ] ) ] | 
ON { stored_procedure | extended_procedure } |
ON { user_defined_function } } {
TO | FROM } security_account [ ,...n ][ CASCADE ] [ AS { group | role } ]

数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。

4、常用的TCL语句:

SAVEPOINT 设置保存点 

“保存点”就像是一个标记,标记事务中的某个点以便将来可以回滚,用来将很长的事务划分为若干个较小的事务,它与回滚一起使用以回滚当前事务部分;

ROLLBACK 回滚

用于事务出错时回滚数据;

COMMIT 提交

用于结束事务,对数据库做永久性修改,擦除事务中的所有保存点。COMMIT语句表示所有SQL语句均已执行完毕,事务成功结束,数据库处于一致状态;

事务是一个或多个SQL语句序列,在程序更新数据库时事务至关重要,因为必须维护数据的完整性;


你可能感兴趣的:(Sql相关知识,Oracle)