天天看点

mysql分频段存_MySQL字符类型1 字符类型2 字符集3 基本定义4 定长变长5 常用函数

mysql分频段存_MySQL字符类型1 字符类型2 字符集3 基本定义4 定长变长5 常用函数

点击关注,我们共同每天进步一点点!

1 字符类型

   MySQL提供了多种关于字符存储的类型,但是在大多数情况下我们只使用char和varchar即可

2 字符集

  字符串分二进制与非二进制类型,二进制用于储存图片、声音等文件,非二进制用于储存文本数据。

  非二进制文本受字符集和校对规则影响。

  其实字符集说白了就是字符编码。

2|1概念解析

  字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。常用的字符集有GBK、BIG5、UTF8。

  UTF8字符集包含文字内容更广,如韩文、日文、德文兼容度更高,也是推荐使用的字符集(UTF8MB4)。

表不设置字符集继承数据库,字段不设置字符集继承表的,所以一般我们在配置文件中为数据库指定字符集即可

2|2校对规则

  字符集内用于字符比较和排序的一套规则,以_ci结束的为大小写不敏感、_bin结束的为不区分大小写。

  当使用不区分大小写的校对规则时A与a是相同的,否则则不相同,这会影响到排序与比对。

修改表校对规则,对表的原字段将不影响,只对新增字段影响

3 基本定义

   对于字符类型而言,其指定宽度均为存入宽度,以字符为单位。

4 定长变长

4|1区别差异

   char是定长字符串,当存入的字符数量不足指定宽度时,将会使用进行填充。

   varchar是变长字符串,当存入的字符数类不足指定宽度时,不会使用任何字符进行填充。

   通常情况下来讲,char的存取速度要比varchar要高(约50%),但是更加浪费磁盘空间。

   在InnoDB存储引擎中,不存在这种差异。

差异详解

#
           
mysql分频段存_MySQL字符类型1 字符类型2 字符集3 基本定义4 定长变长5 常用函数

由于varchar类型是变长存储,所以需要有一个头部来标识真实内容占了多少字符,这个头部通常占据1个字节。

即存入abcd的时候算上头部实际上是占用了5个字节。这也是为什么说通常情况下varchar比较节省内存,而不是说全部情况。

4|2差异对比

   如果要想进定长与变长的差异对比试验,需要用到以下两个函数。

   length():查看字节数

   char_length():查看字符数

mysql>
           

   小总结:建议在同一张数据表中统一使用varchar或char类型,这里更推荐使用char类型。

5 常用函数

5|1大小写转换

   upper()小写转大写,lower()大写转小写

mysql>
           

5|2指定量取

   left()与right()函数用于取左或右指定数量的字符

   以下将示例取左边3个字符。

mysql>
           

5|3中间字符

   mid()从中间取字符串,参数二为指定起始位置(从1开始),参数三为取的字符数量(可不指定,一直取完)。

   以下将演示从第二个字符开始取两个。

mysql>
           

5|4截取子串

   substring()从指定起始位置开始取出向右所有字符串,可指定结束位置。(其实我感觉这个和mid()好像没啥区别)

mysql>
           

5|5字符长度

   char_length()可获取字符长度,如果要获取char类型的字符长度且包括填充空白符,需要修改sql模式。

修改sql模式:SET sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';

mysql>
           

5|6字节长度

   length()可获取字节长度。

mysql>
           

5|7字符连接

   concat()可将多段字符进行连接。

   以下示例将展示一二三四五,---以及12345这三段字符的连接。

mysql>
           

原文地址: https://www.cnblogs.com/Yunya-Cnblogs/p/13585668.html

mysql分频段存_MySQL字符类型1 字符类型2 字符集3 基本定义4 定长变长5 常用函数
mysql分频段存_MySQL字符类型1 字符类型2 字符集3 基本定义4 定长变长5 常用函数

喜欢请关注,有用请转发~

升职、加薪、无漏测-点“在看”

mysql分频段存_MySQL字符类型1 字符类型2 字符集3 基本定义4 定长变长5 常用函数