进阶4:常见函数

概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名好处:

1、隐藏了实现细节 2、提高代码的重用性

调用:select 函数名(实参列表) 【from 表】;

特点:

①叫什么(函数名)

②干什么(函数功能)

分类:

1、单行函数

如 concat、length、ifnull等

2、分组函数

功能:做统计使用,又称为统计函数、聚合函数、组函数

常见函数:

一、单行函数

字符函数:

length:获取字节个数(utf-8一个汉字代表3个字节,gbk为2个字节)

concat

substr

instr

trim

upper

lower

lpad

rpad

replace

数学函数:

round

ceil

floor

truncate

mod

日期函数:

now

curdate

curtime

year

month

monthname

day

hour

minute

second

str_to_date

date_format

其他函数:

version

database

user

控制函数

if

case

一、字符函数

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

SELECT LENGTH('john');

SELECT LENGTH('张三丰hahaha');

SHOW VARIABLES LIKE '%char%'

2.concat 拼接字符串

SELECT CONCAT(last_name,'_',first_name) 姓名 FROM employees;

3.upper、lower

SELECT UPPER('john');

SELECT LOWER('joHn');

示例:将姓变大写,名变小写,然后拼接

SELECT CONCAT(UPPER(last_name),LOWER(first_name)) 姓名 FROM employees;

4.substr、substring

注意:索引从1开始

截取从指定索引处后面所有字符

SELECT SUBSTR('李莫愁爱上了陆展元',7) out_put;

截取从指定索引处指定字符长度的字符

SELECT SUBSTR('李莫愁爱上了陆展元',1,3) out_put;

案例:姓名中首字符大写,其他字符小写然后用_拼接,显示出来

SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) out_put

FROM employees;

5.instr 返回子串第一次出现的索引,如果找不到返回0

SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷八侠') AS out_put;

6.trim

SELECT LENGTH(TRIM(' 张翠山 ')) AS out_put;

