别在细节上栽跟头--mysql字段类型详解

页面导航:首页 > 数据库 > Mysql > 别在细节上栽跟头--mysql字段类型详解

别在细节上栽跟头--mysql字段类型详解

来源: 作者: 时间:2016-02-17 10:07 【

别在细节上栽跟头--mysql字段类型详解mysql字段类型intvarchartext也许你平时不在意,在设计数据库的时候,数字就设成int(10) 字符串就设成varchar(20)或者text普通情况下是没有问题的,但是若
别在细节上栽跟头--mysql字段类型详解
 
mysql字段类型intvarchartext
也许你平时不在意,在设计的时候,数字就设成int(10) 字符串就设成varchar(20)或者text
普通情况下是没有问题的,但是若不理解字段类型和长度的含义,总有一天你会在这里栽跟头,
这篇文章,我将主要就int(以及int的扩展类型,如bigint等),varchar,text三种字段类型,一一详解
首先来算笔账
1字节(Byte)=8比特(bit),
就是说1字节能存储的数据量是2^8即2进制位为8位
如果是整形不包括负数那么范围应该是
00000000~11111111(2进制数)
换成10进制数就应该是0~255,如果有负数的话就是-128~127
int
 
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。
 
bigint
 
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
 
smallint
 
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
 
tinyint
 
从 0 到 255 的整型数据。存储大小为 1 字节。
 
FLOAT [(M, D)] 
说明:小浮点数;单精度(精度小于D O U B L E) 允许的属性:Z E R O F I L L 
取值范围:最小非零值为±1.75494351E -38; 最大非零值为±3 . 4 0 2 8 2 3 4 6 6 E + 3 8 
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0 存储需求:4 字节
 
 DOUBLE[(M, D)] 
说明:大浮点数;双精度(比FLOAT更精确) 允许的属性:Z E R O F I L L 
取值范围:最小非零值为±2 . 2 2 5 07 3 8 5 8 5 07 2 0 14 E -308; 最大非零值为±1。7 9 7 6 9 3 13 -4 8 6 2 3 15 7 E + 3 0 8 
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为0 存储需求:8 字
 
字符串类型
一个字符所需的存储空间是1bit
 VARCHAR(M) 
说明:0 到M 字节长的可变长字符串。M 应该为1到255 之间的一个整数,或者自MySQL3.23 后为0 到255 之间的一个整数。存储时后跟的空格被去掉。存储时,大于M 个字符的串剪断为M 个字符。 允许的属性:B I N A RY 允许的长度:0 到M 字节 
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“” 存储需求:值的长度,加上1字节用来记录长度 
比较:不区分大小写(如果具有B I N A RY 属性,则区分大小写)
TEXT 
说明:常规大小的TEXT 值 
允许的属性:除通用属性外无其他属性 
允许的长度:0 到6 5 5 3 5(0 到216-1)字节 
缺省值:如果列可为NULL,则为NULL;如果列为NOT NULL,则为“” 存储需求:值的长度加上用于记录长度的2 个字节 比较:不区分大小写
 
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<