第五章:事务,视图,索引,备份和恢复
1.事务是指将一系列数据操作捆绑成为一个整体进行统一管理.
一、事务语法:
1.开始事务
语法: BEGIN 或 START TRAINSACTION;
2.提交事务:执行的所有数据更新将永久地保存在数据库数据文件中
语法: COMMIT;
3.回滚事务:将数据状态回滚到事务开始前
语法: ROLLBACK;
4.设置自动提交开或关
MySQL中默认开始自动提交模式
关:值0: 关闭自动提交
语法: SET autocommit=0;
开:值1:开启自动提交
语法: SET autocommit=1;
二、编写事务时要遵循以下原则:
- 事务尽可能简短
- 事务中访问的数据量尽量最少
- 查询数据时尽量不要使用事务
- 在事务处理过程中尽量不要出现等待用户输入的操作
什么是视图?
视图是保存在数据库中的select查询
三、创建和使用视图
1.使用SQL语句创建视图
语法: CREATE VIEW 视图名
AS
<SELECT 语句>;
注意:在SQL语句命名规范中,视图一般以view_xxx或v_xxx的样式来命名.
使用SQL语句删除视图
语法:DROP VIEW [IF EXISTS] 视图名;
2.使用SQL语句查看视图数据
语法:SELECT 字段1, 字段2,…..FROM view_name;
3.使用时视图要注意
每个视图中可以使用多个表与查询相似一个视图可以嵌套另一个视图,但最好不要超过三层
对视图数据进行添加,更新和删除操作直接引用表中的数据当视图数据来自多个表时,不允许添加和删除数据。
什么是索引?
根据索引的存储类型,可以将索引分为B-树索引(BTREE)和哈希索引(HASH)索引的作用是通过使用索引。
四、索引
索引分类:
普通索引、唯一索引、主键索引、全文索引、空间索引
普通索引
普通索引时MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值.它的唯一任务是加快对数据的访问速度.
唯一索引
唯一索引不允许两行具有相同的索引值.创建唯一索引的列允许有空值.
主键索引
主键索引要求主键中的每个值时非空,唯一的.
复合索引
可以将多个列组合作为索引,这种索引称为复合索引.
全文索引
全文索引的作用是在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值.
五、索引的语法
1.创建索引
语法: CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
ON table_name (column_name[length].....);
(1)UNIQUE | FULLTEXT | SPATIAL: 分别表示唯一索引,全文索引和空间索引,为可选参数
(2)Index_name :指定索引名
(3)Table_name:指定创建索引的表名
(5)column_name:指定需要创建索引的列
(6)Length:指定索引长度
2.删除索引
语法: DROP INDEX index_name ON table_name;
(1)删除表时,该表的所有索引将同时被删除
(2)删除表中的列时,如果要删除的列为索引的组成部分,则该列也会从索引中删除.
3.查看索引
语法: SHOW INDEX FROM table_name;
(1)在查询语句后加”\G”,表示将结果集按列表示.
六:备份和恢复
mysqldump命令备份数据库
1.mysqldump命令格式
语法:mysqldump -u username -h host -ppassword dbname[tbname1[,tbname2.....]]
>filename.sql
解析:
Username:表示用户名
Host表示登录用户的主机名称,如本机为主机可省略
Password表示登录密码
Dbname为需要备份的数据库
Tbname为需要备份的数据表,可指定多张表,为可选项.如备份整个数据库则此项省略
Filename.sql表示备份文件的名称
2.mysql命令恢复数据库
语法: mysql -u username -p [dbname]<filename.sql
解析:
username 表示用户
Dbname 数据库名
filename.sql 为数据库备份后的文件
注意:在执行该语句之前,必须在MySQL服务器中创建新数据库,如果不存在新数据库恢复数据库过程将会出错。
3.Mysql命令在DOS环境下的恢复数据库命令:
语法:source filename;
通过复制文件实现数据恢复