Mysql基础篇之数据类型

来源:互联网 发布:淘宝售后维修怎么退款 编辑:程序博客网 时间:2024/05/16 01:42

整型:

数据类型         字节数

tinyint            1

smallint           2

mediumint          3

int                4

integer            4

bigint             8

    可以根据字节数算出对应类型表示数的范围。每种类型都有无符号和有符号两种类型,对于无符号型的定义是类型后面+unsigned 如无符号型int :int unsigned。一般定义类型后面都会跟着数字比如  int(11)是说明输出时的长度,相当于C语言里面格式输出宽度,大于长度的原数输出,小于的左边用空格补充。如果在定义的时候不加长度,类型都会自动填充默认长度。

    有一个参数zerofill可以加在类型后面,使得显示的数如果长度达不到默认长度,左边补零。但是zerofill代表的参数类型为无符号数。

小数类型:

    对于小数类型有浮点数和定点数。有三个类型double,float,decimal。前两个是浮点数,后两个是定点数,

数据类型        字节数

float             4

double            8

decimal          M+2

decimal的类型中有个M,因为decimal的使用方法是   decimal(M,D)   M代表小数总长度(不包括小数点),D表示小数部分长度。由于mysql用字符串形式存储,因此其精度比浮点数要高,而且浮点数会出误差,如果要对数据的精度要求比较高,还是选择定点数比较安全。

另外要注意,如果插入的数大于了类型精度,double、float类型可以自动四舍五入,但是decimal会报警告,结果也会差很多。

日期类型:

数据类型        字节数          范围                              零值表示

year              1          1901~2155                             0000  

date              4          1000-01-01~9999-12-31               0000:00:00

time              3          足够表示一天                          00:00:00

datetime          8    1000-01-01 00:00:00~9999-12-31 23:59:59 0000-00-00 00:00:00

timestamp         4

插入时除了可以用“:”做分隔符,还可以用“@” ,“*”做分隔符。插入格式尽量完整,有时候自动补全会不正确。

插入时可以用current_time或now()获得现在的时间。

对于Datetime类型如果插入20140101010101可以默认转换为2014-01-01 01:01:01。

timestamp跟datetime表示方法基本一样,但是范围比datetime小点,要注意不要越界。

字符串类型:

varchar(L)其中L代表字符串最大长度,0<=L<=65535,该类型占的字节数为字符串长度加1,有一个字符串结束标志。varchar类型是可变长的,根据存储的字符串长度而定。

char(L)类型占的字节都是L个,不论实际的字符串有多长,所以有可能浪费空间。

char类型会删除字符串末尾的空格,varchar类型则不会。

如果插入的字符串长度大于了默认长度,系统会阻止插入。

0 0
原创粉丝点击