一、数值类型
1、整型
整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT
我们完全没必要为整数类型指定显示宽度,使用默认的就可以了
默认的显示宽度,都是在最大值的基础上加1
2、浮点型
浮点型:FLOAT DOUBLE
定点数:DECIMAL
类型 | 定义 | 精确度 |
FLOAT |
单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。 |
随着小数的增多,精度变得不准确 |
DOUBLE |
双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。 |
随着小数的增多,精度比float要高,但也会变得不准确 |
DECIMAL |
准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 |
随着小数的增多,精度始终准确 对于精确数值计算时需要用此类型 |
二、字符串类型
1、char类型
char类型:定长,简单粗暴,浪费空间,存取速度快 字符长度范围:0-255(一个中文是一个字符,是utf8编码的3个字节) 存储: 存储char类型的值时,会往右填充空格来满足长度 例如:指定长度为10,存>10个字符则报错,存<10个字符则用空格填充直到凑够10个字符存储 检索: 在检索或者说查询时,查出的结果会自动删除尾部的空格,除非我们打开pad_char_to_full_length SQL模式(SET sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';)
2、varchar类型
varchar类型:变长,精准,节省空间,存取速度慢 字符长度范围:0-65535(如果大于21845会提示用其他类型 。mysql行最大限制为65535字节,字符编码为utf-8:https://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html) 存储: varchar类型存储数据的真实内容,不会用空格填充,如果'ab ',尾部的空格也会被存起来 检索: 尾部有空格会保存下来,在检索或者说查询时,也会正常显示包含空格在内的内容
三、日期类型
四、约束条件
MySQL关键字 | 含义 |
NULL | 数据列可包含NULL值 |
NOT NULL | 数据列不允许包含NULL值 |
DEFAULT | 默认值 |
PRIMARY KEY | 主键 |
AUTO_INCREMENT | 自动递增,适用于整数类型 |
UNSIGNED | 无符号 |
FOREIGN KEY (FK) |
标识该字段为该表的外键 |
UNIQUE |
标识该字段为唯一的 |