MySQL 存储函数可以引用表,但不能使用返回结果集的语句。因此我们可以说不存在返回结果集的 SELECT 查询。但我们可以使用 SELECT INTO 来摆脱这个问题。例如,我们正在创建一个函数“Avg_marks”,它使用名为“Student_marks”的表中的动态数据(具有以下记录)来计算平均分数。
mysql> Select * from Student_marks; +-------+------+---------+---------+---------+ | Name | Math | English | Science | History | +-------+------+---------+---------+---------+ | Raman | 95 | 89 | 85 | 81 | | Rahul | 90 | 87 | 86 | 81 | +-------+------+---------+---------+---------+ 2 rows in set (0.00 sec) mysql> DELIMITER // mysql> Create Function Avg_marks(S_name Varchar(50)) -> RETURNS INT -> DETERMINISTIC -> BEGIN -> DECLARE M1,M2,M3,M4,avg INT; -> SELECT Math,English,Science,History INTO M1,M2,M3,M4 FROM Student_marks W HERE Name = S_name; -> SET avg = (M1+M2+M3+M4)/4; -> RETURN avg; -> END // Query OK, 0 rows affected (0.01 sec) mysql> DELIMITER ; mysql> Select Avg_marks('Raman') AS 'Raman_Marks'; +-------------+ | Raman_Marks | +-------------+ | 88 | +-------------+ 1 row in set (0.07 sec) mysql> Select Avg_marks('Rahul') AS 'Raman_Marks'; +-------------+ | Raman_Marks | +-------------+ | 86 | +-------------+ 1 row in set (0.00 sec)
复制本文链接文章为作者独立观点不代表优设网立场,未经允许不得转载。
文章推荐更多>
- 1手机uc浏览器的缓存视频怎么导出
- 2谷歌浏览器入口网页版 谷歌浏览器入口直接打开
- 3wordpress主题是什么意思
- 4mongodb是什么意思
- 5wordpress文章发布不了为什么
- 6如何将谷歌浏览器设置为默认浏览器 设置默认浏览器步骤解析
- 7phpmyadmin日志在哪里
- 8如何优化wordpress
- 9oracle删除数据后怎么恢复
- 10wordpress如何安装插件
- 11mysql创建数据库提示已存在怎么办
- 12如何查看oracle数据库监听服务是否启动
- 13oracle数据库怎么查询所有的表和所有的数据
- 14如何在IIS7上新建站点并设置安全权限?
- 15phpmyadmin导出功能可以导出什么
- 16yandex官网(登录入口) yandex登录引擎入口地址
- 17谷歌浏览器在线浏览入口 谷歌浏览器在线观看网页
- 18oracle数据库触发器在哪
- 19电脑截屏是按哪三个键 三键组合截屏操作教学
- 20oracle怎么回滚刚删除的数据
- 21如何设置谷歌浏览器主页 主页设置与个性化调整
- 22电脑黑屏却开着机有鼠标箭头 黑屏鼠标箭头显示问题处理技巧
- 23wordpress如何设置密码
- 24dedecms怎么换网站图片
- 25mongodb能存什么
- 26wordpress网站怎么更换主题
- 27oracle端口号怎么看
- 28wordpress汉化插件怎么使用
- 29如何登陆谷歌浏览器 账号登录与同步设置
- 30c盘满了怎么清理垃圾而不误删 安全清理c盘垃圾的4个步骤

1 |
+-------+------+---------+---------+---------+
2 rows in set (0.00 sec)
mysql> DELIMITER //
mysql> Create Function Avg_marks(S_name Varchar(50))
-> RETURNS INT
-> DETERMINISTIC
-> BEGIN
-> DECLARE M1,M2,M3,M4,avg INT;
-> SELECT Math,English,Science,History INTO M1,M2,M3,M4 FROM Student_marks W
HERE Name = S_name;
-> SET avg = (M1+M2+M3+M4)/4;
-> RETURN avg;
-> END //
Query OK, 0 rows affected (0.01 sec)
mysql> DELIMITER ;
mysql> Select Avg_marks('Raman') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
| 88 |
+-------------+
1 row in set (0.07 sec)
mysql> Select Avg_marks('Rahul') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
| 86 |
+-------------+
1 row in set (0.00 sec)