整形类型:该类型没必要指定显示宽度,使用默认的就ok。
类型 |
大小 |
TINYINT |
1字节 |
SMALLINT |
2字节 |
MEDIUMINT |
3字节 |
INT或INTEGER |
4字节(后面加的宽度不是存储宽度,而是显示宽度) create table t5(id int(5) unsigned zerofill; insert into t5(1); 设置显示宽度为5,不够时前面加零补上) |
BIGINT |
8字节 |
FLOAT |
4字节 |
DOUBLE |
8字节 |
DECIMAL |
对DECIMAL(M,D),如果M>D,为M+2否则D+2 |
浮点型:
FLOAT(M,D) # M是总长度,最大255,D是小数部分
DOUBLE(M,D) # 表示的大小和float一样,但精度比float高
DECIMAL(M,D) # 精度最高(其实它以字符串存储,所以精度高,但M最大为65),计算一般用decimal
日期类型:
类型 |
表示 |
YEAR |
YYYY |
DATE |
YYYY-MM-DD |
TIME |
HH:MM:SS |
DATETIME |
YYYY-MM-DD HH:MM:SS |
TIMESTAMP |
YYYYMMDD HHMMSS |
create table student(id int, name char(6), born_year year, birth_date date, class_time time, reg_time datetime);
insert into student values(1,'egon',now(),now(),now(),now());
字符类型:
char:定长
varchar:变长,最长255个字符
= 'lijie ' # 等于号可以末尾去空格,但like不可用。‘ ’ 单引号占一个bytes
text :超过255个字符,用该类型
mediumtext
longtext
太大了 ,如大图片,宜用外部存储
枚举类型和集合类型:
枚举enum:只能选其一,enum('vip1','vip2','vip3')
集合set:可以选多个 set('vip1','vip2','vip3')