朱志锋 發表於 2025-12-22 10:11:23

MySQL内置函数全解析

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">一、内置函数是什么?</a></li><li><a href="#_label1">二、日期函数</a></li><li><a href="#_label2">三、字符串函数</a></li><li><a href="#_label3">四、数学函数</a></li><li><a href="#_label4">五、其它函数</a></li></ul></div><p class="maodian"><a name="_label0"></a></p><h2>一、内置函数是什么?</h2>
<p>内置函数可以理解为 MySQL 写好放入&ldquo;工具箱&rdquo;里的小工具,你不需要知道这些工具内部是怎么制造的,只需要知道给它什么,它还你什么。</p>
<p class="maodian"><a name="_label1"></a></p><h2>二、日期函数</h2>
<ul><li><code>CURRENT_DATE()</code>:问数据库,&ldquo;今天是几号?&rdquo;,然后数据库会返回今天的日期</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095163.png" /></p>
<ul><li><code>current time()</code>:获取系统当前的&ldquo;时分秒&rdquo;信息,不包含日期</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095181.png" /></p>
<ul><li><code>current_timestamp()</code>:返回当前系统的日期和时间</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095197.png" /></p>
<ul><li><code>date()</code>:提取日期的某一部分</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095170.png" /></p>
<ul><li><code>DATE_ADD(DATE_SUB)</code>:给一个日期加上(或减去)指定的时间间隔</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095144.png" /><br /><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095178.png" /></p>
<p>这里的<code>INTERVAL</code>是必须要加上去的</p>
<ul><li><code>DATEDIFF</code>:计算两个日期的间隔时间</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095159.png" /></p>
<ul><li><code>NOW</code>:计算两个日期的间隔时间</li></ul>
<p class="maodian"><a name="_label2"></a></p><h2>三、字符串函数</h2>
<ul><li>基础信息与拼接:<code>CHARSET</code>:查看字符串的字符集,<code>CONCAT</code>:把多个字符串拼成一个。</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095138.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095245.png" /></p>
<ul><li>大小写与比较:<code>UCASE(str) / LCASE(str)</code>:转大写 / 转小写,<code>STRCMP(s1, s2)</code>: 比较两个字符串。相等返回 <code>0</code>,左边小返回 <code>-1</code>,左边大返回 <code>1</code></li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095271.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095279.png" /></p>
<ul><li>查找与位置:<code>INSTR</code>: 返回子串在主串中第一次出现的位置,<code>LENGTH</code>: 返回字符串的字节长度</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095370.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095323.png" /></p>
<ul><li>提取与截取:<code>LEFT(str, len)</code>: 从左边起取 len 个字符,<code>SUBSTRING(str, start, )</code>: 从指定位置开始截取</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095355.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095317.png" /></p>
<ul><li>修改与清理:<code>REPLACE(str, from, to)</code>: 替换内容,<code>LTRIM(str) / RTRIM(str)</code>: 去掉左边 / 右边的空格</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095361.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095443.png" /></p>
<p class="maodian"><a name="_label3"></a></p><h2>四、数学函数</h2>
<p>MySQL 的数学函数就像是内置在数据库里的&ldquo;科学计算器&rdquo;。在处理订单金额、统计分数、生成随机数等场景中非常有用</p>
<ul><li>取整函数:<code>ABS(x)</code>: 取绝对值(正数),<code>CEIL(x) / CEILING(x)</code>: 向上取整(进一法)。返回不小于 <code>x</code> 的最小整数,<code>FLOOR(x)</code>: 向下取整(去尾法)。返回不大于 <code>x</code> 的最大整数</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095475.png" /></p>
<ul><li>精确控制:<code>ROUND(x, d)</code>: 四舍五入。<code>d</code> 是保留的小数位数,<code>TRUNCATE(x, d)</code>: 截断。不论大小,直接把 <code>d</code> 位之后的小数全部扔掉</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095410.png" /></p>
<ul><li>幂运算与开方:<code>POW(x, y) / POWER(x, y)</code>: <code>x</code> 的 <code>y</code>次方,<code>SQRT(x)</code>: 开平方根,<code>MOD(n, m)</code>: 取模(求余数)</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095493.png" /></p>
<ul><li>==随机数生成 ==:<code>RAND()</code>: 返回一个 <code>0</code> 到 <code>1</code> 之间的浮点随机数</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095426.png" /></p>
<ul><li>进制转换与常量:<code>CONV(n, from_base, to_base)</code>: 进制转换(比如把 10 进制转 16 进制),<code>BIN(x)</code>: 转二进制,<code>PI()</code>: 获取圆周率</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095488.png" /></p>
<p class="maodian"><a name="_label4"></a></p><h2>五、其它函数</h2>
<ul><li>user():查询当前用户</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095430.png" /></p>
<ul><li>md5(str):对一个字符串进行<code>md5</code>摘要,摘要后得到一个<code>32</code>位字符串</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095458.png" /></p>
<ul><li>database():显示当前使用的数据库</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025122210095498.png" /></p>
頁: [1]
查看完整版本: MySQL内置函数全解析