首页 > 代码库 > 前端学数据库之函数

前端学数据库之函数

×
目录
[1]字符函数 [2]数值运算符 [3]比较运算符[4]日期时间[5]信息函数[6]聚合函数[7]加密函数[8]自定义函数

前面的话

  mysql数据库中的函数根据功能可以划分为字符函数、数值运算符与函数、比较运算符与函数、日期时间函数、信息函数、聚合函数、加密函数以及自定义函数等。下面将详细介绍数据库中的函数

 

字符函数

技术分享
技术分享

CONCAT()

  CONCAT()函数用于字符连接

技术分享

  CONCAT()函数也可用于将一个数据表中的两个字段的所有记录进行字符连接

技术分享

CONCAT_WS()

  CONCAT_WS()函数使用指定的分隔符进行字符连接,该函数的第一个参数是指定分隔符

技术分享

FORMAT()

  FORMAT()函数主要用于数字格式化,最终返回一个字符型数字。第一个参数为待格式化的数字,第二个参数为要保留的小数位数 

技术分享

LOWER()

  LOWER()函数将字符转换成大写字母

UPPER()

  UPPER()函数将字符转换成小写字母

技术分享

LEFT()

  LEFT()函数用于获取左侧字符

RIGHT()

  RIGHT()函数用于获取右侧字符

技术分享

LENGTH()

  LENGTH()函数用于获取字符串长度

技术分享

LTRIM()

  LTRIM()函数用于删除前导空格

RTRIM()

  RTRIM()函数用于删除后续空格

TRIM()

  TRIM()函数用于删除前导和后续空格

技术分享

REPLACE()

  REPLACE()函数用于字符串替换

技术分享

SUBSTRING()

  SUBSTRING()函数用于字符串截取,第一个参数是开始截取的起始位置,第二个参数是截取的字符数目

  [注意]这里是从1开始计数的,而不是从0开始的

技术分享

  如果省略第二个参数,则一直截取到字符串的结尾

技术分享

[NOT] LIKE

  [NOT] LIKE用于模式匹配,其中%代表0个或多个字符,_代表任意1个字符。返回1表示匹配,0表示不匹配

技术分享

 

数值运算符

技术分享

CEIL()

  CEIL()函数主要用于进一取整(向上取整)

 技术分享

FLOOR()

  FLOOR()函数主要用于舍一取整(向下取整)

技术分享

ROUND()

  ROUND()函数主要用于四舍五入,两个参数分别为浮点数和保留的小数位数

技术分享

DIV

  DIV主要用于整数除法

技术分享

MOD

  MOD主要用于取余数(取模),等同于% ,可以是整数也可以是小数

技术分享

POWER()

  POWER()函数主要用于幂运算

技术分享

TRUNCATE()

  TRUNCATE()函数主要用于数字截取,两个参数分别为数值和截断到小数点后n位

技术分享

 

比较运算符

技术分享

[NOT] BETWEEN...AND...

  [NOT] BETWEEN...AND...表示[不]在范围之内

技术分享

[NOT] IN()

  [NOT] IN()表示[不]在列出值范围内

技术分享

IS [NOT] NULL

  IS [NOT] NULL表示[不]为空

技术分享
 

日期时间

技术分享

NOW()

  NOW()函数返回当前日期和时间

技术分享

CURDATE()

  CURDATE()函数返回当前日期

技术分享

CURTIME()

  CURTIME()函数返回当前时间

技术分享

DATE_ADD()

  DATE_ADD()函数日期变化,可以增加,也可以减少

技术分享

 DATEDIFF()

  DATEDIFF()函数日期差值,两个日期的差值

技术分享

DATE_FORMAT()

  DATE_FORMAT()函数进行日期格式化

技术分享

 

信息函数

技术分享

CONNECTION_ID()

  CONNECTION_ID()返回连接ID(线程ID)

技术分享

DATEBASE()

  DATEBASE()返回当前数据库名称

技术分享

LAST_INSERT_ID()

  LAST_INSERT_ID()返回最后插入记录的ID,当一次性写入多条记录时,函数返回的ID为第一条记录的ID

技术分享
技术分享

