1 数值类型
数值类型分为有符号signed和无符号unsigned两种。
1.1 整型 int
(1)bigint 极大整型(8个字节)
范围 :-2**64 ~ 2**64 - 1
-9223372036854775808 到 9223372036854775807
无符号类型:0 到 18446744073709551615
(2)int 大整型(4个字节)
范围 :-2**32 ~ 2**32-1
-2147483648 到 2147483647 常规
无符号类型 0 到 4294967295
(3)mediumint 中整型
(4)smallint 小整型(2个字节)
范围:-2**15 ~ 2**15-1
-32768 到 32767 常规
无符号类型:0 到 65535 无符号
(5)微小整型(1个字节)
范围:-2**7~ 2**7-1
-128 到 127常规
无符号类型:0 到 256无符号
1.2 浮点型
(1)float(4个字节)
最多显示7位有效位
float(m,n)
m:总位数
n:小数位,小数点右侧最大位
示例
float(5,2) 取值范围 -999.99~999.99
备注:
浮点型插入整数时会自动补全小数位
小数位如果多于指定的位数,会对下一位四舍五入处理
(2)double(8个字节,最多显示15个有效位)
double(m,n)
m:总位数
n:小数位,小数点右侧最大位
(3)decimal(m,d)
作为字符串存储的 DOUBLE 类型,允许固定的小数点。
固定精度和比例的数字。
2 字符类型
2.1 char(size) 定长
取值范围:1~255
注意:当不给定size大小时,默认宽度为1
2.2 varchar(size) 变长
取值范围:1~65535
注意:没有默认宽度,必须给定一个宽度值
char和varchar特点
(1)char
浪费存储空间,性能高,已开辟了空间,数据可以直接储存
(2)varchar
节省存储空间,性能低,当写入数据时,临时性开辟
注意:字符类型的宽度与数值类型宽度的区别
(1)数值类型的宽度为显示宽度,只用于select查询时显示,和占用存储空间大小无关
int(11)——11为显示空间,实际储存依然是4个字节
int(3) unsigned zerofill——当值为1时,显示为001(显示位数不足则用 0 补齐,这种方式有利于自动编号),而实际占用空间依旧是4个字节
int(100)时,查询显示时,值为1时,在1前面补充99个0.
(2)字符类型的宽度超过则无法存储
3 枚举类型
字段值只能在列举范围内选择
(1)enum 单选(最多有65535个不同的值)
字段名 enum(值1,值2,...)
(2)set 多选(最多有64个不同的值)
字段名 set(值1,值2,值3,...)
4 日期、时间类型
(1)year : 年 YYYY
(2)date : 日期 YYYYMMDD
(3)time : 时间 HHMMSS
(4)datetime : 日期时间 YYYYMMDDHHMMSS
(5)timestamp : 日期时间 YYYYMMDDHHMMSS
5 约束
数据约束是为了数据的完整性、一致性、有效性
(1)默认约束(default)
(2)非空约束(not null)