存储引擎就是指表格的类型,数据引擎决定了表在计算中的存储方式。
mysql>show engines \G;
或者
mysql>show variables like 'have%';
mysql>show variables like 'storage_engine';
优点:支持事务处理、外键,支持崩溃修复能力和并发控制
缺点:占用空间较大,读写效率稍差
优点:处理速度快,占用空间少
缺点:不支持事务的完整性和并发性
表格的所有数据存储在内存中,内存出现异常会影响数据的完整性。
优点:数据存储在内存中,处理速度非常快。
缺点:安全性比较差,数据容易丢失,生命周期短。
MySQL的结束符默认的是 ';',改变结束符用关键字delimiter
格式为:DELIMITER+'更换符'
eg:将结束符改为'//', delimiter //
格式; create procedure 名称()
begin
statement;
end;
eg: create procedure p()
begin
select * from t;
end;
调用存储过程; call 名称();
存储过程中的参数有三种类型: in,out,inout
形式:create procedure ([[in|out|inout]参数名称 参数类型……])
in:输入参数,表示该参数的值必须在调用的存储过程时指定,在存储过程中修改该参数的值不能被返回,该参数为初始值。
out:输出参数,该值可在存储过程内被改变,并可返回。
inout:输入输出参数,调用时指定,并且可被改变和返回。
变量声明格式:declare variable_name[,variable_name……] datatype [default value];
其中,datatype为MySQL数据类型:int float date varchar(length)…
a.变量赋值: 格式: set 变量名=表达式值
b.用户变量
select name from mysql.proc where db='数据库名称';
或者
select routine_name from information_schema.routines where routine_schema='数据库名称';
或者
show procedure status where db='数据库名称';
存储过程的详细查询:
show create procedure 数据库.存储过程名称;
alter procedure
drop procedure 和删除表格一样
create function 函数名([参数名称 参数类型...]) returns 返回类型
begin
statement;
end;
eg: create function getCount(n int)returns int
begin
declare var int;
set var=10;
return var+n;
end;
调用函数:select getSum(n); eg: select getCount(10);