索引
1.普通索引
alter table 表名 add index 索引名(列);
2.唯一索引
alter table 表名 add unique index 索引名(列);
3.单列索引
alter table 表名 add index 索引名(列);
4.组合索引
alter table 表名 add index 索引名(列1,列2,列3);
5.全文索引(只为char、varchar、text列做全文索引)
alter table 表名 add fulltext index 索引(info);
6.空间索引(只为空间类型的字段必须为非空如:列名 geometry not null)
alter table 表名 add spatial index 索引名(列);
7.创建索引语法
Create [unique唯一性索引|fulltext全文索引|spatial空间索引] index 索引名 on 表名(列名)
判断索引是否被使用
explain select * from 表名 where 索引列条件
查看索引
show create table 索引表名
show index from 索引表名\G
删除索引
alter table 表名 drop index 索引名;
drop index 索引名 on 表名;
视图
1.创建单表视图
create view 视图名 as select 表列1,表列2... from 表;
2.创建多表视图
create view 视图名(视图列) as select 表1列,表2列 from 表1,表2 where 条件
查看视图
show table status like '视图名'\G
查看详细视图
show create view 视图名\G
查看数据库中所有视图(views是所有视图)
select * from information_schema.views\G
修改视图
create or replace view 视图名 as select 列名 from 表名;
alter view 视图名 as select 列名 from 表名;
更新视图(update表和视图都会被更改值)
update 视图名 set 列名=值
插入数据(insert表和视图都会被插入值)
insert 表名 value (值1,值2);
删除数据(delete表和视图都会被删除)
delete from 表名 where 条件
删除视图
drop view 视图名;
存储
最好先修改结束符(delimiter)
1.创建存储
create procedure 存储名() begin 条件(select什么的都可以) end(结尾); //begin开头,end结尾
使用存储 call 存储名()
2.带in的存储(变量会在存储里面变化,出来不变)
设置临时变量 set @a=200
查看变量 select @a
create procedure 存储名(in 变量 数字类型) begin 条件 and
3.带out的存储(进去都为null,变量会在存储里面变化,出来是存储的值)
create procedure 存储名 (out 变量 数字类型) begin 条件 and
4.带inout的存储(进去不会变化,变量会在存储里面变化,出来是存储的值)
create procedure 存储名 (inout 变量 数字类型) begin 条件 and
查看存储语法
show create procedure 存储名
查看存储语句
show procedure status like '存储名';
删除存储过程
drop procedure 存储名;
触发器
创建一个insert的触发器
Create trigger 触发器名 after insert on数据表 for each row begin 条件 end //trigger触发器 after在…之后 insert插入 on在…之上for each row每一行触发器
创建一个update的触发器
Create trigger 触发器名 after update on数据表 for each row begin 条件 end //trigger触发器 after在…之后 update 更新 on在…之上for each row每一行触发器
创建一个delete触发器
Create trigger 触发器名 after delete on数据表 for each row begin 条件 end //trigger触发器 after在…之后 delete 删除 on在…之上for each row每一行触发器
查看触发器
Show triggers\G(全部的)
show create trigger 触发器名\G(查看详细的单个)
show triggers from 数据库(查看数据库里的触发器)
删除触发器
Drop trigger 触发器名;