数值类型:
整形:有小到大有tinyint smallint mediumint int(integer) bigint ; 说明:typy(M),type指任一种整数类型,M代表显示宽度,当显示的数值小于M位时会填充宽度至M位,当显示的数值大于M位则正常显示。注意:用zerofill修饰时填充才可见。
实型:浮点实型(float , double),定点实型(decimal); 说明:浮点数和定点数都可以使用(M,D)表示一共显示M位数字,浮点数如果不写精度和标度,则会按照实际精度值显示,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;定点数如果不写精度和标度,则按照默认值decimal(10,0)来进行操作,并且如果数据超越了精度和标度,系统则会报错。
位:BIT(M),M范围从1到64,如果不写,默认为1为;对于位段值,直接使用select命令将看不到结果,可以使用bin()或者hex()函数进行读取。
日期时间类型:超出日起有效范围就会提示错误,并将以灵零值来进行存储
date:表示年月日
time:表示时分秒
datetime:表示年月日时分秒
timestamp:系统自动为第一个TIMESTAMP字段创建了默认值current_timestamp(系统日期),如果有第二个字段为TIMESTAMP,则默认值为零值(可修改为其他默认值,但是不能修改为current_timestamp);TIMESTAMP还和时区有关系;插入或更新一行但是不明确给TIMESTAMP列赋值时也会自动设置该列的值为系统当前时间
year:表示年份
字符串类型:
char(M)与varchar(M):相同点是当字符串超出M长度时,系统都会报错;不同点是varchar会用额外的空间记录字符串的实际长度,所以varchar更节省空间,另外char会删除掉字符串后的空格。
enum:枚举类型,值的范围必须在创建表时显示指定,enum类型忽略大小写,对于插入值不在enum范围内时,不返回警告,而是插入enum成员的第一个值。
set类型:和enum类型类似,主要区别在于set类型一次可以插入多个成员,enum一次只能选取一个成员插入。