常用基础 - 字段类型

  • 作者:KK

  • 发表日期:2017.11.27


在表里面,一个字段就是一列,每个字段都有不同的数据类型,一旦设定了类型,就不能储存其它类型的数据了。


建表时指定字段类型

CREATE TABLE `test` (
  `name` varchar(20) NOT NULL,
  `age` int(3) NOT NULL
) ENGINE=MyISAM

这样就是创建一张test表,其中包含了name和age两个字段,name字段的类型是varchar(变长字符串),长度为20位;age字段是int(整数),长度为3位。


各种字段类型介绍

  • INT:整数类型,长度为4字节,有符号长度为-21474836482147483647,无符号长度为04294967295

  • TINYINT:不知怎么叫它好,暂时叫“小整形”吧,长度为1字节,有符号长度为-128127,无符号长度为0255

  • VARCHAR:变长字符串类型,长度为 0 ~ 255 字节(需要指定),一旦设定了长度,比如20,那么储存超出20个字符时会被截取前20个字符进行储存,而指定了0个的时候存什么字符都会储存为空的~我也不知为什么这样设计,至少要指定1个长度嘛。

  • TEXT:长文本类型,无须指定长度,根据储存的内容自动确定储存长度,最大储存65535字节的内容。

  • DATE:日期类型,长度为4字节,内容格式是YYYY-MM-DD,储存的日期范围为1000-01-019999-12-31

  • DATETIME:日期时间类型,长度为8字节,内容格式是YYYY-MM-DD HH:MM:SS1000-01-01 00:00:009999-12-31 23:59:59

  • ENUM:枚举类型,长度为1字节,创建字段时要指定一些值,以后储存的时候也只能储存这些值。有些同学可能不是很理解“枚举”类型,比如字段名叫“system”,建表时指定为 ENUM 类型,指定了可储存的值为 android 和 ios 两个值,那用的时候要是想存 windows 是不行的,这就是枚举,可以解释为“列举了可选值,只能从中选一”的意思,在 C/C++ 和 VB 等一些语言里都有枚举数据类型。

  • SMALLINT:也是个小整型,长度为2字节,有符号长度为-3276832767,无符号长度为065535

  • MEDIUMINT:叫中级整型吧……长度为2字节,有符号长度为-83886088388607,无符号长度为016777215

  • BIGINT:大整型,长度为2字节,有符号长度为-92333720368547758089233372036854775807,无符号长度为018446744073709551615

  • CHAR:定长字符串类型,长度也是 0 ~ 255,跟VARCHAR的区别是假如你指定了长度为10,而存入的内容如果不足10个长度会被MySql自动用空格填充到10个长度为止,适合储存确定长度的字符。而不可确定长度时用VARCHAR则会更加节约磁盘空间。


以上是比较常见的数据类型,其它都不常用的,要就自己上网查更多资料吧~