函数:将一组逻辑语句封装在函数体中,对外暴露函数名

调用:select 函数名() from 表;(若用到表中的字段则家上‘from 表’)

函数分类:   1.单行函数(例:concate、length、ifnull)

2.分组函数(统计函数,聚合函数,组函数):做统计使用的(传入一组值,返回一个值)

单行函数:

一、字符函数

1.length: 获取参数值的字节数

select length('john');  结果:4

select length('张三丰hahaha');  结果:15

2.cancat:拼接字符串

select cancat('a','b','c'); 结果:abc

3.upper(都变大写)、lower(都变为小写)

select upper('john');   结果:JOHN

select lower('JOhn');   结果: john

例:select concat(upper('hello'), lower('JOHN'));   结果:HELLOjohn

4.substr(同substring): 索引截取字符串(默认从1开始索引)

select substr('指定字符串拉布拉多不拉多',8)  as out_put;  结果:拉多不拉多

select substr('指定字符串拉布拉多不拉多',3,4)  as out_put;  结果:字符串拉    # 表示从3位置开始索引,索引4个字符

5.instr: 返回子字符串在字符串中的起始索引,若子字符串不在字符串里则返回0

select instr('杨不悔爱上了尹六侠','尹六侠') as out_put;   结果:7

6.trim:去掉字符串前后指定字符,默认去掉空格

select trim('     张 翠 翠            ');   结果:张 翠 翠

select trim('a' FROM 'aaaaaa张 aaaa翠aa 翠aaaaaaaaaa');   结果:张 aaaa翠aa 翠

7.lpad:用指定的字符实现左填充到指定长度

select lpad('殷素素', 10, '*');     结果:*******殷素素

select lpad('殷素素', 2, '*');     结果:殷素

8.rpad: 用指定的字符实现右填充到指定长度

select rpad('殷素素', 10, '*');     结果:殷素素*******

9.replace:替换

select replace('张无忌爱上了周芷若', '周芷若', '赵敏');  结果:张无忌爱上了赵敏

二、数学函数

1.round :四舍五入

select round(-1.55);   结果:-2

select round(1.56775, 2);   结果:1.57   # 结果保留2位

2.ceil : 向上取整,返回>=该参数的最小整数

select ceil(5.6);  结果:6

select ceil(-1.09);  结果:-1

3.floor :向下取整,返回<= 该参数的最大整数

select floor(-9.99);  结果:-10

select floor(5.66);    结果:5

4.truncate :截断(小数点后保留1位)

select truncate(1.69999);   结果:1.6

5.mod : 取余

select mod(10, -3);    结果:1    # mod(a,b)   :    a-a/b*b   (被除数为负,则结果为负)

6.rand:获取随机数,返回0-1之间的小数

select rand();   结果:0.8565648699706093

三、日期函数

1.now:返回当前系统日期+时间

select now();   结果:2019-05-25 08:40:40

2.curdate: 返回当前系统日期,不包含时间

select curdate();   结果:2019-05-25

3.curtime:返回当前系统时间,不包含日期

select curtime();   结果:08:42:43

4.获取指定的部分:年(year)、月(month)、月名(monthname)、日(day)、小时(hour)、分钟(minute)、秒(second)

select year(now()) as 年;   结果:2019

select year('1998-09-05') as 年;    结果:1998

select monthname(now()) as 月名;    结果:  May

%Y

四位的年份

%y

两位的年份

%m

月份(01,02....12)

%c

月份(1,2.....12)

%d

日(01,02.....)

%H

小时(24小时制)

%h

小时(12小时制)

%i

分钟(00,01....59)

%s

秒(00,01.....59)

5.str_to_date:将日期格式的字符转换为指定格式的日期(1998-09-05)

select str_to_date('1998-9-5','%Y-%c-%d');   结果:1998-09-05   #格式一一对应

select str_to_date('9-5 1998','%c-%d %Y') as out_put;   结果:1998-09-05

6.date_format:将日期转换为字符

select date_format(now(),'%m月%d日 %y年');   结果:05月25日 19年

四、其他函数

1.version: 查看当前版本号

select version();

2.database:查看当前数据库

select database();

3.user:查看当前用户

select user();

4.password('字符'):返回字符的密码形式

select password('字符');      # 靠后的数据库版本已弃用

5.md5('字符') : 返回字符的MD5的加密形式

select md5('字符');   结果:9c07532d0c9acfecfc4ec2eb265c3e03

五、流程控制函数

1.if函数

select if(10>5,'大','小');    结果:大     # 第一个参数为条件,若成立(ture),则返回第二个参数,若不成立(false),则返回第三个参数。

2.case函数(使用一):

语法:   case 要判断的字段或表达式

when 常量1 then 要显示的值1或语句1;    # 显示值(搭配select使用):后面没有;,显示语句(存储过程里使用):后面有;

when 常量2 then 要显示的值2或语句2;

.....

else 要显示的值n 或语句n;      # else 代表默认的情况

end

例:查询员工的工资,要求:部门号=30,显示工资为1.1倍,部门号=40,显示工资为1.2倍,其他部门,显示原工资

select

salary as 原始工资, department_id,

case department_id

when 30 then salary*1.1     # 注意这里是没有;的

when 40 then salary*1.2

else salary

end as 新工资

from employees;

3.case函数(使用二):

语法:

case

when 条件1 then 要显示的值1或语句1;

when 条件2 then 要显示的值2或语句2;

....

else 要显示的值n 或语句n;

end

例:查询员工工资情况,若工资>13000,显示A级别,若工资>8000,显示B级别

select salary,

case

when salary>13000 then 'A'

when salary>8000 then 'B'

else 'C'

end as 工资级别

from employees;

分组函数

一、简单使用

1.sum:求和

