【数据库】函数处理(文本处理函数、日期和时间处理函数、数值处理函数)

函数处理数据

算术运算

操作符 说明
+
-
*
/

e . g . e.g. e.g. 列出 Orders 表中所有每项物品的 id ,数量 quantity ,单价 item_price ,总价 expanded_price(数量 * 单价);

sql 复制代码
SELECT prod_id
	  ,quantity
	  ,item_price
	  ,quantity*item_price AS expanded_price
FROM Orders

函数

在之前数据库相关的博文中,有介绍到几个基本函数:

函数 说明 举例
concat(a,b) 拼接a与b字段 concat(name, mobile) AS basis_info
rtrim() 去除字段右侧空格 rtrim(name)
curdate() 返回当前日期 curdate() AS curr_date

在进行后续内容阐述之前,读者必须先知道一个注意事项:

  • 不同的 DBMS 对相同的函数效果,有着不同的函数语句;但是随着版本的更新迭代,很多 DBMS 不断更新融合,会产生一种 DBMS 有几个函数语句可以实现相同的函数效果;
  • 总而言之,读者在已知自己需要什么效果的前提下,对不同的函数语句多加尝试,即可知道自己本地版本下,到底哪个语句可用哪个不可用。

文本处理函数

e . g . e.g. e.g. 字段内容全部大写;

sql 复制代码
-- UPPER() 函数使得文本内容全部大写
SELECT UPPER(name) as cust_name
FROM Customers

表1:常用文本处理函数一览

函数 说明
LEFT() 返回字符串左侧的字符
LENGTH() 或 LEN() 返回字符串的长度
LOWER() 将字符串转换为小写
LTRIM() 去掉字符串左侧的空格
RIGHT() 返回字符串右边的
RTRIM() 去掉字符串右侧的空格
SUBSTR() 或 SUBSTRING() 提取字符串的部分
SOUNDEX() 返回字符串的SOUNDEX值
UPPER() 将字符串转换为大写

SOUNDEX() 函数:
e . g . e.g. e.g. 找出数据库中名字类似 "Michael Green" 的信息;

sql 复制代码
SELECT cust_name
FROM Customers
WHERE SOUNDEX(cust_name) = SOUNDEX('Michael Green');
sql 复制代码
-- 结果输出为:
cust_name
---------
Michael Green
Michelle Green
Michaeal Greem

上述结果的三者读音类似,所以 SOUNDEX() 函数将其筛选出来。


日期和时间处理函数

DATEPART() 函数:
e . g . e.g. e.g. 筛选出2020年所有订单;

sql 复制代码
SELECT *
FROM Orders
WHERE DATEPART(yy, order_date)=2020;

PostgreSQL 版本

sql 复制代码
SELECT *
FROM Orders
WHERE DATE_PART('year', order_date)=2020;

Oracle 版本

sql 复制代码
SELECT *
FROM Orders
WHERE EXTRACT(year FROM order_date)=2020;

MySQL/MariaDB 版本

sql 复制代码
SELECT *
FROM Orders
WHERE YEAR(order_date)=2020;

SQLite 版本

sql 复制代码
SELECT *
FROM Orders
WHERE strftime('%Y', order_date)='2020';

数值处理函数

表2:常用数值处理函数一览

函数 说明
PI() 返回圆周率 π \pi π 的值
ABS() 返回绝对值
SIN() 返回角度的正弦
COS() 返回角度的余弦
TAN() 返回角度的正切
EXP() 返回指数值
SQRT() 返回平方根

--

以上

相关推荐
袋鼠云数栈3 小时前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
ACP广源盛139246256733 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
ACP广源盛139246256734 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
倔强的石头_5 小时前
事务边界与批量写入:避免长事务、锁等待和日志压力
数据库
努力努力再努力wz6 小时前
【Redis入门系列】从 KEYS 到 SCAN:渐进式遍历、Cursor 与位反转原理
数据库·redis·缓存
坐吃山猪6 小时前
【多线程】Lock与Condition
大数据·数据库
Lightpwd7 小时前
Spring Boot 多数据源落地:AbstractRoutingDataSource + 注解切面(附源码)
数据库·后端
LabVIEW开发7 小时前
LabVIEW 64位安装的位深陷阱:工具包、内存与工程兼容
数据库·labview·labview知识·labview功能·labview程序
寺中人7 小时前
MySQL 8.0 Windows 完整安装教程:环境配置、密码重置与常见报错排查
数据库·windows·mysql·环境搭建·mysql 安装
这个DBA有点耶7 小时前
同样48核配置TPS差1倍?高性价比数据库一体机的“软硬协同”才是分水岭
服务器·数据库·架构