MySql九大常用函数

环境准备

-- 用户表
CREATE TABLE t_user (
  id int(11) NOT NULL AUTO_INCREMENT,
  uname varchar(40) DEFAULT NULL,
  age int(11) DEFAULT NULL,
  sex int(11) DEFAULT NULL,
  PRIMARY KEY (id)
);

insert  into t_user values (null,'zs',18,1);
insert  into t_user values (null,'ls',20,0);
insert  into t_user values (null,'ww',23,1);
insert  into t_user values (null,'zl',24,1);
insert  into t_user values (null,'lq',15,0);
insert  into t_user values (null,'hh',12,0);
insert  into t_user values (null,'wzx',60,null);
insert  into t_user values (null,'lb',null,null);

【一. if函数】
if(expr1,expr2,expr3)

说明: 如果 expr1 是TRUE,则 IF()的返回值为expr2; 否则返回值则为 expr3。if() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

示例

获取用户的姓名、性别,如果性别为1则显示1,否则显示0;要求使用if函数查询:

 SELECT uname, IF(sex, 1, 0) FROM t_user;

在这里插入图片描述在这里插入图片描述

【二 . ifnull函数】

语法

ifnull(expr1,expr2)

说明:假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。ifnull()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

示例

练习1:获取用户的姓名、性别,如果性别为null则显示为1;要求使用ifnull函数查询:

  SELECT uname, IFNULL(sex, 1) FROM t_user;

【三. 函数的操作符函数】

concat(str1, str2, …)
字符串连接函数,可以将多个字符串进行连接

concat_ws(separator, str1, str2, …)
可以指定间隔符将多个字符串进行连接;

示例
使用concat函数显示出 你好,uname 的结果

 SELECT CONCAT('你好,' , uname) FROM t_user;

使用concat_ws函数显示出 你好,uname 的结果

   SELECT CONCAT_WS(',', '你好', uname) FROM t_user;

【四. 字符串大小写处理函数】

upper(str)
得到str的大写形式

lower(str)
得到str的小写形式

示例
将字符串 hello 转换为大写显示

   SELECT UPPER('hello'); -- HELLO

将字符串 heLLo 转换为小写显示

 SELECT LOWER('heLLo'); -- hello

【五 .移除空格函数】

可以对字符串进行按长度填充满、也可以移除空格符

函数或操作符
trim(str) 将str两边的空白符移除

示例
将用户id位8的用户的姓名的两边空白符移除

-- 表中数据是:'      lb   ', 使用trim后是: 'lb'
 SELECT TRIM(uname) FROM t_user  WHERE id = 8; 

【 六. 子串函数】

字符串也可以按条件进行截取,主要有以下可以截取子串的函数;
substr()、substring()

获取子串:

1:substr(str, pos) 、substring(str, pos);
2:substr(str, pos, len)、substring(str, pos, len)

示例
获取 hello,world 从第二个字符开始的完整子串

SELECT SUBSTR("hello,world", 2);  -- ello,world

示例2
获取 hello,world 从第二个字符开始但是长度为4的子串

  SELECT SUBSTR("hello,world", 2, 4); -- ello

【七 .处理大小写的】

upper(str)  变大写
lower(str)  变小写
  1. 移除空格

    trim(str);

  2. 截取字符串

    substr(str, pos) str
    要截取的字符串,pos从哪里开始截取;

    substr(str, pos, len)
    str要截取的字符串,pos从哪里开始截取, len截取字符串的长度

【八 .时间日期函数】

current_date()

获取当前日期,如 2019-12-18

current_time()

获取当前时:分:秒,如:15:36:11

now()
获取当前的日期和时间,如:2019-12-18 15:37:17

示例1:
获取当前的日期

select cruuent_date();

示例2:
获取当前的时间(仅仅需要时分秒)

select current_time();

示例3:
获取当前时间(包含年月日时分秒)

select now();

【九 . 数值函数】

常见的数值相关函数如下表:

abs(x)
获取数值x的绝对值

ceil(x)
向上取整,获取不小于x的整数值

floor(x)
向下取整,获取不大于x的整数值

pow(x, y)
获取x的y次幂

rand()
获取一个0-1之间的随机浮点数

示例1:
获取 -12 的绝对值

 select abs(-12);

示例2:
将 -11.2 向上取整

select ceil(-11.2);

示例3
将 1.6 向下取整

 select floor(1.6);

示例4:
获得2的32次幂的值

select pow(2, 32);

示例5:
获得一个在0-100之间的随机数

select rand()*100;
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值