select sum(salary) from employees;    结果:691400.00

2.avg : 平均值

select avg(salary) from employees;   结果:6461.682243

3.max : 最大值

select max(salary) from employees;    结果:24000.00

4.min : 最小值

select min(salary) from employees;  结果:2100.00

5.count : 计算个数

select count(salary) from employees;  结果:107

二、函数参数支持哪些类型

1.sum、avg 用于处理数值型

2.max、min、count 可以处理任何类型

3.以上的分组函数都忽略null值(注:count本身为计算非空(!null)值的个数)

三、和distinct搭配

都可以和distinct搭配使用,distinct(去重)

select sum(distinct salary) from employees;   # 表示salary去重后求和

四、count函数详细介绍

select count(*) from employees;    # * 表示统计所有的行数(只要一行中有一个不为空,则本行数被记上)

select count('xx') from employees;  # 表示在表中加入了一列的‘xx’数值,然后count再进行统计‘xx’的个数,来达到统计所有行的目的

(一般使用count(*)来统计行数)

五、datediff : 计算两个日期相差的天数

select datediff('2019-5-25','2017-3-7');   结果:809

注:和分组函数一同查询的字段要求是group by后的字段(因为分组函数最后计算出来只有一行,若和其他的函数一起使用(例:单行函数),则列表结果可能呈现不规则,这在sql中是没有意义的)

mysql数据库支持的函数_数据库MySQL--常见函数相关推荐

  1. mysql中时间处理函数_基于mysql时间处理函数的应用详解

    DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, --7=星期六).这些索引值对应于ODBC标准. mysql> select DAYOFWEEK('1998 ...

  2. c连接mysql数据库字符串函数_在mysql数据库—— 字符串函数的运用

    在mysql数据库中函数的使用 字符函数: 函数名称 描述 concat 字符连接 Concat_ws 使用指定的分隔符进行字符连接 format 数字格式化(千分化) Lower 转换成小写字母 u ...

  3. mysql数据库 常用函数_《MySQL数据库》常用函数整理

    原标题:<MySQL数据库>常用函数整理 以下内容,是我整理出来的比较常用的字符串函数,数值函数,日期函数. 第一类:字符串函数 1.conv(n,from_base,to_base):对 ...

  4. MySQL数据库中arg函数_【松勤教育】MySQL之常用函数介绍

    mysql函数: MySQL数据库中提供了很丰富的函数.MySQL函数包括聚集函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作.下 ...

  5. MySQL数据库中arg函数_数据库函数有哪些

    数据库函数有:1.数学函数[abs(x).bin(x)]:2.聚合函数[avg(col)]:3.字符串函数[ascii(char)]:4.日期和时间函数[curdate()]:5.加密函数[decod ...

  6. MySQL按名字查询所有信息_数据库小记:根据指定名称查询数据库表名及根据指定名称查询数据库所有表中的字段名称(支持mysql/postgre)...

    注意:本篇文章仅适用于mysql和postgre这两种数据库 1.查询数据库中所有表名及对应表的详细信息 select * from INFORMATION_SCHEMA.tables 2.根据指定名 ...

  7. mysql数据库uuid函数_[转载]MySQL UUID() 函数

    目录 文/温国兵 一 引子 在 MySQL 中,可以有如下几种途径实现唯一值: 自增序列 UUID() 函数 程序自定义 UUID 基于 16 进制,由 32 位小写的 16 进制数字组成,如下: a ...

  8. mysqlsql常用函数_《MySQL数据库》常用函数整理

    以下内容,是我整理出来的比较常用的字符串函数,数值函数,日期函数. 第一类:字符串函数 1.conv(n,from_base,to_base):对from_base进制的数n,转成to_base进制的 ...

  9. mysql数据库求平均值的函数_使用MySQL中的AVG函数求平均值的教程

    MySQL的AVG函数是用来求出各种记录中的字段的平均值. 要了解AVG功能考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...

最新文章

  1. 在CentOS_Linux版虚拟机中安装VMTools工具
  2. html调试模式查看data数据库,接口调试:在线sql语句查看与性能优化
  3. VTK:直线网格之RectilinearGridToTetr​​ahedra
  4. php如何防止超发,PHP+redis实现的限制抢购防止商品超发功能详解
  5. Delphi中DLL或Package窗体载入与显示
  6. geek_享受How-To Geek用户样式脚本的好处
  7. [SCOI2008]着色方案(DP)
  8. 如何自定义FusionCharts图表上的工具提示?
  9. 多次面试美团后,我整理了这几个必备的技术栈!
  10. 企业基础管理薄弱,激励机制不健全怎么办?
  11. 通过堡垒机登陆服务器脚本
  12. 阿里旺旺2012自动登录
  13. WINDOW10初步使用
  14. windows/OpenCV/VS/C++配置
  15. 美赛常用算法及代码——(1)DEA数据包络分析法
  16. 网络安全学习中的工具
  17. 适合初学者的 10 大机器学习项目
  18. 支持向量机(SVM) VS 支持向量回归机(SVR)
  19. 三极管实现与门、或门和非门操作
  20. 使用 validation 验证参数

热门文章

  1. 枚举类型enum用法赋值
  2. 2. Sorting
  3. cytoscape安装java_搭建java环境——安装GSEA和Cytoscape
  4. SPASS按年份拆分文件
  5. 犀牛Phinoceros 如何切换中文语言
  6. 史上最全redis面试题及答案吊打面试官
  7. Android自动接听和挂断电话实现原理
  8. 怎样实现ocr文字识别技术
  9. python 函数不确定传入参数_如何使用python传入不确定个数参数
  10. 【历史上的今天】11 月 7 日:图灵奖女性得主诞生;Twitter 告别 140 字符时代;首位中国 AI 主播