MySQL必知必会 学习笔记 第十一章 使用数据处理函数
数据库中函数的可移植性不强,每种DBMS都支持其他实现不支持的函数,有时差异还很大。
将文本全部大写的函数:
SELECT Upper(columnName)
FROM tableName;
right函数参数为right(columnName, num)
,num含义为要返回的字符数,left函数与此相似:
locate函数参数为locate(substr, str, pos)
,substr指明要查找的串,str指明要查找的列,pos指明要查找的起始位置,起始位置是可选参数,默认为0,返回值为子串开始的下标,此下标是从1开始的:
substring函数参数为substring(columnName, pos, len)
,该函数返回从下标为pos开始的长度为len的子串,原串的首字符下标为1:
Soundex函数返回值为描述文本串其语音表示的字母数字模式,可用于返回发音相似的列:
书上的例子:
MySQL使用的日期格式为yyyy-mm-dd,不管是插入或更新表值还是用WHERE子句进行过滤,都要用此格式。
MySQL也支持两位数字的年份,此时00-69表示2000-2069,70-99表示1970-1999,使用四位数字的年份更可靠,MySQL就不用进行假定了。
以下选取特定日期的行会运行失败:
SELECT columnName
FROM tableName
WHERE timeColumn = '2005-09-01';
上例中timeColumn的类型为datetime,这种类型存储日期及时间值。可能存储的值为2005-09-01 11:30:05
,但以上语句无法搜索出此行,WHERE的匹配会失败。必须使用Date函数,此函数只提取列的日期部分:
SELECT columnName
FROM tableName
WHERE Date(timeColumn) = '2005-09-01';
Time函数返回列的时间部分,这两个函数是在MySQL 4.1.1中首次引入。
匹配2005年9月份的所有订单:
SELECT columnName
FROM tableName
WHERE Date(timeColumn) BETWEEN '2005-09-01' AND '2005-09-30';
另一种方式:
SELECT columnName
FROM tableName
WHERE Year(timeColumn) = 2005 AND Month(timeColumn) = 9;
虽然数值处理函数没有串或日期处理函数使用的这么频繁,但它却是主流DBMS中最一致的函数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2019-02-20 JAVA中的算术运算符
2019-02-20 JAVA数据类型转换