(2.16)Mysql之SQL基础——函数
(2.16)Mysql之SQL基础——函数
关键词:mysql函数,mysql自定义函数,mysql聚合函数,mysql字符串函数,mysql数值函数
1、自定义函数
-- (1)一般形式
create function 函数名(参数类型 数据类型)
returns 返回类型
begin
sql 语句
return 返回的数据值
end -- (2)举例--不带参数的函数
delimiter //
create function fn_test()
retrurns varchar(20)
begin
return 'hello,world';
end //
delimiter ; 举例--带参数的函数
--求num的阶乘
create function fn_jieceng(num int)
returns int
BEGIN
declare n int;
set n=1;
while num>0 DO
set n=num*n;
set num=num-1;
end while;
return n;
end ;
-- (3)调用
【1】直接select fn_test();
【2】在存储过程,或者任何表达式中都可以运用它 -- (4)函数的查看
【1】mysql.proc:select * from mysql.proc where db='db_name' and type='function';
【2】show function status like 'fn_name';
【3】show create function fn_test();
【4】information_schema.`routines`:
select * from information.`routines`
where routine_schema='db_name' and routine_type='function'; -- (5)函数的删除
【1】drop function fn_test();
2、聚合函数
【1】max:最大值,适用于任何类型
【2】min:最小值,适用于任何类型
【3】avg:平均值,适用于数字类型
【4】sum:求和,适用于数字类型
【5】count:统计行数 【6】group_concat:将字符串从分组中连接成具有各种选项(如distinct,order by和separator)的字符串(sql server中的for xml path(),oracle中的wmsys.wm_concat) (1)概念 ,即实现分组后,其他值默认以逗号为分隔符连接到一行
(2)最大长度参数:默认为1024,group_concat_max_len 使用实例;
【1】distinct:去重 【2】order by :排序 【3】设定分割字符
3、常用字符串函数
【1】concat(st1,str2,'test_str'):将括号内的多个字符串组连成一个字符串(就是类似于oracle中的||,sql server中的+,拼接)
【2】length(str)、char_length(str):以字节或者字符获取字符串的长度(英文下是一样的,但是UTF8中文一个字符是3个字节,比如 '你好呀',用char_length就是3,用length就是9)
【3】left(str,N)/right(str,N)函数:获取str左边/右边N个字符
【4】replace(str,old_str,new_str)函数:把str中的old_str字符串,替换成new_str字符串
【5】trim(str):删除str字符串中左右两边的空格,中间不会删除。trim(leading/trailing from 'str')即只删除str前/后的空格。
【6】find_in_set(str1,str2):在逗号分隔符的字符串列表中找到一个字符串。。例如:find_in_set('b','a,b,c'),结果为2,如果str1不存在于str2中,即返回0;
【7】format(N,D,locale):格式化数字,例如format(30011.567,2)则结果为30,011.57。
中国默认以3位为一个逗号,来显示数字,但是如果是其他国家则不同。例如德国就可以这么查看: format(30011.567,2),则显示为,300.11,57
【8】instr(str,find_str):返回字符串在字符串中第一次出现的位置。例如:instr('hello_world','wo'),结果为7
【9】concat_ws('connect_str','str1','str2','str3'):意思是,str1和st2之间用connect_str字符串连接起来,str2与str3之间也是。忽略字符串中的所有Null(但不忽略空格)
【10】reverse(str):反转字符串,比如abc变成cba
【11】substring(str,start_pos,get_length):截取str字符串,从start_post下表开始,获取get_lenth个字符。 也可以写成substring(str, from 4 for 3),意思是从第4个开始取,取3个字符。也可以写成负数,意味着从倒数第几个字符开始取。
【12】lower(str)/upper(str):把str字符串所有字符转换成小写/大写
【13】strcmp(str1,str2):字符串比较~~相等为0,不等为1
【14】repeat(str,N):返回str重复N次的结构
【15】lpad/rpad(str,n,pad):用字符串pad对str最左/右边进行填充,直到长度为n为止。
4、数值函数
【1】ABS(X):绝对值
【2】ceil(x.y):向上取整,得x+1
【3】floor(x.y):向下取整,得x
【4】mod(x,y):求模,等价于x%y
【5】round(x,y):返回参数X的四舍五入有y位小数的值,例如round(5.555,2) -> 5.56
【6】truncate(x,y):返回参数x,截断为y位小数的结果,例如round(5.555,2) -> 5.55
5、日期函数
6、流程函数
【1】IF(EXPR,T,F):如果表达式expr为真,则返回T值,否则返回F值
【2】IFNULL(value,value1):如果value为null,则返回value1值
7、常用函数
6.1、LAST_INSERT_ID():获取自增长的最后插入值ID

