ITPub博客

首页 > 数据库 > MySQL > MySQL学习之数据类型

MySQL学习之数据类型

MySQL 作者:kangkang7238 时间:2014-02-15 14:17:02 0 删除 编辑

一、数据类型

1.数值类型     -- TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、 DECIMAL
2.时间类型     -- DATE、DATETIME、TIMESTAMP
3.字符串类型 – CHAR、VARCHAR、TEXT
4.特有类型     -- ENUM、SET
字符串区分大小写  --  VARBINARY
 

数据类型

类型分类

表达的范围

存储需求

TINYINT[(M)]     [UNSIGNED] [ZEROFILL]

数值整型

 -128127              0255

1个字节

SMALLINT[(M)]    [UNSIGNED] [ZEROFILL]

-3276832767           065535

2个字节

MEDIUMINT[(M)]   [UNSIGNED] [ZEROFILL]

-83886088388607       016777215

3个字节

INT[(M)]         [UNSIGNED] [ZEROFILL]

-21474836482147483647 04294967295

4个字节

BIGINT[(M)]      [UNSIGNED] [ZEROFILL]

-92233720368547758089223372036854775807  018446744073709551615

8个字节

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

数值混合型

整数最大位数(M)65,小数位数最大(D)30

变长

DATE

日期类型

YYYY-MM-DD 精确到天

3个字节

DATETIME

YYYY-MM-DD HH:MM:SS(1001年到9999年的范围)

8个字节

TIMESTAMP

YYYY-MM-DD HH:MM:SS(1970年到2037年的范围)

4个字节

ENUM

枚举类型

165535个元数据

1个字节或2个字节

SET

集合类型

164个元数据

1,2,3,48个字节

CHAR(M)

字符串类型

0(建议CHAR(1)外,超过此长度的统一用VARCHAR(M)替代)

M*N个字节,其中N大小由字符集编码,以及是否为中文还是字母数字等有关系

VARCHAR(M)

0个字符

TEXT

64K个字节

能存储的字符个数,与字符集编码、存储的字符串值有关系

l  所有变长字符串全部使用 VARCHAR 类型,类似于状态,有限类别的字段,也使用可以比较明显表示出实际意义的字符串,而不应该使用INT之类的数字来代替
l  固定长度的字符串使用 CHAR 类型,所有单个字符的全部使用 CHAR 类型,而不应该

使用VARCHAR 类型

l  当字符数量可能超过 20000 个的时候,可以使用 TEXT 类型来存放字符类数据。所有使用 TEXT 类型的字段必须和原表进行分拆,与原表主键单独组成另外一个表进行存放;
l  需要精确到时间(年月日时分秒)的字段可以使用DATETIME TIMESTAMP,但请注

意各自能表达的范围,以及是否需要用到TIMESTAMP的特性,尽量使用TIMESTAMP

类型替代DATETIME以减少数据存储空间的占用

l  只需要精确到天的字段全部使用 DATE 类型,而不应该使用 TIMESTAMPDATETIME
  自增序列特性的字段只能使用 INT 或者 BIGINT,必须明确标识为无符号类型 (关键词:UNSIGNED),除非确实会出现负数,仅当该字段的数值会超过42亿,才使用 BIGINT 类型,并且自增字段必须作为主键或主键的一部分
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22859715/viewspace-1114676/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-11-11