保定建设信息网站,重庆网站备案流程,私人承包小工程哪里有,做一般的公司门户网站投资额文章目录 一、简介1、概述2、存储过程中的控制结构及应用场景3、存储过程的优点4、语法 二、示例1、创建存储过程2、查看存储过程3、 修改存储过程4、删除存储过程 一、简介
1、概述
存储过程在使用过程中是将常用或者复杂的工作预先使用sql语句写好并用一个指定的名称存储起… 文章目录 一、简介1、概述2、存储过程中的控制结构及应用场景3、存储过程的优点4、语法 二、示例1、创建存储过程2、查看存储过程3、 修改存储过程4、删除存储过程 一、简介
1、概述
存储过程在使用过程中是将常用或者复杂的工作预先使用sql语句写好并用一个指定的名称存储起来这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时只需要调用它即可。存储过程在执行上比传统sql速度更快、执行效率更高。
2、存储过程中的控制结构及应用场景
存储过程在数据库中 创建并保存它不仅仅是SQ语句的集合还可以加入一些特殊的控制结构也可以控制数据的访问方式。存储过程的应用范围很广例如封装特定的功能、 在不同的应用程序或平台上执行相同的函数等等。
3、存储过程的优点
执行一次后会将生成的二进制代码驻留缓冲区提高执行效率 SQL语句加上控制语句的集合灵活性高 在服务器端存储,客户端调用时降低网络负载 可多次重复被调用可随时修改不影响客户端调用 可完成所有的数据库操作也可控制数据库的信息访问权限。
4、语法
CREATE PROCEDURE 过程名 ([过程参数[,…] ]过程体
[过程参数[,…] ] 格式
过程名: 尽量避免与内置的函数或字段重名
过程体: 语句
[ IN I OUT I INOUT ]参数名类型二、示例
1、创建存储过程
#将语句的结束符从分号临时改为两个$$(可自定义)
mysql delimiter $$
#创建存储过程过程名为proc不带参数
mysql create procedure proc()
#以关键字begin开始- begin
#存储过程中有哪些参数- create table xx (id int (10), name char(10),score int (10));
#插入数据- insert into xx values (1,hmbb,18);
#过程体语句- select * from xx;
#过程体以关键字end结束- end $$
Query OK, 0 rows affected (0.02 sec)
#讲语句的结束符号恢复为分号
delimiter ;2、查看存储过程
mysql show create procedure proc\G
*************************** 1. row ***************************Procedure: procsql_mode: PIPES_AS_CONCAT,ANSI_QUOTES,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONCreate Procedure: CREATE DEFINERrootlocalhost PROCEDURE proc()
begin
create table xx (id int (10), name char(10),score int (10));
insert into xx values (1,hmbb,18);
select * from xx;
end
character_set_client: utf8
collation_connection: utf8_general_ciDatabase Collation: utf8_general_ci
1 row in set (0.00 sec)
#查看指定存储过程信息
mysql SHOW PROCEDURE STATUS like %proc%\G
*************************** 1. row ***************************Db: className: procType: PROCEDUREDefiner: rootlocalhostModified: 2023-07-20 14:56:12Created: 2023-07-20 14:56:12Security_type: DEFINERComment:
character_set_client: utf8
collation_connection: utf8_general_ciDatabase Collation: utf8_general_ci
1 row in set (0.00 sec)
3、 修改存储过程
格式
ALTER PROCEDURE 过程名[特征... ]
#示例
ALTER PROCEDURE GetRole MODIFIES SQL DATA SQL SECURITY INVOKER;4、删除存储过程
存储过程内容的修改方法是通过删除原有存储过程之后再以相同的名称创建新的存储过程。EXISTS检验存不存在
DROP PROCEDURE IF EXISTS Proc;