mysql数据库数据类型

来源:互联网 发布:java开发app 编辑:程序博客网 时间:2024/04/24 18:35

mysql数据库中的数据类型:

一:日期与时间类型

date——3字节——日期——格式:年-月-日

time——3字节——时间——格式:时:分:秒

datetime——8字节——日期时间——格式:年-月-日 时:分:秒

timestamp——4字节——时间戳:自动存储记录被修改的时间

year——1字节——年份

二:数值型

整型

tinyint——1字节,范围(-128~127)

smallint——2字节,范围(-32768~32767)

mediumint——3字节,范围(-8388608~8388607)

int——4字节,范围(-2147483648~2147483647)

bigint——8字节,范围(很大)

若定义为无符号类型,加unsigned关键字,所表示的数值范围从0到翻倍的上限。

浮点型:

float(m,d)——4字节,单精度,m是整数和小数的总位数,d是小数的位数

double(m,d)——8字节,双精度,……,……

decimal(m,d)——d是小数部分的位数,若插入的值未指定小数部分或者小数部分不足d位则会自动补到d位小数,若插入的值小数部分超过了d为则会发生截断,截取前d位小数。m是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过m-d位,否则不能成功插入,会报超出范围的错误。

字符串类型:

char(n) 固定长度——最大255字符

varchar(n) 可变长度——最大65535字符

tinytext 可变长度——最大255字符

text 可变长度——最大65535字符

mediumtext 可变长度——最大(2^24-1)个字符

longtext 可变长度——最大(2^32-1)个字符

1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
3.超过char和varchar的n设置后,字符串会被截断。
4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。
5.char在存储的时候会截断尾部的空格,varchar和text不会。
6.varchar会使用1-3个字节来存储长度,text不会。

其他类型:

1.enum(“member1″, “member2″, … “member65535″)
enum数据类型就是定义了一种枚举,最多包含65535个不同的成员。当定义了一个enum的列时,该列的值限制为列定义中声明的值。如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。

2.set(“member”, “member2″, … “member64″)
set数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。



0 0