存储过程的相关学习

存储引擎

    存储引擎就是指表格的类型,数据引擎决定了表在计算中的存储方式。

    1.查看MySql数据库支持的存储引擎

mysql>show engines \G;

     或者

mysql>show variables like 'have%';

    2.查询默认的存储引擎

mysql>show variables like 'storage_engine';

InnoDB存储引擎

    优点:支持事务处理、外键,支持崩溃修复能力和并发控制

    缺点:占用空间较大,读写效率稍差

MYISAM存储引擎

    优点:处理速度快,占用空间少

    缺点:不支持事务的完整性和并发性

MEMORY存储引擎

    表格的所有数据存储在内存中,内存出现异常会影响数据的完整性。

    优点:数据存储在内存中,处理速度非常快。

    缺点:安全性比较差,数据容易丢失,生命周期短。

结束符

    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   和删除表格一样

    ⑥控制语句

        1)条件语句     if-then-else 语句
        2)case语句  
        3)循环语句
                a. while…end while
                b.repeat…until 条件  end repeat
                c.loop… end loop;
                d.labels 标号
        4)iterate迭代:通过引用符合语句的标号来重新开始符合语句。

创建MySQL函数命令

    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);     

你可能感兴趣的:(存储过程的相关学习)