MySQL存儲過程

  存儲過程,可以說是將一些功能封裝到一起就相當於存儲過程,在mysql中函數和存儲過程是兩個不同的東西,不要混淆。

  建立存儲過程:

1、聲明存儲過程

mysql> delimiter //                   "delimiter//"表示先把mysql結束符改成"//"

mysql> create procedure delstu ()

    -> begin

    -> delete from member;

    -> end //                     

mysql> delimiter ;                   "delimiter ;"表示把結束符再改回到";"狀態

2、調用存儲過程

mysql> call delstu;


3、刪除存儲過程

mysql> drop procedure delstu;


建立可以傳參數的存儲過程

mysql> delimiter //

mysql> create procedure delstuline (in sid int)        //in爲傳入值

    -> begin

    ->     delete from student where ID = sid;

    -> end //

mysql> delimiter ;

mysql> call delstuline(14);   //調用存儲過程時,就會把ID爲14的數據清除


建立一個插入數據的存儲過程

mysql> delimiter //

mysql> create procedure insertline (in name varchar(10),gender enum("男","女"),age tinyint,score tinyint,address varchar(200))

    -> begin

    -> insert into student (Name,Gender,Age,Score,Address) values (name,gender,age,score,address);

    -> end //

mysql> delimiter ;

mysql> call insertline("小白","女",20,65,"北京市大興區");   //調用存儲過程將插入數據


建立一個統計數據的存儲過程

mysql> delimiter //

mysql> create procedure countline (out tj int)      //out爲返回值

    -> begin

    -> select count(*) into tj from student;

    -> end //

Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql> call countline(@tj);          //調用存儲過程

mysql> select @tj;                //輸出返回值


建立一個查看所有數據的存儲過程

mysql> delimiter //

mysql> create procedure showtable()

    -> begin

    -> select * from student;

    -> end //

mysql> delimiter ;


建立一個if循環存儲過程

mysql> delimiter //

mysql> create procedure insertlines ()

    -> begin

    ->   set @i = 0;

    ->   aa:loop

    ->     insert into student (Name,Gender,Age,Score,Address) values ("張三丰","男",80,97,"武當山");

    ->     set @i = @i + 1;

    ->     if @i < 10 the

    ->       iterate aa;

    ->     end if;

    ->     leave aa;

    ->   end loop aa;

    -> end //

mysql> delimiter ;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章