avatar

一条在知识海洋的咸鱼

这个家伙很懒,啥也没有留下😋

  • 首页
  • Linux
  • OCJP
  • Java核心技术卷
  • J2EE相关标准
  • 深入理解Java虚拟机
  • NIO与SOcket编程技术指南
  • Java多线程编程核心技术
  • Redis开发与运维
  • Spring Cloud Alibaba 微服务原理与实践
  • DevOps
  • Docker
  • MySQL必知必会
  • AI自学路线
  • Spring Boot 编程思想(核心篇)
主页 第十一章 使用数据处理函数
文章

第十一章 使用数据处理函数

发表于 2021-06-28 更新于 2026-06- 10
作者 Administrator
13~17 分钟 阅读

MySQL支持的函数

  • 函数
    • 函数没有SQL的强可移植性
    • 使用函数
  • 文本处理函数
    • 常用的文本处理函数
    • 关于SOUNDEX()
  • 日期和时间处理函数
    • 常用日期和时间处理函数
    • 注意格式
    • 日期部分比较
    • 日期范围检索
  • 数值处理函数
    • 常用数值处理函数

函数

SQL支持利用函数来处理数据,给数据的处理和转换提供了方便

函数没有SQL的强可移植性

多数SQL语句是可移植的,在不同实现之间差异不大。而函数可移植性不大,主要的DBMS的实现都支持其他不支持的函数,而且差异还很大
如果使用函数,应该做好代码注释,确切表明编写的SQL代码的含义。因为如果DBMS不同,编写应用程序代码会不同

使用函数

  • 处理文本串
    删除、填充值,转换值大小写
  • 在数值数据上进行算数操作
    返回绝对值,进行代数运算
  • 处理日期和时间值并从这些值中提取特定成分的日期和时间
    返回两个日期差,检查日期有效性
  • 返回DBMS正使用的特殊信息对的系统函数
    返回用户登录信息,检查版本细节

文本处理函数

举例

  • TRIM() 去空格
  • UPPER() 转换为大写
SELECT
	vend_name,
	UPPER( vend_name ) AS vend_name_upcase 
FROM
	vendors 
ORDER BY
	vend_name;

image.png

常用的文本处理函数

  • LEFT() 返回串左边串的字符
  • LENGTH() 返回串的长度
  • LOCATE() 找出一个串的子串
  • LOWER() 将串转换为小写
  • LTRIM() 去串左边空格
  • RIGHT() 返回串右边的字符
  • RTRIM() 去串右边空格
  • SOUNDEX() 返回串的SOUNDEX值
  • SUBSTRING() 返回子串的字符
  • UPPER() 将串转换为大写

关于SOUNDEX()

SOUNDEX是一个将任何文本串转换为其语音表示的字母数字模式的算法,能对串进行发音比较而不是字母比较。与多是DBMS一样,MySQL提供了对SOUNDEX的支持

  • 举例
    image.png
    客户表中有一个客户联系名为Y Lee,如果录入信息时错误,实际客户为Y Lie。那么按照正确的名字搜索也不会返回数据。
    使用SOUNDEX()函数进行搜索会匹配所有发音类似Y Lie的联系名
SELECT
	cust_name,
	cust_contact 
FROM
	customers 
WHERE
	SOUNDEX( cust_contact ) = SOUNDEX( "Y Lie" );

image.png

日期和时间处理函数

日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间。

常用日期和时间处理函数

  • ADDDATE()
    增加一个日期(天、周等)
  • ADDTIME()
    增加一个时间(时、分等)
  • CURDATE()
    返回当前日期
  • CURTIME()
    返回当前时间
  • DATE()
    返回日期时间的日期部分
  • DATEDIFF()
    计算两个日期之差
  • DATE_ADD()
    高度灵活的日期运算函数
  • DATE_FORMAT()
    返回一个格式化的日期或时间串
  • DAY()
    返回一个日期的天数部分
  • DAYOFWEEK()
    返回对应的星期几
  • HOUR()
    返回小时部分
  • MINUTE()
    返回分钟部分
  • MONTH()
    返回月份部分
  • NOW()
    返回当前日期和时间
  • SECOND()
    返回秒部分
  • TIME()
    返回时间部分
  • YEAR()
    返回年份部分

注意格式

MySQL的日期格式最好指定为yyyy-mm-dd,这样的日期格式排除了多义性。

SELECT
	cust_id,
	order_num,
	order_date 
FROM
	orders 
WHERE
	order_date = "2005-09-01";

image.png

日期部分比较

指示MySQL仅将给出的日期与列中的日期部分进行比较,而不是将给出的日期与整个列值进行比较,使用Date()函数。

SELECT
	cust_id,
	order_num,
	order_date 
FROM
	orders 
WHERE
	DATE(order_date) = "2005-09-01";
  • 如果要的是日期,使用Date(),即使相应的列值包含日期也是如此。这样如果以后该列中有日期和时间值,SQL代码也不用更改

日期范围检索

  • 检索9月份下的信息
    1.使用BETWEEN AND连接首尾日期,结果集包含首位日期
SELECT
	cust_id,
	order_num,
	order_date 
FROM
	orders 
WHERE
	DATE( order_date ) BETWEEN "2005-09-01" 
	AND "2005-09-30";

image.png
2.使用YEAR()和MONTH()函数
由于日期不是文本内容,所以不强求加引号,当然也可以加

SELECT
	cust_id,
	order_num,
	order_date 
FROM
	orders 
WHERE
	YEAR ( order_date )= 2005 
	AND MONTH ( order_date )= 9;

image.png

数值处理函数

数值处理函数仅处理数值数据。一般主要用于代数、三角或几何运算,因此使用并不频繁

常用数值处理函数

  • ABS() 返回绝对值
  • COS() 返回角度余弦值
  • EXP() 返回数值指数值
  • MOD() 返回除操作余数
  • PI() 返回圆周率
  • RAND() 返回一个随机数
  • SIN() 返回一个角度正弦
  • SQRT() 返回一个数的平方根
  • TAN() 返回一个角度的正切
MySQL必知必会
SQL
许可协议: 
分享

相关文章

7月 6, 2021

第二十九章 数据库维护

7月 6, 2021

第二十八章 安全管理

确保数据的安全和完整需要利用访问控制访问控制root账户不要使用root管理用户创建用户账号简单创建一个新用户账号使用GRANT或INSERT创建重命名用户账号删除用户账号设置访问权限访问控制用户需要对其数据具有适当的访问权,既不能过多,也不能过少,例如多数用户需要对表进行读写,少数用户需要创建和删

7月 6, 2021

第二十七章 全球化和本地化

MySQL处理不同字符集和语言的基础知识字符集和校对顺序校对的重要性使用字符集和校对顺序字符集和校对顺序数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索MySQL需要适应不同的字符集(字母和字符),应应不同的排序和检索数据的方法字符集:字母和符号的集合编码:某个字符集成员的

下一篇

第十二章 汇总数据

上一篇

第十章 创建计算字段

最近更新

  • 55 异常兜底:工具失败、非法输出、空检索与超时
  • 54 Agent Memory:短期记忆、用户上下文与摘要
  • 53 Human-in-the-loop:让关键动作暂停、确认与恢复
  • 52 工单 Tool:字段校验、创建结果与失败补偿
  • 51 订单 Tool:Mock、鉴权、状态解析与脱敏

热门标签

java基础 微服务 maven Spring Tomcat DDD Linux Linux基础 SQL基础 数据结构算法

目录

©2026 一条在知识海洋的咸鱼. 保留部分权利。

使用 Halo 主题 Chirpy