- 1.视图是一张虚拟的表,他表示一张表的部分数据或多张表的综合数据,
视图的结构是建立在表的基础上 - 2.视图中没有数据,只有表结构,视图中的数据在基表中获取
- 3.一张表可以创建多个视图,一个视图可以引用多张表
视图
#1.视图的创建
create [or replace] view `视图名`
as
sql语句
create view stu_view_1
as
select s_id,s_name,ch,math from student left join marks using(s_id);
#视图创建完毕后,会在对应的文件夹中保存一个.frm的文件,子文件是视图的结构
#2.视图的查询
select * from `stu_view_1`;
#3.修改视图
alter view stu_view_1
as
select * from student;
#使用视图,大大的增加了查询的效率
#4.查看视图信息
show create view stu_view_1\
#5.查看视图结构
desc stu_view_1;
#6.查找视图
show tables;#它也可以查看视图
select table_name from information_schema.views;
show table status where comment='view';
#7.删除视图
drop view stu_view_1;
事务
什么是事务
- 事务是一个不可拆分的工作单元;
- 事务是作为一个整体向系统提交的,要么一起执行,要么一起不执行;
- 事务是不支持嵌套的
事务的特性
- 原子性:不可拆分
- 一致性:要么一起执行,要么一起不执行
- 隔离性:事务彼此没关系
- 永久性:一旦执行成功,不可修改
- 事务只能在innodb引擎下使用
#事务先要开启
start transaction;
#语句
insert into student values(2,'小黑');
insert into student values(3,'小黑');
insert into student values(4,'小黑');
#不成功回滚
rollback;
#成功->提交
commit;
#查看自动提交事务是否开启
show variables like 'autocommit';
#如果是关的
set autocommit=0|1
索引
优点:
加快了mysql的查找速度
缺点:
1.更多的储存空间来储存索引字段名
2.myisam使得insert,update,delete的速度变慢了(查询操作占用90%,cud操作加起来占用10%的操作还未必能达到)
#如果一张表中的索引过多,比如我有50个字段,我给每一个字段都添加一个索引
索引创建
#适合
1.用于频繁查找的列(字段)
2.用于条件判断的列(字段)
3.用于排序的列(字段)
#不适合
1.列中的数据并不多
2.表中的数据量很小
#索引类型
1.普通索引
create index isex on stuinfo(s_id);
alter table student add index isname(s_name);
2.唯一索引
unique
#创建方法如上
3.主键索引
primary key
#创建方法如上
4.全文索引
#xunsearch是一种工具
Fulltext key
只能在myisam表引擎下使用(innodb,myisam创建的话都能创建,但是innodb中无效),使用like的时候提升效率.# where nama like '%你%';
create Fulltext key zu on student(s_name);
5.创建多列索引(组合索引)
create index zu on student(s_name);
alter table student add index isname(s_name);
删除索引
drop index zu on stuinfo;