索引的作用
索引相当于一本字典目录,能够提高数据库的查询效率,表中每一个字段都可添加索引。主键会自动添加索引,在查询时,如果能通过主键查询的尽量使用主键查询,效率高。
MySQL数据库表中的检索方式有两种:
全表扫描(效率低)
例如:select * from emp where ename = ‘KING’;如果ename字段没有添加索引的话,就会发生全表扫描。
通过索引检索
什么情况下适合添加索引
该字段数据量庞大;
该字段很少的DML操作(由于索引也需要维护,DML操作多的话,也影响检索效率);
该字段经常出现在where条件中;
注意:实际开发中会根据项目需求等综合因素来做调整,添加索引并不能保证一定能够提升检索效率,索引添加不当也有可能会导致效率降低。
使用索引
创建索引
语法:
create index 索引名 on 表名(列名);
示例:
create index dept_dname_index on dept(dname);
查看索引
语法:
show index from 表名;
示例:
show index from dept;
删除索引
语法:
drop index 索引名 on 表名;
示例:
drop index dept_dname_index on dept;
视图
视图其实就是一个查询结果,相当于是一张虚拟表,也可以将视图看做是一个SQL语句,视图的作用可以隐藏表的实现细节。
创建视图
语法:
create view 视图名称 as 查询语句;
示例,将emp表中的empno、ename、sal作为视图展示:
create view e_info as select empno,ename,sal from emp;
使用视图:
select * from e_info;
修改视图
语法:
alter view 视图名称 as 查询语句
示例:
alter view e_info as select ename,job from emp;
删除视图
语法:
drop view if exists 视图名称;
示例:
drop view if exists e_info;
数据库的导出和导入
导出命令,在命令提示符下:
mysqldump -u root -p monkey1024 > d:/init.sql
上面的monkey1024是要导出的数据库的名称。
导入sql脚本,在命令提示符(管理员权限)下登录成功后,输入下面内容:
source d:/init.sql
即source后写上sql文件的目录地址。