MySQL 基础知识9 (事务控制和本地化)
一、控制事务处理
1. 相关术语 (如下所示)
(1). 事务(TRANSACTION):指一组SQL语句
(2). 回退(ROLLBACK):指撤销指定SQL语句的过程 (只能在一个事务处理内使用,即START TRANSACTION语句之后)
(3). 提交(COMMIT):指将未存储的SQL语句结果写入数据库表
(4). 保留点(SAVEPOINT):指事务处理中设置的临时占位符,你可以对它发布回退 (与回退整个事务处理不同)
二、事务处理操作
1. 开启事务
-- 开启事务 START TRANSACTION; SELECT * FROM ordertotals DELETE FROM ordertotals; SELECT * FROM ordertotals;
2. 回滚事务
-- 回退事务:ROLLBACK -- 说明:允许回退的操作语句:INSERT、UPDATE、DELETE语句, 不能回退SELECT、CREATE、DROP语句 ROLLBACK;
3. 提交事务
-- 提交事务:COMMIT -- 说明:一般MySQL语句都是直接针对数据库表执行和编写的,又称为隐含提交, 即提交(写或保存)操作是自动进行的 START TRANSACTION; DELETE FROM products WHERE prod_id = 'Test'; COMMIT;
4. 使用保存点
-- 使用保留点:SAVEPOINT -- 说明1:用于支持回退部分事务处理, 能在事务处理块中合适位置放置占位符(即保留点) -- 说明2:保留点越多越好 (越多的保留点越能按业务需求处理事务回退) -- 说明3:释放保留点 (保留点在事务处理完成(执行一条COMMIT或ROLLBACK)后自动释放, 也可用RELEASE SAVEPOINT) SAVEPOINT delete1;
5. 更改提交方式
-- 更改默认提交行为 -- 默认的MySQL行为是自动提交所有更换的, 任何时候你所执行的一条SQL语句, 实际上都是针对表执行的 -- 为指示MySQL不自动提交更改, 需要使用以下语句:autocommit 是针对每个连接而不是服务器的 SET autocommit = 0;
三、全球化和本地化
1. 相关术语 (如下所示)
(1). 字符集:为字母和符号的集合
(2). 编码:为某个字符集成员的内部表示
(3). 校对:为规定字符如何比较的指令
2. 查看所支持的字符集完整列表
SHOW CHARACTER SET;
3. 查看所支持校对的完整列表 (_cs表示区分大小写, _ci表示不区分大小写)
SHOW COLLATION;
4. 确认字符集和校对的完整列表
SHOW VARIABLES LIKE 'character%'; SHOW VARIABLES LIKE 'collation%';
5. 创表时指定字符集和校对
CREATE TABLE mytable( id INT, name VARCHAR(20) ) DEFAULT CHARACTER SET hebrew COLLATE hebrew_general_ci;
6. 数据库用户管理
-- 使用名称为mysql的数据库连接 USE mysql; -- 查看mysql数据库下user用户表所有的用户 SELECT user FROM user; -- 创建用户 CREATE USER test IDENTIFIED BY 'test'; -- 重命名用户 RENAME USER test TO alex; -- 删除用户 DROP USER alex;
7. 数据库用户授权
-- 查看访问权限(设置条件:要授予的权限, 被授予权限的数据库和表, 用户名) SHOW GRANTS FOR test; -- 针对用户赋予特定数据库或表的某些权限 (下例表示为test用户授予basic所有表的select权限) GRANT SELECT ON basic.* TO test; -- 撤销特定权限:REVOKE REVOKE SELECT ON basic.* FROM test;
说明:不同层次的控制访问权限 (如下所示)
(1). 整个服务器:使用GRANT ALL 和 REVOKE ALL;
(2). 整个数据库:使用ON DATABASE.*;
(3). 特定数据表:使用ON DATABASE.TABLE;
(4). 特定的列;
(5). 特定的存储过程;
8. 更改用户口令(或密码)
SET PASSWORD FOR 用户名@localhost = PASSWORD('新密码');
网站:www.codeboy.top
公众号:橙汁就是奥润几

浙公网安备 33010602011771号