語法

自定義函數也需要相應的要求,語法如下:

CREATE FUNCTION(參數列表)

RETURNS返回值類型

函數體

刪除:

DROPFUNCTION

調用自定義函數語法:

SELECT (parameter_value,...)

語法實例 create function rand_string(n int) returns varchar(255)

begin

declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

declare return_str varchar(255) default '';

declare i int default 0;

while i < n do

set return_str = concat(return_str, substring(chars_str,floor(1+rand()*62),1));

set i= i+1;

end while;

return return_str;

end;

效果

這樣我們自己定義的函數就完成了,先來看看FUNCTION屬性及運行效果; mysql> show function status;

+------+-------------+----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

| Db | Name | Type | Definer | Modified | Created | Security_type | Comment | character_set_client | collation_connection | Database Collation |

+------+-------------+----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

| test | rand_string | FUNCTION | root@localhost | 2017-05-26 14:13:10 | 2017-05-26 14:13:10 | DEFINER | | utf8 | utf8_general_ci | latin1_swedish_ci |

+------+-------------+----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+

1 row in set

mysql> show create function rand_string;

+-------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+

| Function | sql_mode | Create Function | character_set_client | collation_connection | Database Collation |

+-------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+

| rand_string | NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` FUNCTION `rand_string`(n int) RETURNS varchar(255) CHARSET latin1

begin

declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

declare return_str varchar(255) default '';

declare i int default 0;

while i < n do

set return_str = concat(return_str, substring(chars_str,floor(1+rand()*62),1));

set i= i+1;

end while;

return return_str;

end | utf8 | utf8_general_ci | latin1_swedish_ci |

+-------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+

1 row in set

mysql> select rand_string(100);

+------------------------------------------------------------------------------------------------------+

| rand_string(100) |

+------------------------------------------------------------------------------------------------------+

| bfvEBTvGJqOBp7ajTm0KAwIPQy7Mmighp2PTN86XmIoCJG2YBYQbbciKG1Tfo3YvsDEaIVhwBhp2QY7xa3ADfd8SNctzjGjlCTuA |

+------------------------------------------------------------------------------------------------------+

1 row in set

名詞解釋

接下來對上面所涉及到的關鍵詞進行匯總整理。

大寫

小寫

詞義

用法

USE

use

切換數據庫

use test

IF EXIST

if exist

判斷是否存在

if exist name

DELIMITER

delimiter

定義結束符

delimiter //        默認為;

DEFINER

definer

權限

definer=root@localhost

CHARSET

charset

編碼

charset =utf8

DECLARE

declare

聲明

declare return_str varchar(10240)

DEFAULT

default

默認值

default 'abcdefgh';

ENGINE

engine

存儲引擎

engine=innodb||engine=myisam

FUNCTION

function

函數

function rand_string(n INT)

RETURNS

returns

返回類型

returns varchar(10240)

RETURN

return

返回值

return 'zhangsan'

CONCAT

concat

拼串

concat(string value,string value)

SUBSTRING

substring

截取字符串

substring(被截取名,開始索引,結束索引)

FLOOR

floor

取整

floor(23.33)

RAND

rand

隨機數

rand()

WHILE..DO

while..do

while循環

while i

SHOW..STATUS

show..status

查看運行狀態

show function status;

mysql开启function,Mysql自定義函數(function)相关推荐

  1. php ignore special characters,PHP htmlspecialchars() 函數--防注入字符轉義函數

    更多實例 例子 1 把一些預定義的字符轉換為 HTML 實體:<?php $str = "Bill & 'Steve'"; echo htmlspecialchars ...

  2. python split拆分字符串_Python字符串split學習一(自定義字符串拆分)

    開始學習python,第二天,盡管python內建函數split已經能干很多事情,但是遇到這種情況就要自己定義函數了: string = ' wang__chuang_____bo ' #coding ...

  3. java函數_函數(Java版)

    此特性為Java版獨有. 原因:與其他Java版/基岩版特性頁面標題統一 注意: 中文Wiki的移動頁面需要在討論批准後進行,大量移動由機械人完成. 請不要使用複製粘貼來移動頁面,因為這樣會丟失所有的 ...

  4. php 将表情存入数据库,php + mysql 存入表情 【如何轉義emoji表情,讓它可以存入utf8的數據庫】...

    方法1:base_encode64 這種方法是可以,但是舊數據沒有經過encode操作,取數據的時候如果統一進行decode的話,舊數據會丟失的. 1 方法2:urlencode 這個似乎可以,對沒有 ...

  5. windows下mysql开启慢查询

    mysql在windows系统中的配置文件一般是my.ini,我的路径是c:\mysql\my.ini,你根据自己安装mysql路径去查找 [mysqld] #The TCP/IP Port the ...

  6. 简单介绍MySQL开启事务的两种方式

    本篇文章给大家分享MySQL 是如何开启一个事务的,原文通过两种方式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧 方式 1 START TRANSACTION 或 ...

  7. mysql开启skip-name-resolve 导致root@127.0.0.1(localhost)访问引发的ERROR 1045 (28000)错误解决方案...

    为什么配置skip-name-resolve? 由于mysql -h${ip} 远程访问速度过慢, mysql -h172.16.66.171 -uroot -p123456 根据网友经验(https ...

  8. mysql开启binlog

    mysql开启binlog,至于为什么要开启binlog,可以google下. ## 设置server_id,一般设置为IP server_id=117## 复制过滤:需要备份的数据库名,多个库以逗号 ...

  9. [MySql] - 开启外部访问

    打开 mysql 的查询窗口(使用root),使用SQL: -- 使用mysql库 use mysql;-- 更新密码 update user set password=PASSWORD('xxxxx ...

最新文章

  1. 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
  2. python androidhelper kivy_学习qpython相关
  3. 百度语音识别demo:去掉离线识别功能
  4. 用Spring Security实现后台登录及权限认证功能
  5. read name 和 read 在 Bash 中的区别
  6. VSFTP配置详解+虚拟用户的支持
  7. 计算机学院 迎新口号,清华大学迎新标语
  8. 阿里图标库的使用方式
  9. 如何在excel中取消合并单元格后内容自动填充?
  10. windows 下安装图片标注软件 labelling和出错解决
  11. Redis基本知识记录
  12. android 代码缩进,Android缩进和悬挂缩进
  13. 在线绘制2维/3维函数图像、求导网站
  14. 云服务器体验——搭建简单私人网盘
  15. adobe acrobat pro dc 无法打开PDF_PDF怎么破?你一定不想错过这些软件
  16. airpak模拟案例_基于Airpak的大型车间污染物消散的数值模拟研究
  17. KaTex的一个简单例子
  18. STM32寻迹智能车
  19. 通过文件url地址获取base64;通过图片url地址获取base64;js获取文件的base64
  20. 【解决方案】企业远程行政会议协同办公视频会议EasyRTC如何实现远程办公?

热门文章

  1. 计算机实现减法学习心得
  2. 数据结构 排序(希尔排序)
  3. 第三周 7.25 --- 7.31
  4. SQL Server中count(*), count(col), count(1)的对比
  5. .NET经典资源站点汇总
  6. 在3D世界中创建不同的相机模式——检查对象是否可见
  7. 第三十六讲 ASP.NET中的Web服务(三)
  8. 打包解决方案后,安装时提示只能在IIS5.1以上运行解决方法
  9. Jenkins常见问题解决(持续更新)
  10. C#调用COM组件遇到的问题及解决办法