第五章.事物,视图,索引,备份,恢复
★.存储过程
语法:
delimiter $$
create procedure usp_list()
begin
select * from student;
end$$
delimiter ;
1.事务
概念:
就是一堆操作的集合。要么都执行成功,要么都执行失败
基本要素:
基本要素:
1.原子性:事务是一个完整的操作。事物的各元素是不可分的。
2.一致性:事务完成时,数据必须处于一致状态。
3.隔离性:事务是独立的,它不应以任何方式依赖于或影响其他事务。
4.持久性:事务的处理结果是永久的。
执行事物的语法:
1.开始事务
语法:
begin; 或 start transaction;
2.提交事务
语法;
commit;
SET autocommit = 0; 关闭自动提交 SET autocommit = 1; 开启自动提交
3.回滚(撤销)事务
语法:
rollback;
编写事务时要遵守一下原则:
1.事务尽可能简短
2.事务中访问的数据量尽量最少
3.查询数据时尽量不要使用事务
4.在事务处理过程中尽量不要出现等待用户输入的操作
2.视图
概念:
一种虚拟表,通常作为来自一个或多个表的行或列的自己创建的
作用:
1.筛选表中的行
2.房子未经许可的用户访问敏感数据
3.将多个物理数据表抽象为一份逻辑数据表
对用户的好处:
1.结果更容易理解
2.获得数据更容易
对开发人员的好处:
1.限制数据检索更容易
2.维护应用程序更方便
使用SQL语句创建视图
语法:
create view 视图名 as <select 语句>
命名规范:view.xxxx 或 v.xxxx
使用SQL语句删除视图
语法:
drop view [if ixists] 视图名
使用SQL语句查询视图数据
语法:
select 字段1,字段2,…… from view_name
使用视图的注意事项
1.每个视图中可使用多个表
2.与查询相似,一个视图可以嵌套另一个视图,但最好不要超过三个
3.对视图数据进行添加,更新和删除操作直接引用表中的数据
4.当时图数据来自多个表时,不允许添加和删除数据
3.索引
概念:
是一种有限组合数据的方式,为了快速查找指定记录
索引分类
1.普通索引 允许在定义索引的列中插入重复值和空值
2.唯一索引 不允许有两行具有相同的索引值
3.主键索引 定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型
4.复合索引 可以将多个列组合作为索引
5.全文索引 在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值
6.空间索引 是对空间数据类型的列建立的索引
创建索引
语法:
create 索引类型 index index_name
删除索引
语法:
drop index index_name on table_name
建立索引的标准
1.频繁搜索的列
2.经常用作查询选择列
3.经常排序,分组的列
4.经常用作连接的列(主键 / 外键)
查看索引
语法:
show index from table_name;
例如:
4.备份和恢复
mysqldump命令格式
备份数据库
语法:
mysqldump -u 用户名 -h 主机名称(本机可省略) -p 密码
需要备份的数据库 [表名.....] >备份文件的名称.sql
恢复数据库
语法:
mysql -u 用户名 -p 密码 [数据库名] <备份后的文件