Mysql----浅入浅出之事务处理及其他

一、事务 Transaction

1.事务处理可以保持数据的完整性,整批的sql操作要么不执行,要么全都执行完毕。然而并不是所有数据库引擎都支持事务处理,例如,InnoDB支持,而MyISAM不支持。所以创建表时候要选择对应的引擎,如果有需要的话。

2.在事务执行过程中,可以用ROLLBACK来回滚事物内的操作。但是ROLLBACK只对INSERT、UPDATE和DELETE操作有效,对CREATE和DROP是无效的。

3.一般的sql语句都是mysql自动提交的,但是在事务处理块中,提交不会隐含进行,必须明确指定什么时候提交。这时候使用COMMIT语句。在COMMIT和ROLLBACK执行后,事务会自动关闭。

4.用START TRANSACTION表示事务的开始。

eg:START TRANSACTION 

DELETE FROM student WHERE sid = 125;

DELETE FROM school WHERE sid = 125;

COMMIT;

5.使用ROLLBACK或COMMIT可以写入或撤销整个事务,但是在某些需求下,可能需要部分的提交或回滚。这时,就用到了保留点SAVEPOINT。

eg:

START TRANSACTION 

DELETE FROM student WHERE sid = 125;

SAVEPOINT delete1;

DELETE FROM school WHERE sid = 125;

ROLLBACK TO delete1;

6.在平时使用中,如果不想mysql自动的提交sql语句,可以这样更改:

eg:SET autocommit = 0;

但是,这个设置是针对当前连接的,而不是针对数据库服务器的。

二、字符集和校对顺序

mysql支持很多的字符集和校对顺序,可以这样查询:

eg:SHOW CHARACTER SET;

SHOW COLLATION;

通常系统在安装时定义一个默认的字符集和校对。也可以在创建数据库、表时指定。甚至不同的列有时候都需要不同的字符集,这些都可以再创建时指定。

eg:CREATE TLBLE mytable

(

columnn1 INT,

columnn2 VARCHAR(10)

) DEFAULT CHARACTER SET hebrew

  COLLATE hebrew_general_ci;

eg: CREATE TABLE mytable

(

columnn1 INT,

columnn2 VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_general_ci

DEFAULT CHARACTER SET hebrew

  COLLATE hebrew_general_ci;

也可以再SELECT语句ORDER BY子句中指定:

eg:SELECT * FROM student ORDER BY name COLLATE latin1_general_cs;

三、账户管理

1.账户

查看所有账号:

eg:use mysql;

select user from user;

创建账号:

eg:CREATE USER wang IDENTIFIED BY 'passw0rd';

重命名:

eg:RENAME USER wang TO lulu;

删除:

DROP USER lulu;

2.权限

查看账户权限:

eg:SHOW GRANTS FOR lulu;

赋予权限:

eg:GRANT SELECT ON edu.* TO lulu;

撤销权限:

eg:REVOKE SELECT ON edu.* FROM lulu;

权限不只对于数据库、表,甚至细致到列、存储过程。

更改密码:

eg:SET PASSWORD FOR lulu = Psaaword('newpass');

新密码必须传入到Password()加密。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值