(2.16)Mysql之SQL基础——函数的更多相关文章
- (2.15)Mysql之SQL基础——开发设计最佳规范
(2.15)Mysql之SQL基础——开发设计最佳规范 关键字:mysql三大范式,mysql sql开发规范 分析: show profile.mysqllsla.mysqldrmpslow.exp ...
- (2.10)Mysql之SQL基础——约束及主键重复处理
(2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...
- mysql的sql分页函数limit使用 (转)
http://www.cnblogs.com/beijingstruggle/p/5631603.html mysql的sql分页函数limit使用 My sql数据库最简单,是利用mysql的LIM ...
- (2.14)Mysql之SQL基础——游标
(2.14)Mysql之SQL基础——游标 关键词:Mysql游标 -- (1)定义游标 declare cur_name cursor for select * from table_name wh ...
- (2.13)Mysql之SQL基础——触发器
(2.13)Mysql之SQL基础——触发器 关键词:Mysql触发器 1.一般形式 -- 0.查看触发器[1]SHOW TRIGGERS;[2]SELECT * FROM `information_ ...
- (2.11)Mysql之SQL基础——存储过程与变量
(2.11)Mysql之SQL基础——存储过程 关键字:mysql存储过程 查看存储过程: []SELECT * FROM information_schema.ROUTINES WHERE ROUT ...
- (2.9)Mysql之SQL基础——索引的查看与删除
(2.9)Mysql之SQL基础——索引的查看与删除 关键词:mysql索引查看,mysql索引删除 1.索引查询(以下包括主键,唯一,普通,复合,全文,但不包括外键) (1)按库查询 select ...
- (2.8)Mysql之SQL基础——索引的分类与使用
(2.8)Mysql之SQL基础——索引的分类与使用 关键字:mysql索引,mysql增加索引,mysql修改索引,mysql删除索引 按逻辑分类: 1.主键索引(聚集索引)(也是唯一索引,不允许有 ...
- (2.7)Mysql之SQL基础——表的操作与查看
(2.7)Mysql之SQL基础——表的操作与查看 搜索关键字:mysql表操作,comment注释操作,mysql临时表 0.临时表 create temporary table 1.创建表(在in ...
随机推荐
- 各大IT公司 技术博客汇总
来自:http://www.cnblogs.com/IT-Bear/p/3191423.html 腾讯系列(13) 阿里系列(18) 百度系列(3) 搜狐系列(3) 新浪系列(2) 360系 ...
- 静默安装oracle 11g,环境预检查时报错,SEVERE: [FATAL] PRVF-0002 : 无法检索本地节点名
环境描述: 操作系统:Redhat 6.6_x64 oracle:11.2.0.4 x64 问题描述: 今天在安装oracle 11g的数据库,在进行预安装环境检查的时候,报下面的错误: [oracl ...
- [extjs] ExtJS 4.2 开发环境搭建
到官网下载Extjs ,现在最新版的是Ext5.1. 这里用ext4.2演示开发.http://extjs.org.cn/. EXT4.1 在线API 项目结构中ext4.2导入的资源文件: 第一个页 ...
- 如何使用CodeSmith批量生成代码(原创系列教程)
在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做 ...
- Eclipse版GoogleI/O2014开源项目
https://github.com/google/iosched谷歌原版是Gradle工程,用Eclipse开发的导入不了,所以搞了一个Elicpse工程,依赖的jar.库比较多,也比较难找... ...
- 关于用phonegap 3.0+ 打包后sencha touch按钮点击切换动画延迟接近一秒的以及界面闪烁的解决方案
android的webview对硬件加速的支持貌似很不理想,在开启硬件加速的情况下,css3这些需要调用硬件加速的样式会大幅拖慢html5的webapp,在htc的部分手机上还会因开启硬件加速而导致闪 ...
- struts2漏洞原理
一.struts2简介: 目前web框架中非常流行的都是mvc设计模式.经典例子例如:python的Django.Flask:java的ssm等.因为使用MVC设计模式,所以在框架内部处理用户数据流参 ...
- [css]演示:纯CSS实现的右侧底部简洁悬浮效果
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name ...
- 边的双联通+缩点+LCA(HDU3686)
Traffic Real Time Query System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- Dreamweaver 中CSS代码格式化
首先,用DW打开一个已经写好的css文件,看一下编辑好的,没有格式化之前的代码的样子. 然后,我们点击软件窗口上方的“命令”选项,在弹出的菜单中点击“应用源格式”选项,就可以将我们的代码格式化. ...