sql-函数

函数:一段可以直接被另一段程序调用的程序或代码。

字符串函数

函数 功能
CONCAT(s1, s2, ..., sn) 字符串拼接,将s1, s2, ..., sn拼接成一个字符串
LOWER(str) 将字符串全部转为小写
UPPER(str) 将字符串全部转为大写
LPAD(str, n, pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
RPAD(str, n, pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
TRIM(str) 去掉字符串头部和尾部的空格
SUBSTRING(str, start, len) 返回从字符串str从start位置起的len个长度的字符串
REPLACE(column, source, replace) 替换字符串
sql 复制代码
--concat
SELECT CONCAT('hello','mysql');
--返回 hello mysql

--lower
select lower('Hello');
--返回 hello

-- upper
SELECT UPPER('Hello');
--返回 HELLO

--lpad 左填充
SELECT LPAD('01',5,'-');
--返回 ---01

--rpad 右填充
SELECT RPAD('01',5,'-');
--返回 01---

-- trim 去除空格
SELECT TRIM(' Hello World ');
--返回 Hello World

-- substring 切片(起始索引为1)
SELECT SUBSTRING('Hello World', 1, 5);
--返回 Hello

sql 复制代码
-- 员工工号统一为5位数,不足5位的全部在前面补0.
UPDATE emp
SET workno = LPAD(workno, 5, '0');

数值函数

函数 功能
CEIL(x) 向上取整
FLOOR(x) 向下取整
MOD(x, y) 返回x/y的模(余数)
RAND() 返回0~1内的随机数
ROUND(x, y) 求参数x的四舍五入值,保留y位小数

日期函数

常用函数:

函数 功能
CURDATE() 返回当前日期
CURTIME() 返回当前时间
NOW() 返回当前日期和时间
YEAR(date) 获取指定date的年份
MONTH(date) 获取指定date的月份
DAY(date) 获取指定date的日期
DATE_ADD(date, INTERVAL expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1, date2) 返回起始时间date1和结束时间date2之间的天数
sql 复制代码
--date_add,当前时间推后70天
SELECT date_add (now(), INTERVAL 70 DAY);
--date_add,当前时间推后70月
SELECT date_add (now(), INTERVAL 70 MONTH);
--datediff
select datediff('2021-12-01','2021-10-01');--第一个日期减第二个日期

--查询所有员工的入职天数,并根据入职天数倒叙排序
SELECT name, DATEDIFF(CURDATE(), entrydate) AS entrydays 
FROM emp 
ORDER BY entrydays  DESC;

流程控制函数

常用函数:

函数 功能
IF(value, t, f) 如果value为true,则返回t,否则返回f
IFNULL(value1, value2) 如果value1不为空,返回value1,否则返回value2
CASE WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END 如果val1为true,返回res1,... 否则返回default默认值
CASE [ expr ] WHEN [ val1 ] THEN [ res1 ] ... ELSE [ default ] END 如果expr的值等于val1,返回res1,... 否则返回default默认值
sql 复制代码
select
    name,
    (case when age > 30 then '中年' else '青年' end)
from employee;
select
    name,
    (case workaddress when '北京市' then '一线城市' when '上海市' then '一线城市' else '二线城市' end) as '工作地址'
from employee;
相关推荐
爱喝白开水a12 分钟前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
想ai抽16 分钟前
深入starrocks-多列联合统计一致性探查与策略(YY一下)
java·数据库·数据仓库
武子康25 分钟前
Java-152 深入浅出 MongoDB 索引详解 从 MongoDB B-树 到 MySQL B+树 索引机制、数据结构与应用场景的全面对比分析
java·开发语言·数据库·sql·mongodb·性能优化·nosql
longgyy40 分钟前
5 分钟用火山引擎 DeepSeek 调用大模型生成小红书文案
java·数据库·火山引擎
ytttr8731 小时前
C# 仿QQ聊天功能实现 (SQL Server数据库)
数据库·oracle·c#
盒马coding2 小时前
第18节-索引-Partial-Indexes
数据库·postgresql
不剪发的Tony老师3 小时前
CloudDM:一站式数据库开发管理工具
数据库
望获linux3 小时前
【实时Linux实战系列】Linux 内核的实时组调度(Real-Time Group Scheduling)
java·linux·服务器·前端·数据库·人工智能·深度学习
云宏信息3 小时前
【深度解析】VMware替代的关键一环:云宏ROW快照如何实现高频业务下的“无感”数据保护?
服务器·网络·数据库·架构·云计算·快照
怪兽20143 小时前
Redis常见性能问题和解决方案
java·数据库·redis·面试