数据库设计之字段类型

1.一般的一个数据库中字段的类型有text,int,tinyint,datetime,vachar,char这几个

2.它们的长度一般设置为:

类型       长度     小数点

text--》0          (存放文本,文章)

datetime--》长度,小数点位数都设为0    (存放时间,也可用vachar来存时间,但最好还是用datatime时间戳来存,年月日-时分秒,它是原样存储,原样输出,mysql不会自动更改它的值,由程序员更改)

date --》0,0               (以年-月-日形式存储,以年:月:日,即 HH:MM:SS行式显示)

time--》0 ,0                (时分秒)

year-->    0,0                (yyyy)

timestamp--》         0,0    (表示方式与datetime一样,不同的是,当记录发生更新时,该字段同时会更新为当前时间戳。timestamp等于是提供了对一条对数据自身修改时间的记录。当记录变化时,mysql会自动将该字段更新为当前时间,因为其是可变性,故一般不用,或者慎用)      

tinyint--》1  (可以用来存放boolean类型值,或0,1,2,3,4等)

vachar--》10,11,16,32,64,25,255等

char--》11,32,34等           (存放uuid,定长的值)

int --》11,10,32.。。。。

decimal--》   10  , 2                              (这个类型可以指定固定的小数,用来存储金额等准确数据,整数位最大为10,小数位最大为2,超出位数,则会进行四舍五入)

float--》     0   ,0                                  (存储非常巨大,或者精度要求很高的数据,整数的位数可以很多,小数的位数也可以很多,并且是可变的,在范围内不会四舍五入)

3.概念区分:

char的长度是不可变的,而varchar的长度是可变的。(固定与可变是针对存储介质(硬盘)来说的,

固定与可变是针对存储介质(硬盘)来说的
假如:
CHAR和VARCHAR的默认长度都设为10,两个字段都分别写入“abc”
CHAR 损耗了硬盘10字节 = “abc”长度 + 7个空字符
VARCHAR损耗了硬盘 3字节 = “abc”长度
设定默认值n(假如是 10 ) 则该字段内能写入的字符串长度最大只能为 10)char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,数据项差异不是很大的情况下,建议使用char。

 

 

你可能感兴趣的:(数据库)