1. 概念: 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需要创建一次,以后再改程序中可以调用多次。如果某次操作需要执行多次SQL,使用存储过程就比单纯的SQL语句执行要快。
2. 优点:
存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
3. 缺点:
调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
4. 存储过程举例(删除给定球员参加的所有比赛)
mysql> delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
mysql> CREATE PROCEDURE delete_matches(IN p_playerno INTEGER)
-> BEGIN
->DELETE FROM MATCHES
-> WHERE playerno = p_playerno;
-> END$$
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter; #将语句的结束符号恢复为分号
5. 调用存储过程: call delete_matches(57);
该执行语句会删除数据表MATCHES中playno为57的球员的记录。
6. drop procedure delete_matches: 删除存储过程 (ps: 不能在一个存储过程中删除另一个存储过程,只能调用 另一个存储过程);
show procedure status: 显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等;
show create procedure delete_matches: 显示某个mysql存储过程的详细信息