字符、字节、位,数据库中的varchar你知道这些吗?

你把欢乐告诉一个朋友,你将得到两个欢乐;你把忧愁向一个朋友倾吐,你将被分掉一半忧愁。by 培根

最近在数据库的使用过程对字符、字节等概念有些不清楚,所以查阅资料得到下面的结论。如果你也有相同的困惑,那就直接看正文。

1.字符:首先以字符谈起。

查阅百度百科,我们可以知道什么是字符,很简单,每一个汉字或者字母等等只要是一个单独存在的都看作一个字符,“文”,“1”,“,”等等每一个个体就是一个字符。

字符的含义

2.字节: 关于字节

我们能够看到字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位。上面讲到了字符,那么字符和字节的换算可以看下图

字符和字节

在不同的编码格式下,有不同的换算方式。

换算方式

3.位: 数据存储的最小单位

1字节=8位 0000 0000

由下图也可以知道为什么汉字用2个字节表示了,就是因为1个字节的上限不够表示,才用2个字节表示。

位的换算

4.Mysql的varchar(10)

在使用MySQL数据库时候,常常会因为varchar(?)其中的?代表什么而困惑,为此做了测试,我的是MYSQL 5.X的,我发现在我的测试中定义了如下表格,同时加入汉字和字符做了测试,得出的结论是在此版本下,“?”代表的是字符数,而不是字节。

新建字段和测试数据

不难印证上述观点,下图是查阅资料得到的其他讯息供大家参考。

5.Oracle的varchar2(10)

对于其中的(10),可以参考下图

这样一来这5个概念基本就介绍清楚了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180606G24RGH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券