一、数值类型
MySQL数据类型:对字段的限定
包括:数值类型、浮点型、字符串、时间日期类型
1. 数值类型
数据类型 | 存储范围 | 字节 |
---|---|---|
TINYINT | 有符号值:-27到 27-1;无符号值:0到28-1 | 1 |
SMALLINT | 有符号值:-215到215-1;无符号值:0到216-1 | 2 |
MEDIUMINT | 有符号值:-223到223-1;无符号值:0到224-1 | 3 |
INT | 有符号值:-231到231-1;无符号值:0到232-1 | 4 |
BIGINT | 有符号值:-263到263-1;无符号值:0到264-1 | 8 |
2. 浮点类型
数据类型 | 存储范围 |
---|---|
FLOAT[(M,D)] | 单精度 |
DOUBLE[(M,D)] | 双精度 |
M:总个数 D:小数位
定点数:
decimal(m,d)
如:decimal(4,2)——表示4位精度,2位小数,最大值是99.99
总结:
- 单精度浮点型:float,非精确数,不设定长度
- 双精度浮点型:double,非精确数,不设定长度
- 定点型:decimal,精确数,需设定长度
二、字符串
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-255字节 | 变长字符串 |
TINYTEXT | 0-255字节 | 短文本 |
TEXT | 0-216-1字节 | 长文本数据 |
MEDIUMTEXT | 0-232-1字节 | 中等长度 |
LONGTEXT | 0-264-1字节 | 极大 |
ENUM(‘value1’,value2’,…) | 1或2个字节 | 取决于枚举值的个数 |
SET(‘value1’,value2’,…) | 1,2,3,4或8个字节 | 取决于set成员的数目 |
char(长度非字节):定长,不够用空格补,多了截掉,存取空间大
varchar:可变长度根据字符长度自动调整,存取速度快
length:返回字符串所占的字节数,是计算字段的长度,1个汉字是算3个字符,1个数字或字母算1个字符
char_length:发挥字符串所占的字符串,汉字/数字/字母算是1个字符
总结:字符串比较常用char,varchar,text三个
三、时间类型
类型 | 大小 | 格式 | 用途 |
---|---|---|---|
DATE | 3 | YYYY-MM-DD | 日期值 |
TIME | 3 | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | YYYY | 年份值 |
DATETIME | 8 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 8 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
总结:
- TIMESTAMP用的较多
- 建议用 int 存储时间 的时间戳 方便处理
四、关键词
1.列名的修饰
unsigned:无符号
auto_increment:自增
default:默认值
comment:字段解释说明
not null:非空
null:空
unique:唯一索引
index:普通索引
primary key:主键
auto_increment 必须制定为 primary key
五、语句运算符
= 赋值和判断
!= <> 都是不等于
< > <= >=
OR 或者
AND 且
BETWEEN…AND 在A与B之间
IN NOT IN 在于不在 in(1,2,3,4)
六、语句分类
DDL(data defination language):数据定义语言
- 作用:创建 删除 修改 库表结构(重点)
DML(data manipulation language):数据操作语言
- 作用:增 删 改 表的记录(重点)
DCL(data control language):数据控制语言
- 作用:用户的创建以及授权(懂)
DQL(data query language):数据查询语言
- 作用:查询数据(重点)