电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

关于mysql存储函数的实例讲解

4页
  • 卖家[上传人]:m****
  • 文档编号:47534092
  • 上传时间:2018-07-02
  • 文档格式:DOCX
  • 文档大小:25.89KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、关于关于 mysqlmysql 存储函数的实例讲解存储函数的实例讲解关于 mysql 存储函数的实例讲解? 1 2 3 4 5 6 7 8 9 10 11 12 13#定义函数delimiter $ create function getGameName(gameid int) returns VARCHAR(45) DETERMINISTIC begindeclare name VARCHAR(45);set name=(select gamename from cy_game where id=gameid);return (name); end$ delimiter;select getGameName(4);#使用 select id,getGameName(4) from cy_game where id=4;#使用存储的函数是返回单个值的特殊类型的存储程序。您使用存储的函数来封装在 SQL 语句或存储的程序中可重用的常用公式或业务规则。与存储过程不同,您可以在 SQL 语句中使用存储的函数,也可以在表达式中使用。 这有助于提高程序代码的可读性和可维护性。MySQLMySQL

      2、 存储函数语法存储函数语法以下说明了创建新存储函数的最简单语法:? 1 2 3 4CREATE FUNCTION function_name(param1,param2,)RETURNS datatypeNOT DETERMINISTICstatementsSQL首先,在 CREATE FUNCTION 子句之后指定存储函数的名称。其次,列出括号内存储函数的所有参数。 默认情况下,所有参数均为 IN 参数。不能为参数指定 IN,OUT 或 INOUT 修饰符。第三,必须在 RETURNS 语句中指定返回值的数据类型。它可以是任何有效的 MySQL 数据类型。第四,对于相同的输入参数,如果存储的函数返回相同的结果,这样则被认为是确定性的,否则存储的函数不是确定性的。必须决定一个存储函数是否是确定性的。 如果您声明不正确,则存储的函数可能会产生意想不到的结果,或者不使用可用的优化,从而降低性能。第五,将代码写入存储函数的主体中。 它可以是单个语句或复合语句。 在主体部分中,必须至少指定一个 RETURN 语句。RETURN 语句用于返回一个值给调用者。 每当到达RETURN 语句时,存储的

      3、函数的执行将立即终止。MySQLMySQL 存储函数示例存储函数示例我们来看一下使用存储函数的例子,这里将使用示例数据库(yiibaidb)中的customers 表进行演示。以下示例是根据信用额度返回客户级别的功能。 我们使用 IF 语句来确定信用额度。? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18DELIMITER $CREATE FUNCTION CustomerLevel(p_creditLimit double) RETURNS VARCHAR(10)DETERMINISTIC BEGINDECLARE lvl varchar(10);IF p_creditLimit 50000 THENSET lvl = PLATINUM;ELSEIF (p_creditLimit = 10000) THENSET lvl = GOLD;ELSEIF p_creditLimit 10000 THENSET lvl = SILVER;END IF;RETURN (lvl); END $DELIMITER ; 988 棋牌 http:/SQL现在,

      4、我们在 SELECT 语句中调用 CustomerLevel()存储函数,如下所示:? 1 2 3 4 5SELECTcustomerName, CustomerLevel(creditLimit) FROMcustomersORDER BY customerName; 388 棋牌 http:/SQL执行上面查询语句,得到以下结果 -? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21+-+-+ | customerName | CustomerLevel(creditLimit) | +-+-+ | Alpha Cognac | PLATINUM | | American Souvenirs Inc | SILVER | | Amica Models SELECT creditlimit INTO creditlimFROM customersWHERE customerNumber = p_customerNumber;SELECT CUSTOMERLEVEL(creditlim) INTO p_customerLevel; END $DELIMITER ; 天地棋牌 http:/SQL如您所见,GetCustomerLevel()存储过程在使用 CustomerLevel()存储函数时可读性更高。请注意,存储函数仅返回单个值。 如果没有包含 INTO 子句的 SELECT 语句,则将会收到错误。另外,如果存储的函数包含 SQL 语句,则不应在其他 SQL 语句中使用它; 否则,存储的函数将减慢查询的速度。

      《关于mysql存储函数的实例讲解》由会员m****分享,可在线阅读,更多相关《关于mysql存储函数的实例讲解》请在金锄头文库上搜索。

      点击阅读更多内容
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.