mysql 整理(四),字段类型
整数类型
| TINYINT | 很小的整数 | 1个字节 |
| SMALLINT | 小的整数 | 2个字节 |
| MEDIUMINT | 中等大小的整数 | 3个字节 |
| INT | 普通大小整数 | 4个字节 |
| BIGINT | 大整数 | 8个字节 |
浮点数
| FLOAT | 单精度浮点数 | 4个字节 |
| DOUBLE | 双精度浮点数 | 8个字节 |
| DECIMAL (M,D),DEC | 亚索的“严格”定点数 | M+2个字节 |
| YEAR | YYYY | 1字节 |
| TIME | HH:MM:SS | 3字节 |
| DATE | YYYY-MM-DD | 3字节 |
| DATETIME | YYYY-MM-DD HH:MM:SS | 8字节 |
| TIMESTAMP | YYYY-MM-DD HH:MM:SS | 4字节 |
YEAR
以四位数表示 范围1901------2155
以两位字符串表示“00”-“99”, “00”-“69”表示2000-2069,“70”-”99” 1970-1999.
以两位数的00 就是0不是2000
TIME:
支持简写输入如“”10 HH:MM” 代表 10*24 +HH:MM
简写:‘1122’代表 00:11:22
简写“11:22”代表 11:22:00
简写“112233” 代表 11:22:33 HH:MM:SS
DATE
使用CURRENT_DATE (只返回日期)或者NOW() (返回日期+时间)插入当前系统时间
支持简写“19980808” 等于“1998-08-08”
DATETIME
同样支持简写“YYYYMMDDHHMMSS”
TIMESTAMP 取值范围小于DATETIME 并且储存的值世界UTC标准时间,读取时根据时区不同显示时间值不同。
文本字符串类型
| CHAR | 固定长度非二进制字符串 |
| VARCHAR | 变长非二进制字符串 |
| TINYTEXT | 非常小的非二进制字符串 |
| TEXT | 小的非二进制字符串 |
| MEDIUMTEXT | 中等大小的非二进制字符串 |
| LONGTEXT | 大的非二进制字符串 |
| ENUM | 枚举类型,只能有一个枚举字符串值 |
| SET | SET |
char的存取速度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的
TEXT类型
保存文章内容、评论。
ENUM
定义美剧类型 enm ENUM(“first”,“second”,“third”) 可以按照索引插入 0 1 2 可以为NULL 设置NOT NULL 该值为列表第一个元素。
按照索引插入 比如 INSERT INTO tmp values(1),(2)
SET类似ENUM 是个字符串对象
CREATE TABLE tmp(s SET("a",“b”,“c”))
INSERT INTO tmp values(“a”),("a,b,a"),("c,b,a");
插入的里面有重复值会被删掉重复
比如插入兴趣爱好可以选择set类型
TEXT 和BLOB类型
BLOB是二进制字符串,TEXT 是非二进制字符串,BLOB可以储存图片、音频信息,而TEXT只能储存纯文本。
浙公网安备 33010602011771号