SQL中表的字符串内置函数详解
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">1. 字符串函数</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">1.1 charset(str)</a></li><li><a href="#_lab2_0_1">1.2 concat(string2 [, …])</a></li><li><a href="#_lab2_0_2">1.3 instr(string, substring)</a></li><li><a href="#_lab2_0_3">1.4 ucase(string2)</a></li><li><a href="#_lab2_0_4">1.5 lcase(string2)</a></li><li><a href="#_lab2_0_5">1.6 left(string2, length)</a></li><li><a href="#_lab2_0_6">1.7 length(string)</a></li><li><a href="#_lab2_0_7">1.8 replace(str, search_str, replace_str)</a></li><li><a href="#_lab2_0_8">1.9 strcmp(string1, string2)</a></li><li><a href="#_lab2_0_9">1.10 substring(str, position [,length])</a></li><li><a href="#_lab2_0_10">1.11 ltrim(string) rtrim(string) trim(string)</a></li></ul></ul></div><p>在这篇文章中,我会讲解表的字符串类的内置函数。</p><p class="maodian"><a name="_label0"></a></p><h2>1. 字符串函数</h2>
<blockquote><p>下面这个表格是我们在接下来要进行讲解的函数,我们现在这里简单介绍了它们的名字以及他们的作用,这边之所以这么设计是因为我们学到后面的话这些函数我们已经了解了,这样先写在前面就方便我们查阅。</p></blockquote>
<table border="1" cellpadding="1" cellspacing="1"><thead><tr><th>函数</th><th>函数</th></tr></thead><tbody><tr><td>charset(str)</td><td>返回字符串字符集</td></tr><tr><td>concat(string2 [, …])</td><td>连接字符串</td></tr><tr><td>instr(string, substring)</td><td>返回 substring 在 string 中出现的位置,没有返回 0</td></tr><tr><td>ucase(string2)</td><td>转换成大写</td></tr><tr><td>lcase(string2)</td><td>转换成小写</td></tr><tr><td>left(string2, length)</td><td>从 string2 中的左边起取 length 个字符</td></tr><tr><td>length(string)</td><td>string 的长度</td></tr><tr><td>replace(str, search_str, replace_str)</td><td>在 str 中用 replace_str 替换 search_str</td></tr><tr><td>strcmp(string1, string2)</td><td>逐字符比较两字符串大小</td></tr><tr><td>substring(str, position [,length])</td><td>从 str 的 postion 开始,取 length 个字符</td></tr><tr><td>ltrim(string) rtrim(string) trim(string)</td><td>去除前空格或后空格</td></tr></tbody></table>
<p>这张图里面的表是我们接下来在内容中所使用的。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142974.png" /></p>
<p class="maodian"><a name="_lab2_0_0"></a></p><h3>1.1 charset(str)</h3>
<blockquote><p>这个函数的作用就是获取要求的那一列的字符集。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select charset(列名) from 表名;</pre></div>
<p>我们看下面这张图,我们这样使用就可以了。</p>
<p>PS:一般来说的话我们的编码都是utf8的。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142914.png" /></p>
<p class="maodian"><a name="_lab2_0_1"></a></p><h3>1.2 concat(string2 [, …])</h3>
<blockquote><p>这个函数的话本质我认为就是临时性的字符串拼接。可以把一个表里面的内容拼接在一起,当然就算不是字符串类型的意义可以拼接到一起。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select concat(想要拼接的内容) as 要取的名字 from 表名;</pre></div>
<p>我们来看下面这个图片,通过这样的方式就可以把代码拼接在一起。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142989.png" /></p>
<p class="maodian"><a name="_lab2_0_2"></a></p><h3>1.3 instr(string, substring)</h3>
<blockquote><p>这个函数的话就是返回substring在string中出现的位置。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select instr(字符串,字符);</pre></div>
<div class="jb51code"><pre class="brush:sql;">select instr(表内容,字符) form 表名;</pre></div>
<p>我们看下面这个图片,通过这样的方式我们就可以找到o这个字符在helloworld这个字符串里面第一次出现的位置。当然如果这个字符出现多次的话会返回第一次出现的位置下标。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142944.png" /></p>
<p>我们看下面这个图片,这个函数会按照这个列的行数来返回,又因为只有第一列有a,其他两列没有,所以返回的值是1,0,0。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142959.png" /></p>
<p class="maodian"><a name="_lab2_0_3"></a></p><h3>1.4 ucase(string2)</h3>
<blockquote><p>这个函数的话就是把字符串转换成大写。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select ucase(字符串);</pre></div>
<div class="jb51code"><pre class="brush:sql;">select ucase(表列) from 表名;</pre></div>
<p>我们看下面这个图片,这样写就可以返回字符串的大写了。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142961.png" /></p>
<p>我们看下面这个图片,这样写就可以返回表中字符串的大写了。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142985.png" /></p>
<p class="maodian"><a name="_lab2_0_4"></a></p><h3>1.5 lcase(string2)</h3>
<blockquote><p>这个函数的话就是把字符串转换成小写。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select lcase(字符串);</pre></div>
<div class="jb51code"><pre class="brush:sql;">select lcase(表列) from 表名;</pre></div>
<p>我们看下面这个图片,这样写就可以返回字符串的小写了。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809142964.png" /></p>
<p>我们看下面这个图片,这样写就可以返回表中字符串的小写了。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809143058.png" /></p>
<p class="maodian"><a name="_lab2_0_5"></a></p><h3>1.6 left(string2, length)</h3>
<blockquote><p>这个函数的话很简单,就是返回前length个字符。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select left(string2, length);</pre></div>
<p>我们看下面这个图片。这样就可以返回AAAaaa的前4个了。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809143093.png" /></p>
<p>要从右边开始去的话直接把left换成right就好。</p>
<p class="maodian"><a name="_lab2_0_6"></a></p><h3>1.7 length(string)</h3>
<blockquote><p>这个函数的话就是返回里面字符的长度。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select length(string);</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809143010.png" /></p>
<p class="maodian"><a name="_lab2_0_7"></a></p><h3>1.8 replace(str, search_str, replace_str)</h3>
<blockquote><p>这个函数的话就是替换字符串里面的内容。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">replace(原字符串, 要替换的子串, 替换后的子串)</pre></div>
<p>我们看下面这个图片,通过这样的方式就可以完成替换,最重要的是在这里是<span><strong>区分大小写的</strong></span>。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809143035.png" /></p>
<p class="maodian"><a name="_lab2_0_8"></a></p><h3>1.9 strcmp(string1, string2)</h3>
<blockquote><p>这个函数的话就是逐字的比较两个字符串的大小(以ASCII码来比较大小)</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select strcmp(string1, string2);
</pre></div>
<ul><li>返回 <code>0</code>:当两个字符串完全相同时(长度和每个字符都一致)。</li><li>返回 <code>1</code>:当 <code>string1</code> 大于 <code>string2</code> 时(比较时从第一个不同的字符开始,<code>string1</code> 的字符 ASCII 码更大)。</li><li>返回 <code>-1</code>:当 <code>string1</code> 小于 <code>string2</code> 时(同理,第一个不同字符的 ASCII 码更小)。</li></ul>
<p>我们看下面这个图片,这样子返回的就是0。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809143065.png" /></p>
<p class="maodian"><a name="_lab2_0_9"></a></p><h3>1.10 substring(str, position [,length])</h3>
<blockquote><p>这个函数的话我觉得就类似于可以选开始位置的left()函数。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select substring(str, position [,length]);</pre></div>
<p>我们看下面这个图片,就是从第三个位置开始往后获取4个。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809143065.png" /></p>
<p class="maodian"><a name="_lab2_0_10"></a></p><h3>1.11 ltrim(string) rtrim(string) trim(string)</h3>
<blockquote><p>这个的话实际上是三个函数,只不过功能意义,只有一些细微上的差别,所以这边就直接放在一起了。他们三个都是用来去除字符串的空格的,只不过ltrim是去除字符串左边的空格,rtrim是去除字符串右边的空格,trim是去除字符串两边的空格。</p></blockquote>
<p>语法:</p>
<div class="jb51code"><pre class="brush:sql;">select trim(string);</pre></div>
<p>我们看下面这个图片,其实这两个都实现了去重,只不过上面那个名字太大了,所以显的好像后面那部分没有去一样。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025112809143067.png" /></p>
頁:
[1]