索引与视图

索引与视图

索引

1.索引的概念
索引是由数据库表中一列或多列组合而成,其作用是提高对表中数据的查询速度。类似于图书的目录,方便快速定位,寻找指定的内容。但是会占用磁盘空间,用空间换时间。
2.索引的分类
①普通索引:是最基本的索引,它没有任何限制;
② 唯一索引:与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一;
③主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值;
④ 组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合;
⑤全文索引:使用FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上。主要作用是提高查询较大字符串类型的速度;
用的较多的是全文索引
3.索引的创建
CREATE FULLTEXT INDEX 【索引名】 ON 【表名 (字段名)】
4.索引的修改
ALTER TABLE 【表名】 ADD FULLTEXT INDEX 【索引名(字段名)】
5.索引的删除
DROP INDEX 【索引名】 ON 【表名】
全文索引的作用
索引与视图
索引与视图
这是没用索引的普通查询

索引与视图
这是用了索引的查询时间,可以看出两者的查询时间差距很大。快了10倍。

数据库备份
项目开发的过程中数据库的备份是必不可少的,很容易有缺失或误删,所以一定要进行数据库额备份。
一般可以用数据库图形化工具备份,但这种情况可能有备份失败的,所以还是得CMD命令备份
命令如下:
mysqldump -user root -password 密码 database > 备份文件.sql;

视图

视图的概念:
视图是从一个或多个表中导出来的表,是一种虚拟存在的表,以表的形式显示但是却没有真正的存在,还是会实际占用物理内存,只是保留了mysql逻辑。
通过视图,用户可以不用看到数据库的整个数据,只需要看到他需要看到的数据就行了。

视图的作用:
1.使操作更容易,2.增加数据的安全性,因为是虚拟存在的数据,所以即使增删改也不会对源数据产生影响。3.逻辑更强,视图可以屏蔽原表结构变化带来的影响。
视图一般使用在多表联查的情况下。

视图的创建:
语法:create view 视图名 as 查询语句;
案例:查询各部门的平均工资级别。
索引与视图

首先,先创建视图查询各部门的平均工资,除了工资个部门ID其他完全不用管。然后再连接工资级别表,对照表只需要看到部门平均工资,工资级别和部门ID就行了。

视图的修改:
语法:①create or replace view 视图名 as 查询语句;
索引与视图

②alter view 视图名 as 查询语句;
索引与视图

①方法:即可创建又可修改,②方法:只能修改已经有了的视图。
删除视图:
语法:drop view 视图名,视图名,…;
查看视图:
有时候视图创建的多了,自己也不记得那个视图是用来干嘛的时候,可以选择查看视图。
语法:DESC 视图名;
SHOW CREATE VIEW 视图名;
更新视图:
通常的更新就是增删改;不改变视图的结构,二十改变里面的数据。往往没啥用,因为一般改原表。
首先创建一个视图。
增加:INSERT INTO 视图名 VALUES(你想添加的值);
修改:UPDATE 视图名 SET 字段名 = ‘你想修改的值’ 后面可接条件 WHERE;
删除:DELETE FROM 视图名 不接条件就是删除整个试图数据。
(全都跟表的增删改一样)
当视图包含:分组函数、distinct、group by、having、union或者union all 这些关键字的时候不允许更新。