一.索引:
定义:一种高效获取数据的存储结构,类似于字典的目录
优点:可以提高查询效率,减少io操作
缺点:维护成本高,会降低其他操作的执行速度
使用:
(1)索引分类:
普通索引:index 可以为空 可以重复
唯一索引:unique 可以为空 不能重复
主键索引:primary key 不能为空且唯一
多列索引:index() 将多个字段绑定到一起添加一个索引
(2)添加索引:
格式 alter table 表名 add 索引类型(字段名)
(3)查看索引:
格式 show index from表名
(4)删除索引:
格式drop index 字段名 on 表名
删除主键索引:
先删除自增属性然后删除主键
alter table 表名 change id id int
alter table 表名 drop primary key
二、视图
定义:是一张虚拟的表,有字段和数据,只存放查询语句,基于原表。
特点:(1) 简单:
视图构建了一个虚拟的表,表里的数据来源于复杂的查询语句,
我们将复杂的查询语句存入视图,使用时直接调用试图

(2)安全:
                 数据库有权限设置,但是没有对行和列的权限,可以用视图查询用户需要的数                
                  据,用户基于视图进行查询。

(3)数据独立:
视图基于原表,当原表结构发生变化时,不会对视图产生影响、
缺点:
会降低查询效率,会增加数据库的维护和管理成本
使用:
(1).创建视图:
create view 视图名 as (查询语句);
(2)查看视图:
show table status where comment=’view’;
(3)使用视图:
select * from 视图名;
(4)删除视图:
drop view 视图名;
三.触发器:
定义:触发器是一个特殊的存储过程,不需要手动触发,由事件触发,
事件包括 INSERT UPDATE DELETE,当表中出现这些特定事件时,触发
使用:
(1)创建触发器:
create trigger 触发器的名字 触发时机(after或 before) 触发事件
on 表名 for each row begin 触发器要执行的sql语句 end
(2)使用触发器:
在表中创建触发事件 触发另一张表所执行的sql语句
(3)查看触发器:
select * from information_schema.trigger
(4)删除触发器:
drop trigger 触发器名字