MySQL速记(未完)
建表
数据类型关键字
| 关键字 | 含义 | 使用建议 | 示例 |
|---|---|---|---|
| INT | 整数 | 用于 ID、数量、年龄。 | id INT |
| VARCHAR(n) | 可变长度字符串 | 最常用。用于姓名、地址、账号。n 是最大长度。 |
name VARCHAR(50) |
| CHAR(n) | 固定长度字符串 | 用于长度固定的数据,如身份证号、性别(M/F)、哈希值。 | gender CHAR(1) |
| DATETIME | 日期和时间 | 格式 YYYY-MM-DD HH:MM:SS。用于起飞时间、下单时间。 |
fly_time DATETIME |
| DATE | 仅日期 | 格式 YYYY-MM-DD。用于生日。 |
birthday DATE |
| DECIMAL(M, D) | 精确小数 | 涉及钱一定要用它。M是总位数,D是小数位。 |
price DECIMAL(10, 2)(代表最多10位数字,其中包含2位小数) |
| TEXT | 长文本 | 用于存储文章内容、很长的备注。 | content TEXT |
列属性/约束关键字
这些关键字跟在数据类型后面,用来限制数据的行为。
| 关键字 | 含义 | 作用 | 示例 |
|---|---|---|---|
| PRIMARY KEY | 主键 | 最重要的关键字。整张表的唯一身份证,不能重复,不能为空。 | id INT PRIMARY KEY |
| AUTO_INCREMENT | 自增 | 只能配合整数主键使用。让数据库自动填 1, 2, 3… | id INT PRIMARY KEY AUTO_INCREMENT |
| NOT NULL | 非空 | 必填项。如果插入数据时没填这列,会报错。NULL与之相反。 | username VARCHAR(20) NOT NULL |
| UNIQUE | 唯一 | 这列的值不能重复(但可以为空)。常用于手机号、邮箱。 | phone VARCHAR(11) UNIQUE |
| DEFAULT | 默认值 | 如果不填,就用这个预设值。 | status INT DEFAULT 0 |
| COMMENT | 注释 | 给代码写备注,方便以后维护。 | COMMENT '航班号' |
表级设置
| 关键字 | 含义 | 作用 |
|---|---|---|
| ENGINE=InnoDB | 存储引擎 | MySQL 的默认引擎,支持事务(Transaction),做项目必选。 |
| CHARSET=utf8mb4 | 字符集 | 强烈建议加上。支持中文,甚至支持 Emoji 表情。 |
航班管理表示例:
1 | CREATE TABLE flights ( |
这里的几个设计细节:
utf8mb4:防止你存入中文地名时出现乱码。DECIMAL(10, 2):票价用了DECIMAL而不是FLOAT,保证金额计算精确(浮点数在计算机里容易出现 99.999999 这种情况)。COMMENT:每一行都加了注释,这在多人协作(或者你过两周再看代码)时非常有用。
添加数据
可以一次添加一条数据,也可以一次性添加多条数据。
基本语法:
1 | INSERT INTO 表名 (列名1, 列名2, ...) |
添加一条数据
1 | INSERT INTO students (id, name, score) |
情况 B:添加多条数据 (批量插入)
只需在 VALUES 后用逗号分隔多组括号即可。
1 | INSERT INTO students (id, name, score) |
修改数据
要修改某一条特定数据,需要通过 WHERE 子句来指定条件,否则整张表的数据都会被修改。
基本语法:
1 | UPDATE 表名 |
示例场景: 将名字为 “张三” (id 为 101) 的同学的分数修改为 95 分。
1 | UPDATE students |
修改列
1 | -- 修改列定义,将默认值改为 '未支付' |
外键
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 羊习习在学习!




