网站制作公司昆明,企业建立一个网站如何租用域名,建筑工程网布设,长春 建设工程信息网站1.基本概念
存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合。
2.存储过程和函数的好处
提高代码的复用性。减少数据在数据库和应用服务器之间的传输#xff0c;提高效率。减少代码层面的业务处理。
3.创建和调用存储过程
1创建存储过程
创…1.基本概念
存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合。
2.存储过程和函数的好处
提高代码的复用性。减少数据在数据库和应用服务器之间的传输提高效率。减少代码层面的业务处理。
3.创建和调用存储过程
1创建存储过程
创建存储过程-- 修改分隔符为$[不然默认到;结束后面的执行不到]DELIMITER $-- 标准语法CREATE PROCEDURE 存储过程名称(参数列表)BEGINSQL 语句列表;END$-- 修改分隔符为分号[;前面有空格]DELIMITER ;2调用存储过程 调用存储过程CALL 存储过程名称(实际参数);举例学生表使用存储过程查看信息 1创建stu_group()存储过程封装 分组查询总成绩并按照总成绩升序排序的功能
DELIMITER $$ -- 修改sql的结束符CREATE PROCEDURE stu_group();
BEGINSELECT gender ,SUM(score) getsum FROM student GROUP BY gender ORDER BY getsum ASC;
END $$DELIMITER ; -- 将SQL的结束符改回;2调用stu_group()存储过程
CALL stu_group();结果 3查看/删除存储过程
-- 查看存储过程语法
SELECT * FROM mysql.proc WHERE db 数据库名称;
-- 删除存储过程语法
DROP PROCEDURE [IF EXISTS] 存储过程名称;4.存储函数
1概念 存储函数和存储过程理解上是一样的只是存储函数有返回值必须写return语句。 2很多存储函数mysql底层帮我们实现了 如:
-- 获取系统当前时间SELECT NOW();SELECT YEAR (2021-8-4); -- 年SELECT MONTH (2021-8-4);-- 月SELECT DAY (2021-8-4);-- 日SELECT CONCAT (a,b,c) AS str ; -- 拼接字符串SELECT CHAR_LENGTH (hello); -- 字符串长度SELECT LENGTH (hello) -- 占用字节大小-- 格式化日期SELECT DATE_FORMAT(NOW(),%Y-%m-%d) AS birthday -- 格式化日期格式化日期结果:
3自己创建存储函数
创建存储函数CREATE FUNCTION 函数名称([参数 数据类型])RETURNS 返回值类型BEGIN执行的sql语句;RETURN 结果;END$需求–定义存储函数获取学生表中成绩大于95分的学生数量
DELIMITER $CREATE FUNCTION fun_test1()
RETURNS INT
BEGIN-- 定义变量DECLARE s_count INT;-- 查询成绩大于95分的数量为s_count赋值SELECT COUNT(*) INTO s_count FROM student WHERE score 95;-- 返回统计结果RETURN s_count;
END$DELIMITER ;
调用删除函数:
--调用函数
SELECT fun_test1();
-- 删除函数
DROP FUNCTION fun_test1;5.存储过程和函数的区别 返回值不同 存储函数必须有一个且必须只有一个返回值并且还要指定返回值的数值类型。存储过程可以有返回值也可以没有返回值甚至可以有多个返回值。 两者赋值的方式不同 存储函数可以采用select …into …方式和set值得方式进行赋值只能用return返回结果集。存储过程可以使用select的方式进行返回结果集。 使用方法不同 函数可以直接用在sql语句当中可以用来拓展标准的sql语句。存储过程需要使用call进行单独调用不可以嵌入sql语句当中。 函数中函数体的限制较多 不能使用显式或隐式方式打开transaction、commit、rollback、set autocommit0等。但是存储过程可以使用几乎所有的sql语句。