mysql是一种语言,这个语言的数据类型
mysql的数据类型
MySQL 字段数据类型分为 数值类型、日期时间类型、字符串类型、特殊类型、JSON / 空间类型,日常开发只用前 3 类就足够。
1.整型
| 类型 | 占用字节 | 常用场景 |
|---|---|---|
| TINYINT | 1 字节 | 状态(0/1)、年龄、分数,无符号最大 255 |
| SMALLINT | 2 字节 | 少量数字,如商品分类 ID |
| INT / INTEGER | 4 字节 | 最常用,用户 ID、订单号、普通数字 |
| BIGINT | 8 字节 | 超大 ID、雪花 ID、长数字主键 |
-
小数(带小数点)
-
FLOAT / DOUBLE 浮点型存在精度丢失,不用于金额,适合温度、百分比粗略小数
-
DECIMAL (M,D) 定点数(推荐金额) M 总位数,D 小数位数,精确无误差 例:
price DECIMAL(10,2)最多 8 位整数、2 位小数,存商品价格 -
BIT 位类型
BIT (n),存二进制 0/1,极少用
二、日期时间类型(存时间、生日、创建时间)
-
DATE:只存日期
YYYY-MM-DD,生日、到期日 -
TIME:只存时分秒
HH:MM:SS,时长、营业时间 -
DATETIME:日期 + 时间
YYYY-MM-DD HH:MM:SS,最通用,创建 / 修改时间 -
TIMESTAMP:时间戳,范围 1970~2038,自动随时区转换,自动更新
-
YEAR:只存年份,1901~2155
三、字符串类型(文字、手机号、姓名、简介)
- 短字符串(定长 / 可变短文本)
-
CHAR(M):固定长度,不足自动补空格,适合固定长度(手机号、身份证)
-
VARCHAR(M):最常用可变长度,姓名、用户名、地址,M 最大 65535
例:name VARCHAR(20) 存用户名
- 长文本(大段文字)
TEXT 系列,不设固定长度上限,适合文章、商品详情:
-
TINYTEXT:短备注
-
TEXT:普通文章
-
MEDIUMTEXT / LONGTEXT:超大篇幅内容
- 二进制字符串(存文件、图片二进制流,几乎不用)
BINARY、VARBINARY、BLOB,项目中图片 / 文件一般存 URL 地址,不存数据库
四、特殊枚举集合类型(固定可选值)
-
ENUM:单选,只能选预设值 例:
sex ENUM('男','女','未知'),只能存这三个值 -
SET:多选,可存多个预设值组合 例:
label SET('热销','新品','折扣')
在库中创建表
create table 表名(
字段1 字段类型comment 注释,
字段2 字段类型comment注释,
字段3 字段类型comment 注释,
......
字段n 字段类型comment 注释
)comment 表注释;
一张表就像Excel 表格:
- 表 = 整个 Excel 工作表(比如商品表、用户表)
- 字段 = Excel 里每一列的表头
- 记录(行) = Excel 里每一行完整的数据
举个 Excel 例子:
表格
| id (字段 1) | name (字段 2) | price (字段 3) |
|---|---|---|
| 1(一行记录) | 手机 | 2999 |
| 2(一行记录) | 耳机 | 199 |
这里的 id、name、price 三个名字,就叫字段。
查看库中有哪些表
show tables

列出来数据库中的所有表
看表的结构(表长什么样子)
DESC 表名;
desc是英文description 的缩写
description /dɪˈskrɪpʃn/n. 描述、说明desc goods; = describe goods,查看这张表的结构描述
在后面的查询语句中desc是decend的缩写
DESC = descend 下降、降序(从大到小)
数据库类型
数据库有关系型数据库和非关系型数据库
mysql是关系型数据库
数据的存储是用二维表(行 + 字段)存储数据,只要是数据就是用这种格式存储
还有一些别的类型数据库
- Redis:键值对存储,数据格式 key-value,没有表;
- MongoDB:文档数据库,存储 JSON 格式文档,集合 (collection) ≈ 表,但结构完全自由,不是严格二维表;
- Elasticsearch:搜索引擎,存储文档索引;
- HBase:列簇数据库,按列分组存储,和 MySQL 表结构差别极大。
表修改操作
创建了表之后,如何添加,删除,修改表中的字段
alter英文含义;修改更改
给表中添加一个字段
alter table 表名 add 字段名 类型 comment 注释约束

修改字段
修改字段类型和修改字段名和字段类型
alter table class modify 字段名 新字段类型;
字段名和字段类型
alter table 表名 change 旧字段名字 新字段名字 类型comment 注释约束;

