本文主要是介绍DCL(数据控制语言)、DTL(事务控制语言)和mysql编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DCL
简介:很多时候一个数据库需要多人进行控制和操作,这时就需要使用数据控制语言来创建账户以及分配可使用权限,可见该语言主要涉及2个问题:
- 用户管理
- 权限分配
mysql中的权限
首先理解什么是权限,简单来说就是可执行的操作,在mysql中主要用某种字段的开或者关来表示是否有某种权限,权限名如:’select’, ‘update’,大约有30个。
主要权限如下:
mysql中的用户
Mysql中可使用数据库的帐户信息在系统数据库mysql中的user表中:
创建用户:
语法:
Create user ‘用户名’@‘允许其登录的ip地址’ identified by ‘密码’;
解释说明:
- User信息表示创建的用户的用户名及可以登录数据库的ip地址,‘%’表示任何地址
- 用户创建之后,自动在mysql的user表中添加了一条记录,但没有权限
删除用户:
语法:
Drop user ‘用户名’@’允许其登录的地址’
修改用户密码:
修改自己密码:set password = password(‘新密码’);
修改他人密码(在右修改权限条件下):
Set password for ‘用户名’@’允许其登录的地址’ = password(‘新密码’);
权限分配
增加权限:
简单地说就是赋予某个用户对数据库可执行某种操作的权限
语法:
Grant 权限1, 权限2, …… on 数据库名.对象名 to ‘用户名’@‘允许其登录的地址’ identified by ‘密码’;
解释说明:
- 权限名:’select’, ‘update’, ‘delete’,等等。其中ALL表示”所有权限”,与all privileges也一样
- 对象名:数据库中含有的例如‘表’,‘视图’,‘存储函数’,‘存储过程’等,其中*代表所有
- Identified by ‘密码’ 用于给一个用户修改密码,不写也行
- 注意该语句同时也有创建该用户并同时分配权限的作用,此时identified by ‘密码’必须写
删除权限:
语法:
Revoke 权限名1,权限名2,…… on 数据库名 . 对象名 from ‘用户名’@‘允许其登录的地址’
事务控制语言
什么是事务
在之间的mysql语句中,我们对mysql的每条操作语句都是操作及执行即结束,那么就可以说这种“一次性执行并结束”的过程称为“一个事务”,即“一条SQL语句即一个事务”。
然而,在很多工作场合,我们需要让“多条SQL语句”看成“一条SQL语句”(表示只有所有的sql语句要么都执行成功要么都执行失败然后结束),工作中的事务就是如此。
事务的作用
举例一个实际应用需求(银行存款):表名cunkuan
id | 账户名 | 存款 |
1 | test1 | 1000 |
2 | test2 | 5000 |
这篇关于DCL(数据控制语言)、DTL(事务控制语言)和mysql编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!