事务处理
用COMMIT和ROLLBACK来管理事务处理。MyISAM不支持事务处理,InnoDB支持事务处理。
事务处理可以用来维护数据库的完整性,保证成批的MySQL操作要么完全执行,要么完全不执行。
START TRANSACTION;
ROLLBACK;//回滚,中间处理取消
START TRANSACTION;
DELETE FROM orderitems WHERE order_num = 20010;
DELETE FROM order WHERE order_num = 20010;
COMMIT;
更复杂的事务处理需要用到部分提交或回退,SAVEPOINT保留点
SAVEPOINT delete1;
ROLLBACK TO delete1;
字符集和校对
SHOW CHARACTER SET;显示所有可用的字符集以及每个字符集的描述和默认校对。
SHOW COLLATION;显示所有可用的校对,以及使用的字符集。
对整个数据库或一列设置字符集,CHARACTER SET utf-8
安全管理
用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。多数用户只能对表读写,少数能创建和删除表。
日常工作中不能使用root。MySQL用户账号和信息存储在mysql的数据库中
USE mysql;
SELECT user FROM user;
创建新用户账号,使用GRANT或INSERT GRANT也创建用户。
CREATE USER ben IDENTIFIED BY PASSWORD;
删除用户
DROP USER ben;
GRANT赋予权限要给三个信息:要赋予的权限,数据库或表,用户名
GRANT SELECT ON table1 TO ben;
REVOKE撤销特定的权限。
备份数据
- 使用命令行实用程序mysqldump转储所有数据库内容到某个外部文件。
- 使用命令行实用程序mysqlhotcopy从一个数据库复制所有数据
- 使用MySQL的BACKUP TABLE转储所有数据到某个外部文件
索引
引自[https://www.jianshu.com/p/0d6c828d3c70]
索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表。
MySQL中的索引的存储类型有两种:BTREE、HASH,树或哈希。
创建索引和维护索引要消耗时间,对表增删改查时,索引也要维护。
MyISAM和InnoDB支持BTREE索引。
索引分为四类,单列索引、组合索引、全文索引、空间索引。
- 单列索引,一个索引只包含单个列
- 组合索引,在表中的多个字段组合上创建的索引
- 全文索引,在一堆文字中,通过某个关键字就能找到该记录
- 空间搜索
创建表的时候创建索引
总结
《MySQL必知必会》针对于数据库新手,这次学习此书算是对SQL的一个全面复习,后面需要对MySQL高级知识进行一个系统性学习。