加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql定义汉字存储类型

发布时间:2023-06-29 11:36:21 所属栏目:MySql教程 来源:
导读:字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节,2个数字为一个
字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节,2个数字为一个字节。例如在VB中求字符串的长度时,len(str(1234))=4,len(1234)=2。   

字符是可使用多种不同字符方案或代码页来表示的抽象实体。例如,Unicode UTF-16 编码将字符表示为 16 位整数序列,而 Unicode UTF-8 编码则将相同的字符表示为 8 位字节序列。公共语言运行库使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)表示字符。   

针对公共语言运行库的应用程序使用编码将字符表式形式从本机字符方案映射至其他方案。应用程序使用解码将字符从非本机方案映射至本机方案。   

电脑和通讯设备会使用字符编码的方式来表达字符。意思是指,会将一个字符指定给某个东西。传统上,是代表整数量的位元序列,如此,则可透过网络来传输,同时亦便于储存。两个常用的例子是ASCII和用于统一码的UTF-8。根据谷歌的统计,UTF-8是目前最常用于网页的编码方式。[1]相较于大部分的字符编码把字符对应到数字或位元串,摩斯密码则是使用不定长度的电子脉冲的序列来表现字符。

什么是字节?

字节,英文名称是Byte。Byte是Binary Term的缩写。一个字节代表八个比特(bit)。它是通常被作为计算机信息计量单位,不论被存储数据的类型为何。它也是程序设计语言里不可缺少的基本数据类型——整数。

Byte(字节)可被缩写成B,例如MB表示Megabyte;Bit(比特)可被缩写成b,例如Mb表示Megabit。

那么如果我们想定义最大能存储10个汉字的字段,该怎么定义呢?

有了上面的说明,应该很明了了char(10)或者varchar(10)。我们来验证一下:

CREATE TABLE `t1` (
  `str` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
向表中插入下列数据:

insert  into `t1`(`str`) values ('一二三四五六七八九十');
insert  into `t1`(`str`) values ('一二三四五六七八九十十一');
insert  into `t1`(`str`) values ('abcdefghijklmnopqrst');
insert  into `t1`(`str`) values ('1234567890123456');

由此可以印证上面说的内容,而且如果超出了定义的范围,mysql会自动截短,我们在实际应用中应该注意。

CHAR 和 VARCHAR 类型

CHAR(M) 为固定长度字符串,在定义时指定字符串列长。当保存时,在右侧填充空格以达到指定的长度。M 表示列的长度,范围是 0~255 个字符。

例如,CHAR(4) 定义了一个固定长度的字符串列,包含的字符个数最大为 4。当检索到 CHAR 值时,尾部的空格将被删除。

VARCHAR(M) 是长度可变的字符串,M 表示最大列的长度,M 的范围是 0~65535。VARCHAR 的最大实际长度由最长的行的大小和使用的字符集确定,而实际占用的空间为字符串的实际长度加 1。

例如,VARCHAR(50) 定义了一个最大长度为 50 的字符串,如果插入的字符串只有 10 个字符,则实际存储的字符串为 10 个字符和一个字符串结束字符。VARCHAR 在值保存和检索时尾部的空格仍保留。

到此,相信大家对“mysql汉字用的类型是什么”有了更深的了解,不妨来实际操作一番吧!

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章