SQL中字符串的类型及从字段中由“. - ,”等分隔开的提取

一、字符串的类型

数据类型

含义

对应范围

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()可以获取指定位置指定长度字符。

你可能感兴趣的:(SQL,sql)