MySQL 数据(字段)类型

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至18446744073709551615
bigint(10)
float最小非零值:±1.175494351E – 38,同double一样适用于精度要求高的场合float(3,1)
double最小非零值:±2.2250738585072014E - 308double(10,5)
decimal取值范围可变,以来括号内的显示尺寸和小数点位数而定,适用于对精度要求不高但准确度要求非常高的场合decimal(10,2)

补充说明

  1. 在 int(integer) 系列中,只能存储整型值,且可以在后面用括号指定显示的尺寸(M),如果不指定则会默认分配。如果实际值的显示宽度大于设定值,将会显示实际值而不会截断以适应显示尺寸。如 smallint(3) 中的 3 即为显示尺寸,即显示三位的数值(不包括 - 号)
  2. int 类型可以指定 UNSIGNED 属性,即无符号(非负),所以存储范围有两种
  3. 在 float、double 及 decimal 类型中,不能指定 UNSIGNED 属性,其显示尺寸包含了小数点精度(D),即 float(3,1) 保存范围为 -99.9 至 99.9
  4. decimal 必须指定显示尺寸(M)和小数点精度(D),float 和 double 都是可选的
  5. 在可能涵盖取值范围的基础上,尽可能选择较小的类型以提高效率和节约存储空间,如年龄,就选择 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 和 varcha 需要指定长度,不同的是,char 存储时总是按照指定的长度储存,而 varchar 则根据实际字符串长度再加上一个字节分配空间。

时间日期类型

时间日期类型说明: 类型说明例子
dateYYYY-MM-DD 格式表示的日期值date
timehh:mm:ss 格式表示的时间值time
datetimeYYYY-MM-DD hh:mm:ss 格式表示的日期和时间值datetime
timestampYYYYMMDDhhmmss 格式表示的时间戳值timestamp
yearYYYY 格式表示的年份值year

提示

在 PHP 中,一般情况下对于时间都是按照 UNIX 时间戳以 int 类型存储于表中,再根据实际需要用 PHP 的时间函数进行处理,但不完全都是这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值