索引 视图 存储过程 函数
索引:定义:加快select查询的最快途径。
分类:Btree索引和Hash索引
支持:前缀索引,全文索引,空间列类型索引。Btree(MyISAM)Hash(MEMORY)。
创建:create index __ on __() ;
删除:drop index __ on __ ;
Btree 和 Hash区别:Btree用来可以检索范围内的值,Hash用来精确查找。
索引:primary key , unique , index , fulltext 。
视图:定义:视图是虚拟的表,用来提高真实表的安全性的。解耦。
创建:create or replace view __ as __ with cascaded/local check option ;
修改:alter view __ as __ with cascaded/local check option ;
删除:drop view if exists __ ;
查看:show tables ; show tables status like __ \G ; show create view __ \G ;
local 和 cascaded :local两个表只要满足本视图的条件就可以更改,必须满足针对改视图的所有视图才能更改
存储过程和函数:
定义:是事先经过编译并存储在数据库中的一段sql语句的集合,用来减少数据库和应用服务器之间的传输。
创建:create procedure __ ;
create function __ returns __;
具体实现:DELIMITER $$
create procedure __ (IN __ int,IN __ int ,OUT __ int)
begin
__ ;
end $$
DELIMITER ;
调用:CALL __();
删除:drop procedure if exists __ ;
查看:show procedure status like __ \G ;show create procedure __ ;
内部定义变量:declare __ __ ;
变量赋值: set __ = __ ;
定义条件和处理:declare continue handler for sqlstare '23000' set @x1=2 ;
光标:在存储过程里面可以用光标进行结果集的循环处理,
声明:declare __ cursor for __ ;
open:open __ ;
fetch:fetch __ ;
close:close __ ;
流程控制:
if: if __ then __ elseif __ then __ else __ end if ;
case: case __ when __ then __when __ then __else __ end case ;
loop: __:loop __ end loop__ ; (leave __ 代表退出loop循环,相当于java中的break)。
iterate:iterate代表跳过本次循环,相当于java中的continue ;
repeat: __:repeat __ until __ end repeat __ ;
while: __:while __ do __ end while __ ;
事件调度器:相当于时间周期触发器的某种操作。
语法:create event __ on schedule __ do__;
删除:drop event __ ;