SELECT TRIM('aa' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') AS out_put;

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

SELECT LPAD('殷素素',2,'*') AS out_put;

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

SELECT RPAD('殷素素',12,'ab') AS out_put;

9.replace 替换

SELECT REPLACE('周芷若周芷若周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') AS out_put;

二、数学函数

round 四舍五入

SELECT ROUND(-1.55);

SELECT ROUND(1.567,2);

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

SELECT CEIL(-1.02);

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

SELECT FLOOR(-9.99);

truncate 截断

SELECT TRUNCATE(1.69999,1);

mod取余

mod(a,b) : a-a/bb

mod(-10,-3):-10- (-10)/(-3)(-3)=-1

SELECT MOD(10,-3);

SELECT 10%3;

三、日期函数

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

SELECT NOW();

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

SELECT CURDATE();

curtime 返回当前时间,不包含日期

SELECT CURTIME();

可以获取指定的部分,年、月、日、小时、分钟、秒

SELECT YEAR(NOW()) 年;

SELECT YEAR('1998-1-1') 年;

SELECT YEAR(hiredate) 年 FROM employees;

SELECT MONTH(NOW()) 月;

SELECT MONTHNAME(NOW()) 月;

str_to_date 将字符通过指定的格式转换成日期

SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS out_put;

查询入职日期为1992--4-3的员工信息

SELECT * FROM employees WHERE hiredate = '1992-4-3';

SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992','%c-%d %Y');

date_format 将日期转换成字符

SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put;

查询有奖金的员工名和入职日期(xx月/xx日 xx年)

SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日 %y年') 入职日期

FROM employees

WHERE commission_pct IS NOT NULL;

四、其他函数

SELECT VERSION();

SELECT DATABASE();

SELECT USER();

五、流程控制函数

1.if函数: if else 的效果

SELECT IF(10<5,'大','小');

SELECT last_name,commission_pct,IF(commission_pct IS NULL,'没奖金,呵呵','有奖金,嘻嘻') 备注

FROM employees;

2.case函数的使用一: switch case 的效果

java中

switch(变量或表达式){

case 常量1:语句1;break;

...

default:语句n;break;

}

mysql中

case 要判断的字段或表达式

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

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

...

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

end

案例:查询员工的工资,要求

部门号=30,显示的工资为1.1倍

部门号=40,显示的工资为1.2倍

部门号=50,显示的工资为1.3倍

其他部门,显示的工资为原工资

SELECT salary 原始工资,department_id,

CASE department_id

WHEN 30 THEN salary1.1

WHEN 40 THEN salary1.2

WHEN 50 THEN salary*1.3

ELSE salary

END AS 新工资

FROM employees;

3.case 函数的使用二:类似于 多重if

java中:

if(条件1){

语句1;

}else if(条件2){

语句2;

}

...

else{

语句n;

}

mysql中:

case

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

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

。。。

else 要显示的值n或语句n

end

案例:查询员工的工资的情况

如果工资>20000,显示A级别

如果工资>15000,显示B级别

如果工资>10000,显示C级别

否则,显示D级别

SELECT salary,

CASE

WHEN salary>20000 THEN 'A'

WHEN salary>15000 THEN 'B'

WHEN salary>10000 THEN 'C'

ELSE 'D'

END AS 工资级别

FROM employees;

mysql4函数_MySQL-4.常见函数相关推荐

  1. mysql fetch rows_差异mysql_fetch_array()和mysql_fetch_rows()函数_mysql

    区别mysql_fetch_array()和mysql_fetch_rows()函数 form:http://www.uphtm.com/php/254.html 如果我们不仔细看会发现象mysql_ ...

  2. mysql 月的周_mysql 按月/按周集锦统计函数 DATE_FORMAT() 函数_mysql

    mysql 按月/按周汇总统计函数 DATE_FORMAT() 函数 定义和用法 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,form ...

  3. mysql 日期_Mysql数据库常见函数(下)——日期时间函数

    前两期我们分别学习了Mysql数据库中常见的字符函数和数值函数,那么本期我们一起来学习Mysql数据库中常见的日期时间函数. ADDDATE(d,n):计算起始日期 d 加上 n 天的日期 实例: S ...

  4. mysql4函数,mysql笔记4_函数_MySQL

    常用函数: concat 连接函数 Lower 转小写 upper 转大写 Length 长度 substr 子串 now 当前时间 Year 当前年份... 流程函数: ifnull(column, ...

  5. mysql 分函数_mysql常见函数-分组函数

    分组函数 1.功能:用作统计使用,又称为聚合函数或统计函数或组函数. 2.分类:sum 求和.avg 平均值.max 最大值.min 最小值.count 计算个数 3.简单使用 SELECT SUM( ...

  6. R语言中dim函数_R语言 常见函数知识点梳理与解析 | 精选分析

    目 录 1.str() 显示数据集和变量类型,并简要展示数据集情况 2.subset()  取子集 3.which.min(), which.max()和which() 4.pmin( )/ pmax ...

  7. mysql常用转换函数_MySQL中常用转换函数介绍

    Cast函数:CONVERT函数. 用法:CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name). ...

  8. mysql 最小日期函数_MySQL 日期加减函数汇总

    1. addtime() 为日期加上指定秒数select addtime(now(),1); -- 加1秒2. adddate() 有两种用法,第二个参数直接填数字的话是为日期加上指定天数,填inte ...

  9. mysql中日期判断的函数_MySql判断汉字、日期、数字的函数

    几个平常用的mysql函数 /***************************************************** 1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字 *** ...

最新文章

  1. 不只会卖萌:皮卡丘们真的能改造你的大脑
  2. 设备树 xlnx-phy 使用
  3. sed搜索某行在行末追加_linux shell 用sed命令在文本的行尾或行首添加字符
  4. 一份C++学习资源整理,咬牙切齿地好用。
  5. bash for循环_Bash 中的 For 循环
  6. linux执行sh提示非标准环境,Linux执行.sh文件时提示No such file or directory该怎么办(三种解决办法)...
  7. 模式识别中的特征向量和矩阵的特征向量有什么关系
  8. java 遍历 likedlist_Java集合02----LinkedList的遍历方式及应用
  9. ASP.NET工作笔记014---用VB.NET封装服务器端控件
  10. httpclient proxy 方式ssl 死锁 socketRead0问题解决
  11. Windows聚焦壁纸
  12. 批量爬取某图片网站的图片
  13. python的f是什么意思_Python 字符串前面加u,r,b,f的含义
  14. oracle 按时间每五分钟分割,Oracle 5分钟或30分钟分割方法
  15. 删除主键索引 oracle,删除主键无法删除对应索引问题 drop constraint
  16. 02 FinalReference.referent的回收时机
  17. mysql如何修改字段允许为空
  18. pyecharts源码解读(10)渲染包render之templates目录:渲染模板
  19. MongoDB默认使用的SCRAM-SHA1认证机制
  20. arena of valor服务器未响应,传说对决 -Arena of Valor-启动后一直黑屏无法进入什么原因...

热门文章

  1. cad文字插件_超好用的4个CAD应用程序,让你提升工作幸福感,裂墙推荐
  2. linux订阅软件包,安装 Manjaro Linux 后必做的 6 件事 | Linux 中国
  3. java窗口三栏布局_移动端的flex三栏布局的相关知识介绍(代码示例)
  4. vb软件使用时间限制_GTD时间管理软件Wunderlist使用心得总结
  5. java定时任务设置为每天执行一次,首次还是好的,到第二天就不执行了的原因
  6. Win10下安装不同版本的MySQL
  7. websocket的WebSocketServer无法注入service
  8. RabbitMQ消息订阅与轮询
  9. Linux中移动,复制,删除,打包排除某个目录或文件
  10. mysql的索引和执行计划