您的位置:首页 > 数据库 > MySQL

MySQL 数据(字段)类型

2013-07-31 14:21 169 查看


MySQL 数据(字段)类型

在创建表的时候,要明确定义字段对应的数据类型。MySQL 主要的数据类型分为数值类型、字符串(文本)类型、时间日期类型和其他类型几类。


数值类型

数值类型说明:

类型说明例子
tinyint存储范围:-128至127或0至255tinyint(1)
smallint存储范围:-32768至32767或0至65535smallint(3)
mediumint存储范围:- 8388608至8388607或0至16777215mediumint(5)
int存储范围:- 2147483648至2147483647或0至4294967295int(10)
bigint存储范围:- 9223372036854775808至9223372036854775807或0至18446744073709551615bigint(10)
float最小非零值:±1.175494351E – 38,同double一样适用于精度要求高的场合float(3,1)
double最小非零值:±2.2250738585072014E - 308double(10,5)
decimal取值范围可变,以来括号内的显示尺寸和小数点位数而定,适用于对精度要求不高但准确度要求非常高的场合decimal(10,2)


补充说明

在 int(integer) 系列中,只能存储整型值,且可以在后面用括号指定显示的尺寸(M),如果不指定则会默认分配。如果实际值的显示宽度大于设定值,将会显示实际值而不会截断以适应显示尺寸。如 smallint(3) 中的 3 即为显示尺寸,即显示三位的数值(不包括 - 号)
int 类型可以指定 UNSIGNED 属性,即无符号(非负),所以存储范围有两种
在 float、double 及 decimal 类型中,不能指定 UNSIGNED 属性,其显示尺寸包含了小数点精度(D),即 float(3,1) 保存范围为 -99.9 至 99.9
decimal 必须指定显示尺寸(M)和小数点精度(D),float 和 double 都是可选的
在可能涵盖取值范围的基础上,尽可能选择较小的类型以提高效率和节约存储空间,如年龄,就选择 tinyint(3) 。该原则对于字符类型同样适用


字符串(文本)类型

字符串(文本)类型说明:

类型说明例子
char支持固定长度的字符串, 最大长度是 255 个字符char(100)
varchar支持可变长度的字符串, 最大长度是 65535 个字符varchar(1000)
tinytext支持可变长度的字符串,最大长度是 255 个字符tinytext
text

blob
支持可变长度的字符串,最大长度是 65535 个字符text
mediumtext

mediumblob
支持可变长度的字符串,最大长度是 16777215 个字符mediumtext
longtext

longblob
支持可变长度的字符串,最大长度是 4294967295 个字符longtext
enum枚举类型,可存储最多65535 个成员,常用于取值是有限而且固定的场合enmu("男","女")
set集合类型,可存储最多64个成员set("value1","value2", ...)


补充说明

char 和 varchar需要指定长度,不同的是,char 存储时总是按照指定的长度储存,而 varchar 则根据实际字符串长度再加上一个字节分配空间。


时间日期类型

时间日期类型说明:

类型说明例子
dateYYYY-MM-DD 格式表示的日期值date
timehh:mm:ss 格式表示的时间值time
datetimeYYYY-MM-DD hh:mm:ss 格式表示的日期和时间值datetime
timestampYYYYMMDDhhmmss 格式表示的时间戳值timestamp
yearYYYY 格式表示的年份值year
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: