一、字符串的类型
| 数据类型 | 含义 | 对应范围 |
|---|---|---|
| CHAR | 固定长度字符串 | 长度不超过255个字符 |
| VARCHAR | 可变长度字符串 | 1~65 532字节;字符的上限取决于使用的字符编码 |
| TEXT | 长文本字符串 | 长度不超过65 535个字符 |
| LONGTEXT | 极长的文本字符串 | 长度不超过4 294 967 295个字符 |
注意:
①如数据类型指定为varchar(10),输入超过10个字符的数据,只会保存前面10个,超过的部分被自动删除;要注意避免数据不知觉中丢失。
②输入字符串数据要用“ ”或 ‘ ’括起来;当把‘ ’当成字符输入时,要在前面加上 ** ( 转义处理)
如:在tb表name中输入字符 '‘李四’'
insert into tb (name) values (''李四'');
同样,当输入‘ \ ’时,也需要前面加 \ ,输入为‘\李四\’
二、计算字符串的长度
计算字符串的长度:
char_length (‘string’或col) 按照字符来统计字符串长度
- 返回值为字符串string或者对应字段长度,长度的单位为字符,一个多字节字符(如,汉字)算作一个单字符;
- 不管汉字还是数字或者是字母都算是一个字符;
- 任何编码下,多字节字符都算是一个字符
length (‘string’或col) 按照字节来统计按照字符来统计
- utf8字符集编码下,一个汉字是算三个字符,一个数字或字母算一个字符。
- 其他编码下,一个汉字算两个字符, 一个数字或字母算一个字符
区别:
- char_length函数可以计算unicode字符,包括中文等字符集的长度;
- length函数用来计算普通字符的长度,他会把一个中文字符的长度按照设置的对应的字符集计算为2或3。
三、从字符的字段中提取由“. - ,”等分隔开的字符串
① Substring_index(str,delim,count)
- Str:要处理的字符串
- Delim:分隔符
- Count:计数
1:提取从左边开始第1个;
2:提取从左边开始第1和第2个;
-1:提取从右边开始第1个;
-2:提取从右边开始第1和第2个
提取中间的部分,可以用左右组合(如,例3)
② substring(string ,index) 从指定字符串的某序数开始获取字符
如:…substring(“hello world”,3) 是从字符串第三个开始输出,:llo word
…substring(“hello world”,-3) 是从倒数第三个开始输出,输出:rld
③ substring(string ,index,len) substring(被截取字符串 ,开始位置,长度)
如:…substring(“hello world”,3,3) 是从第三个开始,输出3个长度:llo
…substring(“hello world”,-3,2) 是从倒数第三个开始,输出2个长度:rl
substring_index() 与substring()函数的区别
(1)substring_index()只有一种语法形式;substring()有两种语法形式。
(2)substring_index()获取的是以某分隔符分割的某串字符,若字符串中无分隔符只能获取全字符串或者空值;而substring()可以获取指定位置指定长度字符。