MySQL进阶之路十一(视图,索引)

 .视图
		i 什么是视图,数据库兑现,他是一个虚拟表,底层并非以键值形式保存数据,在执行的过程中,
		动态的从基表中获取数据。(视图以表为底层来查询)
		
		ii 视图基本语法
		#查询班级id为1 的所有学生信息
		create view view_student
		as 
		select *from student where cid = 1 with check option;#添加上with check option保护视图数据,不能修改条件(cid)字段
		
		iii 简单使用(执行增删盖茶操作和表中一致)
		a)视图一般只执行查询,不执行正删改。
		select *from view_student;
		update view_student set sname = 'zs1' where sid =1;//修改了之后,原始表中的数据也会修改
		update view_student set cid = 2 where sname ='zs1';//修改了之后,原始表中的数据也会修改
		
		iv视图优点
			1.安全(保密敏感数据)<有一部分字段是不希望别人看到的>
			2.高效性,提高查询效率
			3.定制化数据,可以将多张表中经常展示数据放置在视图中快速查询
			
		v销毁视图
		drop view  view_student;
		
索引。
	1.什么是索引(提升查询效率而创建数据结构)
		a.B-Tree索引,B+树索引
			MySQL中默认使用B+树方法来维护索引数据
			B+树是一个多路搜索树
			不同的存储殷勤对索引的存储策略是不一样的
			myisam :叶子节点中保存记录的地址。
			innodb :叶子节点直接保存响应数据。
			
		b.位图索引
		c.哈希索引


	2.索引的创建
		普通索引:
			create index index_name on 表(字段)
		
			explain	select *from student where sname = 'lmk'; #type all rows 10
			create index index_sname on student(sname);
			explain	select *from student where sname = 'lmk'; #type ref rows 1
		唯一索引:(主键,唯一约束)特殊的唯一索引
			create unique index index_name on 表(字段);
			explain select *from student where sid = 2; #type const  rows 1,
		全文索引:
		空间索引:
		复合索引:多列作为索引字段create index index_name on 表(字段,字段)
		
		删除索引:drop index index_sname on 表(字段);
		
		
		3.索引列的选择
			索引需要单独表文件来保存维护,
			表数据发生变化需要维护索引表,
			适合添加索引
				表的数据量足够大
				表如果增删改操作较少
				高基数列(重复数据不能太多)
				
			索引说明:
				索引不适合添加过多
				经常把索引列作为查询条件列适合作为索引
				但是某些特殊情况下索引会失效(类似模糊查询,)
				
#查询班级中名字不同的所有学生(将名字相同的学生,只取出一个)
select * from student where sid in (select max(sid) from student group by sname)
#查询班级中所有名字重复的学生姓名
select * from student where  sname in (select sname from student group by sname having count(1)>=2 );
				

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值