`

mysql 5中的store function

阅读更多
mysql 5中新增了视图,存储过程,触发器等新功能,其中不少资料对其都有介绍,今天看到了
其中的一个叫store function的功能,和存储过程有点象,但返回的是值哦,用法挺灵活的,故介绍之


mysql> DELIMITER ||
mysql>
CREATE FUNCTION WEIGHTED_AVERAGE (n1 INT, n2 INT, n3 INT, n4 INT)
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE avg INT;
SET avg = (n1+n2+n3*2+n4*4)/8;
RETURN avg;
END ||
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT WEIGHTED_AVERAGE(70,65,65,60)\G
*************************** 1. row ***************************
WEIGHTED_AVERAGE(70,65,65,60): 63
1 row in set (0.00 sec)
注意,由于MYSQL中以分号作为每行的结束,而存储过程和存储函数有很多行组成,因此,要先用delimiter ||(||可以是自
定义的字符,比如可以为|等),注意,delimiter和||之间是有空格的哦,然后在结束的地方也写上 end ||匹配就可以了,
从上面可以看到,是实现对传入的四个参数求一个算术表达式的运算结果
在下面的例子中
mysql> CREATE TABLE sfdata(mark1 INT,mark2 INT,mark3 INT,mark4 INT,name VARCHAR(50))
mysql> INSERT INTO sfdata VALUES(70,65,65,60,'Mark')|
mysql> INSERT INTO sfdata VALUES(95,94,75,50,'Pavlov')|
mysql>
CREATE FUNCTION WEIGHTED_AVERAGE2 (v1 VARCHAR(50))
RETURNS INT
DETERMINISTIC
BEGIN
DECLARE i1,i2,i3,i4,avg INT;
SELECT mark1,mark2,mark3,mark4 INTO i1,i2,i3,i4 FROM sfdata WHERE name=v1;
SET avg = (i1+i2+i3*2+i4*4)/8;
RETURN avg;
END|
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT WEIGHTED_AVERAGE2('Pavlov') AS Pavlov, WEIGHTED_AVERAGE2('Mark') AS Mark\G
*************************** 1. row ***************************
Pavlov: 67
Mark: 63
1 row in set (0.00 sec)

首先建立了一个表,然后放进两条数据,然后在调用存储函数时,传入不同的人名,然后该函数自动将该人的三个数据,
放到i1,i2,i3,i4四个变量中去计算,最后分别得出他们的结果,十分容易
 
 
 
分享到:
评论

相关推荐

    MySQL中文参考手册.chm

    7.27 CREATE INDEX (创建索引)句法 7.28 DROP INDEX (抛弃索引)句法 7.29 注释句法 7.30 CREATE FUNCTION/DROP FUNCTION (创建函数/抛弃函数)句法 7.31 MySQL对保留字很挑剔吗?...

    MySQL 5.1中文手冊

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    mysql5.1中文手册

    在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 ...

    MySQL中文参考手册

    * 5 MySQL 与标准的兼容性? o 5.1 MySQL对ANSI SQL92 的扩充 o 5.2 以ANSI模式运行 MySQL o 5.3 MySQL相比ANSI SQL92的差别 o 5.4 MySQL 缺乏的功能 + 5.4.1 子选择(Sub-selects) + 5.4.2 SELECT INTO ...

    MySQL 5.1官方简体中文参考手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    MYSQL

    7.29 注释句法 7.30 CREATE FUNCTION/DROP FUNCTION (创建函数/抛弃函数)句法 7.31 MySQL对保留字很挑剔吗? 8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 ...

    mysql官方中文参考手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    MYSQL中文手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在...

    MySQL 5.1参考手册

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    MySQL 5.1参考手册中文版

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在...

    MySQL 5.1参考手册 (中文版)

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    MySQL5.1参考手册官方简体中文版

    2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...

    XAMPP WordPress Welcart环境配置手顺

    It has not only simple shopping cart function but also other functions necessary to run your store, such as "Order management function" and "membership function". Welcart corresponds to various types ...

    目标:使用Codeigniter,Ajax和MySQL进行开发的软件

    .public function store () { $ idClient = $ this -> input -> post ( 'idClient' ); $ idUser = $ this -> session -> userdata ( 'iduser' ); $ idVoucher = $ this -> input -> post ( 'idVoucher' ); $ number...

    超媒体API原型框架Fortune.js.zip

    fortune 具有一个模块化的持久层,里面包括了 NeDB (内联), MongoDB, MySQL, Postgres 和 SQLite 的适配器,可以查看 引导手册 了解如何使用。Fortune 实现了所有 JSON API 的规范,还有一些其他的特性:使用简单, ...

    基于JSP的网上书店系统的设计与实现【毕业作品】.doc

    【关键词】网上书店系统,数据库,JSP技术 The Design of Online Bookstore Based on JSP Abstract Internet book store is a practical form of E-business.It is an operation mode which a book store is set up...

    php.ini-development

    You can redirect all of the output of your scripts to a function. For ; example, if you set output_handler to "mb_output_handler", character ; encoding will be transparently converted to the ...

    javaee三大框架整合宅急送项目lib包

    解决: hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect ======================================================================================================================== 三、 流程...

    Foundations for Analytics with Python O-Reilly-2016-Clinton W. Brownley

    Chapter 5, Applications This chapter contains three examples that demonstrate how to combine techni‐ ques presented in earlier chapters to tackle three different problems that are rep‐ resentative ...

Global site tag (gtag.js) - Google Analytics