加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql 自定义函数

发布时间:2022-09-13 16:10:45 所属栏目:MySql教程 来源:
导读:  mysql 自定义函数,是对 mysql 扩展的途径,用法和内置函数相同

  在工作中,使用 mysql 自带的函数不能满足需要,进而创建更贴近业务的自定义函数

  1、创建自定义函数

  自定义函数可以接收
  mysql 自定义函数,是对 mysql 扩展的途径,用法和内置函数相同
 
  在工作中,使用 mysql 自带的函数不能满足需要,进而创建更贴近业务的自定义函数
 
  1、创建自定义函数
 
  自定义函数可以接收任意类型的参数,也可以返回任意类型的值
 
  自定义函数基本语法格式如下
 
  CREATE FUNCTION function_name
 
  RETURNS type
 
  routine_body
 
  function_name 是自定义函数的名字
 
  type 是自定义函数返回值类型
 
  routine_body 是自定义函数的函数体,即自定义函数的具体内容
 
  1.1、创建无参数的自定义函数
 
  返回数据库版本
 
  create FUNCTION getversion()
  RETURNS varchar(25)
  return ( SELECT CONCAT('mysql数据库版本', VERSION()))
  执行结果如下
 
  定义函数指针指向函数_mysql自定义函数教程_mysql存储过程函数
 
  1.2、创建有参数的自定义函数
 
  两数求和
 
  CREATE FUNCTION numadd(num1 int , num2 int)
  RETURNS INT
  RETURN num1 + num2
  运行结果如下
 
  定义函数指针指向函数_mysql自定义函数教程_mysql存储过程函数
 
  1.3、创建具有复合结构函数体的自定义函数
 
  首先创建一张用户表,并添加三条数据,sql 如下
 
  DROP TABLE IF EXISTS `user`;
  CREATE TABLE `user` (
    `user_id` int(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(20) DEFAULT NULL,
    `addr` varchar(20) DEFAULT NULL,
 
    PRIMARY KEY (`user_id`)
  ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
  -- ----------------------------
  -- Records of user
  -- ----------------------------
  INSERT INTO `user` VALUES ('1', '蔺相如', '山西');
  INSERT INTO `user` VALUES ('2', '陈子昂', '四川');
  INSERT INTO `user` VALUES ('3', '李开先', '山东');
  创建自定义函数如下
 
  添加一条记录,返回最新的总记录数
 
  create FUNCTION addcount(name1 VARCHAR(20), addr1 VARCHAR(20))
  RETURNS INT
  BEGIN
  insert into user(name, addr) values(name1, addr1);
  return (select count(1) from user);
  end
  注意:笔者这里使用的是navicat 和 mysql5.7.25 版本,如果读者使用的是 mysql 命令行客户端,需要使用DELIMITER $$ 定义结束符,因为上边语句中的 ";" 会被mysql 命令行客户端识别为结束符,因此在有";"的函数体中,需要读者额外定义结束符
 
  DELIMITER $$?
  create FUNCTION addcount(name1 VARCHAR(20), addr1 VARCHAR(20))
  RETURNS INT
  BEGIN
  insert into user(name, addr) values(name1, addr1);
  return (select count(1) from user);
  end $$?
  运行结果如下
 
  2、删除自定义函数
 
  语法格式如下
 
  DROP FUNCTION [IF EXISTS] function_name
 
  function_name 需要删除的自定义函数名
 
  删除自定义函数

  删除前边创建的自定义函数 addcount
 
  DROP FUNCTION IF EXISTS addcount
  或
 
  DROP FUNCTION addcount
  3、使用navicat 操作自定义函数
 
  3.1、创建自定义函数
 
  打开navicat 软件,点击上方的函数图标、点击新建函数
 
  选择函数
 
  设置参数
 
  这里先建一个无参数的自定义函数,选择下一步

  设置返回值类型mysql自定义函数教程,点击完成

  定义函数体,保存

  设置函数名mysql自定义函数教程,确定
 
  这里是GETVERSION

  自定义函数创建完成

  测试调用

  个人感觉使用navicat 创建自定义函数并没有简单多少,反而步骤繁琐,不如直接使用命令创建
 
  3.2、删除自定义函数
 
  选择要删除的函数,直接点击删除或鼠标右键删除

  确定 删除

  删除完成

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!