mysql视图、事务、索引

  • 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;
发布了63 篇原创文章 · 获赞 1 · 访问量 2042

猜你喜欢

转载自blog.csdn.net/qq_45061361/article/details/104107249