请教高手:SQL如何获取某个数据类型的最大值

 我来答
sniperfivd24c6
2017-01-30 · TA获得超过247个赞
知道小有建树答主
回答量:273
采纳率:100%
帮助的人:207万
展开全部
这个 需要一些基础的计算机原理知识
拿整数类型为例(int,smallin.tinyint.bigint) 后面的括号写多少数字 就是这个数字最大10进制的位数+1 的存放空间。 另外还要看是否是支持负值。
举例 Tinyint(4) uz 就是 8位bit的整数 取值范围 0-255

三位数最大999 +1 就是4 所以4代表了 3位数,而三位数的 bit位是byte 也就是8位(二进制)整数 uz无符号。就是不支持负值。所以是0-255

tinyint(4) 就是有符号的8位整数 取值范围 -127~127
smallint(6) uz 最大值65535 最小0 也就是16位整数

int(11) 最大值 2147483647 最小 -2147483647 10位数(10进制),所以括号里写11
int(11) uz 最大值就是4294967295,最小0
以此类推,所以 bigint(20) 对应的就是长整形(64位long), tinyint(1) 对应的就是1bit 也就是 0或者1 用于表示bool
enum枚举实际上可以是 8位、16位、32位整数的 枚举型式。mysql的美剧比较奇怪 是从1开始算 不是0.
set 的话 实际上 也可以是 8位 16 位 32位 64位等等的 集合类型。 64个元素就是64位的bits
至于字符串实际上是 char的数组 如果是utf8编码实际对应的bits还不一定相等。utf16的话 如果支持Notnull的字符串,每个字符一定需要16bits 如果可以为null的话 支持的长度 相当于少两个字节 也就是 少16bits
比如varchar(16) notnull 实际需要 16~48个字节的存储空间 utf-8编码就是这么蛋疼 utf-16
编码就固定为32个字节。(英文字符多的话,反而浪费空间。全汉字省空间)
varchar(15) 可以为null的话 实际需要16~48个字节的存储空间。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式