SQL——数据控制语言DCL(GRANT,REVOKE,COMMIT,ROLLBACK)

DCL

数据控制语言(Data Control Language,DCL)在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权。

GRANT授权

 GRANT 权限1, … , 权限n ON 数据库.* TO 用户名@IP地址
    // 权限、用户、数据库
    //给用户分派在指定的数据库上的指定的权限

 GRANT ALL ON 数据库.* TO 用户名@IP地址 

//即授予所有权限

SHOW GRANTS;    

//查看所有授权

表级grant只支持如下权限类型:alter、create、createview、delete、drop、grant、index、insert、references、select、show view、update.

列级grant只支持以下权限类型:insert、select、update.

REVOKE取消

REVOKE <权限>  ON <对象类型>  <对象名> FROM <用户>//取消用户授权

事务

数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。

事务的四个性质:

  • 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。  
  • 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。 
  • 隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。 
  • 持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

事务的操作步骤:

  1.  设置自动提交模式关闭 set autocommit=0;
  2.  开始事务,设置事务起点 start transaction;
  3.  执行dml操作(不能写ddl语句,ddl语句会自动提交,破坏事务的完整性)
  4.  commit提交或者rollback回滚
  5.  还原到默认状态set autocommit=1;

BEGIN TRANSACTION  //事务开始
SQL1
SQL2
COMMIT   //事务提交

ROLLBACK回滚

EOLLBACK: 回滚的意思。 就是数据库里做修改后 ( update ,insert , delete)未commit 之前 使用rollback 可以恢复数据到修改之前。

BEGIN TRANSACTION  //事务开始
SQL1
SQL2
 ROLLBACK   //事务回滚

你可能感兴趣的:(SQL,sql)