分类 数据类型 说明
字符 CHAR 1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1)
ENUM 接受最多64K个串组成的一个预定义集合的某个串
LONGTEXT 与TEXT相同,但最大长度为4GB
MEDIUMTEXT 与TEXT相同,但最大长度为16K
SET 接受最多64K个串组成的一个预定义集合的零个或多个串
TEXT 最大长度为64K的变长文本
TINYTEXT 与TEXT相同,但最大长度为255字节
VARCHAR 长度可变,最多不超过255字节,VARCHAR(n) n<=255
数值(如果UNSIGNED,范围只有非零) BIT 位字段,1-64位
BIGINT 整数值,-9223372036854775808~9223372036854775807
BOOLEAN/BOOL 布尔值,0或1
DECIMAL/DEC 精度可变的浮点值
DOUBLE 双精度浮点值
FLOAT 单精度浮点值
INT/INTEGER 整数值,-2147483648~2147483647
MEDIUMINT 整数值,-8388608~-8388607
REAL 4字节的浮点值
SMALLINT 整数值,-32768~32767
TINYINT 整数值,-128~127
日期时间 DATE 1000-01-01~9999-12-31,格式YYYY-MM-DD
DATETIME DATE与TIME的组合
TIMESTAMP 功能与DATETIME相同,但范围减小
TIME 格式HH:MM:SS
YEAR 两位数:70(1970)~69(2069),四位数:1901-2155
二进制 BLOB 最大长度64KB
MEDIUMBLOB 最大长度16MB
LONGBLOB 最大长度4GB
TINYBLOB 最大长度255字节

字段属性的设置

  1. 数据类型指定

unisigned关键字:取正区间

  • 串数据类型
    • 定长串:char(),1~255个字符,长度必须指定,mysql默认char(1)
    • 变长串:varchar(n),长度可变,最多超过255个字节, n<=255
    • 文本:text——最大长度为64K的变长文本;longtext——最大长度4GB,mediumtext——最大长度16K;tinytext——最大长度为255字节
    • enum:接受最多64K个串组成的一个预定义集合的某个串
    • set:接受最多64个串组成的一个预定义集合的多个串或零个串

使用引号:不管何种类型,串值都必须括在引号内(通常单引号)

  • 数值类型
    • bit:位字段,1~64位
    • tinyint:整型,-128~127
    • smallint:整型,-32768~32767
    • mediumint:整型,-8388608~8388607
    • int(integer):整型,-2147483648~2147483647
    • bigint:整型,-92233720368547758~92233720368547757
    • float:单精度浮点值
    • double:双精度浮点值
    • real:4字节的浮点值
    • decimal\dec:精度可变的浮点值
    • boolean\bool:布尔标志,0\1
  • 日期时间类型
    • timestamp:与datetime相同,但范围较小
    • time:格式HH:MM:SS
    • datetime:date和time的组合
    • date:1000-01-01~999-12-31的日期,YY-MM-DD
    • year:2位数字表示,范围:70(1970)~69(2069);4位数字表示,范围:1901~2155年
  • 二进制类型
    • tinyblob:最大长255字节
    • blob:最大长64KB
    • mediumblob:最大长16MB
    • longblob:最大长4GB
  1. NULL/NOT NULL:允许列NULL,若是NOT NULL,插入null时会报错
  2. primary(col1,col2,..):指定主键
  3. auto_increment:每增一行自动增量,一个insert操作,+1
  4. 指定默认值:default 1/2/3
  5. 引擎类型:engine=InnoDB\MEMORY\MyISAM