java 您所在的位置:网站首页 sql高级语法 java

java

2023-03-16 13:41| 来源: 网络整理| 查看: 265

存储过程和函数的概念

存储过程和函数是事先经过编译并存储在数据库中的一段SQL 语句的集合。

存储过程和函数的好处

1.存储过程和函数可以重复使用,减轻开发人员的工作量。类似于java 中方法可以多次调用

2.减少网络流量,存储过程和函数位于服务器上,调用的时候只需要传递名称和参数即可

3.减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率

4.将一些业务逻辑在数据库层面来实现,可以减少代码层面的业务处理

存储过程和函数的区别

1.函数必须有返回值

2.存储过程没有返回值

创建存储过程

-- 标准语法

DELIMITER 分隔符

数据准备

-- 创建数据库 CREATE DATABASE db18; -- 使用数据库 USE db18; -- 创建学生表 CREATE TABLE Student( id INT PRIMARY KEY AUTO_INCREMENT, -- 学生id NAME VARCHAR(20),-- 学生姓名 age INT,-- 学生年龄 gender VARCHAR(5), -- 学生性别 score INT -- 学生成绩 ); -- 添加数据 INSERT INTO Student VALUES (NULL,'学生甲',18,'男',100), (NULL,'学生乙',18,'女',99), (NULL,'学生丙',18,'女',110), (NULL,'学生丁',18,'男',111); -- 按照性别进行分组,查询每组学生的总成绩,按照总成绩的升序排序 SELECT gender,SUM(score) getSum FROM Student GROUP BY gender ORDER BY getSum ASC;创建存储过程语法

1、修改分隔符

-- 修改分隔符为$

DELIMITER $ -- 将分号 ' ; ' 改成 ' $ ' 将 以 $ 为结尾

2、创建标准语法

-- 标准语法

CREATE PROCEDURE 存储过程名称(参数...)

BEGIN

sql 语句;

END$

3、修改为 分隔符结尾

-- 修改分隔符为分号

DELIMITER ;

代码示例-- 创建存储过程 -- 创建 stu_group() 封装这个需求:按照性别进行分组,查询每组学生的总成绩,按照总成绩的升序排序 -- 修改 ; 为 $ DELIMITER $ -- 创建 stu_group() CREATE PROCEDURE stu_group() BEGIN -- SQL 语句 SELECT gender,SUM(score) getSum FROM Student GROUP BY gender ORDER BY getSum ASC; END$ -- $结尾 -- 切换为 分隔符 ; 结尾 DELIMITER ; 调用存储过程

调用存储过程语法

-- 标准语法

CALL 存储过程名称(实际参数);

结果与 SQL 语句查询一致

查看存储过程

查看存储过程语法

-- 查询数据库中所有的存储过程标准语法

SELECT * FROM mysql.proc WHERE db='数据库名称';

删除存储过程

-- 标准语法

DROP PROCEDURE [IF EXISTS] 存储过程名称;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有