mysql函数

函数

在mysql中除了聚合函数 我们还经常会使用到一些其他的函数 下面就一起来看一下吧!

字符串函数

函数功能
concat(S1,S2,.....Sn)将字符串S1,S2,...Sn拼接成一个字符串
lower (str)将字符串str全部转换为小写
upper(str)将字符串str全部转换为大写
lpad(str,n,pad)左填充 用字符串pad对字符串str的左边进行填充 使得总长度达到n
rpad(str,n,pad)右填充 用字符串pad 对字符串str的右边进行填充 使得总长度达到n
trim(str)去掉字符串str 的头尾空格
substring(str,start,length)截取字符串 从str中从长度start开始 截取长度length的字符串
-- 字符串函数

-- 拼接 hello与mysql		表示将多个字符串进行填充
select concat('hello','world!');

--  Hello 全部转为小写
select lower('Hello');

--  Hello 全部转为大写
select upper('Hello');

--  左填充   第一个参数表示要操作的字符 第二个参数表示将源字符串共填充到几位  最后一个参数表示用什么填充
select lpad('01',6,'-');

-- 右填充  参数同上
select  rpad('01',6,'*');

-- 去除 ' hello '头尾部空格
select trim(' hello ');

-- 截取字符串  第一个参数表示要操作的字符串 第二个参数表示从第几个位置上开始截取 这里指的是具体位置 第三个参数表示截取的长度

select substring('Hello,world!',7,5);

数值函数

函数功能
ceil(x)向上取整 只要后面有大于0的小数向上取一位
floor(x)向下取整 舍弃小数
mod(x,y)返回 x/y的模
rand()返回0~1内的随机数 rand*n 表示返回 0~n 的随机数
round(x,y)x 四舍五入后的值 y 表示保留几位小数 默认为0
-- 数值型函数
-- 对 1.1向上取整   不管四舍五入的规则 只要后面有大于0的小数 直接向上取一位
select ceil(1.1);

-- 对 1.9向下取整   不管四舍五入的规则 直接舍弃小数
select floor(1.9);

-- 对 4/3 取模  
select mod(4,3);

-- 获取随机数  rand函数本身表示获取 0,1之间但是不包含0,1的随机数 *n 表示获取 0-100的随机数
select rand()*100;

-- 四舍五入   第一个参数表示要操作的数 第二个参数表示 要保留的位数 不写默认保留0位
select round(3.1415926,3);

日期函数

函数功能
curdate()返回当前日期
curtime()返回当前时间
now()返回当前日期+时间
year(date)返回指定date的年份
month(date)返回指定date的月份
day(date)返回指定date的天
date_add(date,interval expr)返回一个日期/时间值加上一个时间间隔expr后的 时间值
datediff(date1,date2)返回开始时间date1和结束时间date2的天数时间差
-- 日期函数
-- 获取当前日期 
select  curdate();

-- 获取当前时间
select curtime();

-- 获取当前日期+时间
select now();

-- 获取当前年月日
select year(now());
select month(now());
select day(now());

-- 增加指定时间间隔
select date_add(now(),interval 70 year);

-- 获取两个日期相差天数
select datediff('2021-10-01', '2021-12-01');

-- 查询所有员工入职天数 并按照入职天数倒叙排序
select name, datediff(curdate(),entrydate) '入职天数' from emp order by 入职天数 asc;

流程函数

函数功能
IF(value , t , f)如果valuetrue返回t 否则返回f
IFNULL(value1 , value2)如果value1为null返回value2 否则返回value1
CASE ’判断对象‘ WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END如果val1true返回res1, …否则返回default
CASE ’判断对象‘[ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END如果expr的值等于val1,返回 res1,… 否则返回default默认值
-- 流程函数

-- if(value,t ,f )  如果value为true 返回true 否则返回false
select if(true,'t','f');
 
-- ifnull(value1,value2)	如果value1不为null返回vlaue1 否则返回value2
select ifnull('ok','no');
select ifnull('','no');
select ifnull(null,'no');

-- case ‘要判断的值’ when[val1] then[res1]... else[default] end 
-- 如果 val(i) 值为true 返回 res(i) 否则返回 default 默认值

-- 查询员工表的姓名和工作地址(北京/上海----->一线城市 ,其他------>二线城市)
select name, (case workaddress when'北京' then '一线城市'when'上海' then'一线城市' else '二线城市'end) as '工作地址' from emp ;


-- case ‘要判断的值’ [expr]when [val1] then [res1] ... else[default] end 
-- 如果 expr 的值等于 val  返回res ...否则返回默认值

### MYSQL 函数概述 在 MySQL 数据库管理系统中,函数是一类重要的工具,可以用来执行各种计算、转换和其他操作。这些函数分为内置函数和自定义函数两大类。以下是常见的 MySQL 内置函数分类及其具体用法。 --- #### **1. 字符串函数** 字符串函数主要用于处理字符型数据,支持拼接、截取、替换等功能。 - **`CONCAT(str1, str2, ...)`**: 将多个字符串连接成一个字符串。 ```sql SELECT CONCAT('Hello', ' ', 'World'); -- 返回 "Hello World" ``` - **`SUBSTRING(str, pos, len)`**: 提取子字符串,从 `pos` 开始提取长度为 `len` 的部分。 ```sql SELECT SUBSTRING('MySQL Function', 7, 8); -- 返回 "Function" ``` - **`REPLACE(str, from_str, to_str)`**: 替换字符串中的部分内容。 ```sql SELECT REPLACE('Database Management System', 'Management', 'Admin'); -- 返回 "Database Admin System" ``` - **`UPPER(str)` 和 `LOWER(str)`**: 转换字符串大小写。 ```sql SELECT UPPER('mysql'), LOWER('MYSQL'); -- 返回 "MYSQL", "mysql" ``` 以上内容来源于常见字符串函数介绍[^2]。 --- #### **2. 日期时间函数** 日期时间函数用于处理与时间和日期相关的数据。 - **`NOW()`**: 获取当前的日期和时间。 ```sql SELECT NOW(); -- 返回类似于 "2023-10-05 14:30:00" ``` - **`DATE(date_time_expr)`**: 提取日期部分。 ```sql SELECT DATE('2023-10-05 14:30:00'); -- 返回 "2023-10-05" ``` - **`DATE_FORMAT(date, format)`**: 根据指定格式化模板返回日期/时间字符串。 ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 自定义格式输出 ``` 相关内容可参见日期函数说明[^2]。 --- #### **3. 数学函数** 数学函数提供了基本的数值运算能力。 - **`ABS(num)`**: 计算绝对值。 ```sql SELECT ABS(-10); -- 返回 10 ``` - **`ROUND(num, decimals)`**: 对数字四舍五入到指定位数的小数。 ```sql SELECT ROUND(123.456, 2); -- 返回 123.46
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值