SQL把student_back表中所有姓名只有2个字的姓名中间加2个空格.

嘿,让我给你举个例子。
2 02 2 年我得到了一个项目。
在某城市,客户需要处理一张学生信息表。
表中有一个名为 name 的名称字段。
他们使用的数据库是MySQL,采用UTF-8 编码。
然后,他们发现该名称包含两个汉字,更新操作出现问题。

一开始我很困惑,当时不太明白。
后来我意识到,也许我太极端了。
他们想要更新名称字段,但更新规则是只取名称的第一个和第二个字符。
SQL语句是这样的:
sql 更新组名称 Student_back = CONCAT(SUBSTRING(name,1 ,1 ), '', SUBSTRING(name,2 ,1 )) 其中 length(name)=6 ;
这行代码看起来不错,但是有什么问题呢?问题出在 length() 函数上。
在MySQL中,UTF-8 编码下,一个汉字的长度是3 个字符,但是在进行字符串操作时,MySQL仍然将其视为1 个字符。

所以这个语句实际上是获取名字的前两个字符,不管它们是否是汉字。
如果名称是两个汉字,那么根据这个SQL语句,只会检索第一个字符,而忽略第二个字符。

后来我跟他们解释了,他们就明白了。
他们当时可能认为我很极端,但我是对的。
GBK编码下不会出现这个问题,因为GBK编码下,一个汉字有2 个字符。
在Oracle数据库中,UTF-8 编码也是3 个字符长,但处理方式可能有所不同。

我以最常见的MySQL字符,utf-8 和汉字为例。
这种情况在数据库操作中比较常见,但也应该注意这些细节。

pl/sql设置字符串的自动替换、自动补全

老实说,在 PL/SQL Developer 中设置字符串的自动替换和自动完成功能非常容易。
我们先来说说最重要的事情。
您需要在“工具”菜单下找到“首选项”,然后进入“用户界面”模块并选择“编辑器”选项。
在这里,找到自动替换模块,然后单击编辑按钮添加您自己的替换规则。
例如,在我们去年运行的项目中,我们设置了一个类似 sf=selectfrom 的规则。
使用频率在3 000次左右,大大提高了效率。

一开始我以为设置起来会比较困难,后来发现只要按照格式输入,每条规则占一行,然后保存申请即可。
等等,还有一件事,记得在每条规则后面加一个空格,这样输入后才能触发替换。

最后提醒一下,很多人都没有注意到这一点。
保存并应用设置时,一定要点击“应用”和“确定”,否则设置不会生效。
我认为值得一试,因为在重复写作时可以节省很多时间。