USER()

  USER()返回当前用户

VERSION()

  VERSION()返回版本信息

 技术分享
 

聚合函数

技术分享

  聚合函数只能用于数据表,不能用于单个数值的计算

技术分享

  下面建立一个test数据表用来测试数据

技术分享
AVG():平均值COUNT():计数 MAX():最大值 MIN():最小值SUM():求和
技术分享
 

加密函数

技术分享

MD5()

  MD5():信息摘要算法,为以后的Web页面做准备,尽量使用MD5()

PASSWORD()

  PASSWORD():密码算法,通过PASSWORD()修改当前用户和其他用户的密码,修改客户端自己的密码

技术分享
 

自定义函数

  函数可以返回任意类型的值,同样可以接收这些类型的参数。函数参数和返回值之前没有必然的联系

  [注意]一个函数最多可以有1024个参数

  用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同

  自定义函数的两个必要条件:1、参数;2、返回值

创建自定义函数

CREATE FUNCTION function_nameRETURNS{STRING|INTEGER|REAL|DECIMAL}routine_body

  关于自定义函数的函数体

  1.函数体可以由合法的SQL语句构成;

  2.函数体可以是简单的SELECT或INSERT语句;

  3.函数体如果为复合结构则使用BEGIN...END语句;

  4.复合结构可以包含声明、循环、控制结构。

创建不带参数的自定义函数

CREATE FUNCTION f1() RETURNS VARCHAR(30)RETURN DATE_FORMAT(NOW(),%Y年%m月%d日 %H点:%i分:%s秒);
技术分享

创建带参数的自定义函数

CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED) RETURNS FLOAT(10,2) UNSIGNED RETURN  (num1+num2)/2;
技术分享

  [注意]如果自定义函数存在符合结构的多个语句,函数体要包含在BEGIN...END内,同时,需要通过DELIMITER将默认的结束符 ; 修改成其他符号,如://   $$  ,以免函数由于语句结尾的 ; 号导致中断

删除函数

DROP FUNCTION [IF EXISTS] function_name
<script type="text/javascript">// 0){ return; } if(select[i].getBoundingClientRect().top <= 0 && select[i+1]){ if(select[i+1].getBoundingClientRect().top > 0){ change(oCon.children[i+2]) } }else{ change(oCon.children[select.length+1]) } }}document.body.onmousewheel = wheel;document.body.addEventListener(‘DOMMouseScroll‘,wheel,false);var oCon = document.getElementById("content");var close = oCon.getElementsByTagName(‘span‘)[0];close.onclick = function(){ if(this.innerHTML == ‘显示目录‘){ this.innerHTML = ‘ב; this.style.background = ‘‘; oCon.style.border = ‘2px solid #ccc‘; oCon.style.width = ‘‘; oCon.style.height = ‘‘; oCon.style.overflow = ‘‘; oCon.style.lineHeight = ‘30px‘; }else{ this.innerHTML = ‘显示目录‘; this.style.background = ‘#3399ff‘; oCon.style.border = ‘none‘; oCon.style.width = ‘60px‘; oCon.style.height = ‘30px‘; oCon.style.overflow = ‘hidden‘; oCon.style.lineHeight = ‘‘; }}for(var i = 2; i < oCon.children.length; i++){ oCon.children[i].onmouseover = function(){ this.style.color = ‘#3399ff‘; } oCon.children[i].onmouseout = function(){ this.style.color = ‘inherit‘; if(this.mark){ this.style.color = ‘#3399ff‘; } } oCon.children[i].onclick = function(){ change(this); } }function change(_this){ for(var i = 2; i < oCon.children.length; i++){ oCon.children[i].mark = false; oCon.children[i].style.color = ‘inherit‘; oCon.children[i].style.textDecoration = ‘none‘; oCon.children[i].style.borderColor = ‘transparent‘; } _this.mark = true; _this.style.color = ‘#3399ff‘; _this.style.textDecoration = ‘underline‘; _this.style.borderColor = ‘#2175bc‘; }// ]]></script><script type="text/javascript" src="http://files.cnblogs.com/files/xiaohuochai/contextMenu.js"></script>

前端学数据库之函数