事务、视图、索引、备份和恢复
事务
1.概念
事务:就是一堆操作的集合,他们同生共死。要么都执行成功,要么都执行失败
2.事务的属性(ACID)
A:原子性 完整的,不可分割的
C: 一致性 事务执行完毕后,数据的状态是一致的
I: ISOLation 隔离性 两个事务执行互不影响
D: 永久性 事务执行完后,对数据的影响是永久的。
3.执行事务的语法
1)、开始事务。
BEGIN; 或 START TRANSACTION;
2)、提交事务。
COMMIT;
这个语句标志一个事务成功提交。自事务开始至提交语句执行的所有数据更新将永久地保存在数据库文件中,并释放链接时占用的资源。
3)、回滚(撤销)事务。
ROLLBACK;
清除自事务起始点至该语句所做的所有数据更新操作,将数据状态回滚到事务开始之前。
示例:
#模拟转账成功,提交事务
#设置结果集以GBK的编码格式显示
SET NAMES gbk;
##开启事务
BEGIN;
UPDATE cardinfo SET balance=balance-300 WHERE cardID='1010357612121134';
UPDATE cardinfo SET balance=balance+300 WHERE cardID='1010357612345678';
##关闭事务
COMMIT;
#模拟转账失败,提交事务
##开启事务
BEGIN;
UPDATE cardinfo SET balance=balance-300 WHERE cardID='1010357612121134';
##撤销事务
ROLLBACK;
视图
1.概念
视图: 就是一张虚拟表,本质上存储的是一对SQL的集合。
2.使用SQL语句创建视图
CREATE VIEW 视图名
AS
<SELECT>语句;
注意:在SQL语句命名规范中,视图一般以view_xxx或v_xxx的样式来命名。
3.使用SQL语句删除视图
DROP VIEW [ IF EXINTS ] 视图名;
4.使用SQL语句查看视图数据
SELECT * FROM 视图名;
索引
1.概念
索引:一种有效组合数据的方式,为快速查找到指定记录
2.索引分类
1、普通索引
2、唯一索引
3、主键索引
4、复合索引
5、全文索引
6、空间索引
4.创建索引
CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名
ON table_name( column_name[ length ] ……);
*UNIQUE | FULLTEXT | SPATIAL :分别表示唯一索引、全文索引、和空间索引,为可选参数。
*table_name:指定创建索引的表名。
*column_name:指定需要创建索引的列。
*length :指定索引长度,可选参数,只有字符串类型才能指定索引长度。
5.删除索引
DROP INDEX 索引名 ON 表名;
备份和恢复
1.使用mysqldump命令备份数据库
mysqldump:MySQL一个常用的备份命令,执行此命令会将包含数据的表结构和数据内容转换成相应的CREATE语句和INSERT INTO语句,保存在文本文件中。
1)mysqldump命令格式
mysqldump -u 用户名 -h 主机名称可省略 -p密码 需要备份的数据库 [ 需要备份的数据表 ] >备份文件的名称
2.使用mysql命令恢复数据库
mysql -u 用户名 -p [ 数据库名 ] <数据库备份文件
3.表数据导出文本文件
select columnlist from tablename [where contion] into outfile 'filename' [option]
4.文本文档导入表数据
load data infile filename into table tablename [option]