mysql中视图是一张便于查询的虚拟表,不占用内存空间。只是保存了计算需要的sql语句。
创建视图:
Create view 视图名 as select name,brand from 表格名 where brand in (‘b001’,’b002’);
使用视图
当做正常的表格使用就可以。
修改视图
Create or replace view new_car AS SELECT NAME,brand FROM 表格名 WHERE brand IN ('b002','b003')
查看视图
show tables
查看视图详细信息
desc 视图名
视图删改时,如果由单表查询得到的视图的话,该表格也会被修改。如果有多表查询得到的视图的话,表格都不会被删改。
若表格发生删改时,视图也会被删改。
mysql的索引
mysql的索引的建立对mysql的高效运作很重要,有索引的存在大大提高了mysql的检索速度。缺点,索引过多的话,会提高mysql的维护难度,减低维护效率。
索引的结构主要有两种:B+tree和hash索引。
btree索引,例如查询1,2,3,4,5,6,7,8,9这些数据。
hash哈希索引能精确匹配到索引列的值,是按照不同的数据,存储引擎都会给一个相应的哈希码,不同键值的行计算出的哈希码也不相同。
索引的分类
普通索引、主键索引、唯一索引、全文索引
普通索引:仅仅是加快查询速度
唯一索引:不仅加快查询速度,该列的值不能重复
主键索引:主键不能重复且不能为空 主键必唯一,但是唯一索引不一定是主键,一张表上只能有一个主键,但是可以有一个或多个唯一索引
全文索引:fulltext 用于在一篇文章中,检索文本信息的。主要用来优化like语句的,因为like语句会一行一行的查找匹配值,查询效率慢
查看索引:show index from 表名
添加索引
添加主键索引: ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
添加唯一索引:ALTER TABLE `table_name` ADD UNIQUE (`column`)
添加普通索引:ALTER TABLE `table_name` ADD INDEX ( `column` )
添加全文索引:ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
删除索引
删除非主键索引:ALTER TABLE `table_name` drop INDEX ( `column` )
删除主键:ALTER TABLE `table_name` drop PRIMARY KEY
索引的用法
主键、唯一、普通索引的使用,是直接where索引列=’值’
全文索引的使用 :where MATCH(列名) AGAINST(‘搜索值1,搜索值2,搜索值3’);