悠悠楠杉
MySQL安装后如何建表?手把手教你创建数据表的完整流程
一、MySQL建表前的准备工作
安装完MySQL后(以8.0版本为例),首先需要通过命令行或客户端工具登录数据库:
bash
mysql -u root -p
创建专用数据库(建议不要直接使用默认的test库):
sql
CREATE DATABASE shop_db CHARACTER SET utf8mb4;
USE shop_db;
注意:字符集建议使用utf8mb4(支持emoji和特殊字符),区别于老版的utf8
二、CREATE TABLE基础语法解析
标准建表语句包含以下核心要素:
sql
CREATE TABLE [IF NOT EXISTS] 表名 (
字段名1 数据类型 [约束条件],
字段名2 数据类型 [约束条件],
...
[表级约束]
) [ENGINE=存储引擎] [CHARSET=字符集];
三、10步完整建表示例(电商用户表)
步骤1:设计表结构
先规划字段:
- 用户ID(主键)
- 用户名
- 密码(加密存储)
- 手机号
- 注册时间
- 账户状态
步骤2:编写SQL语句
sql
CREATE TABLE users (
user_id BIGINT UNSIGNED AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password CHAR(60) NOT NULL COMMENT 'BCrypt加密存储',
mobile CHAR(11) NOT NULL,
reg_time DATETIME DEFAULT CURRENT_TIMESTAMP,
status TINYINT DEFAULT 1 COMMENT '0-禁用 1-正常',
PRIMARY KEY (user_id),
UNIQUE KEY (username),
UNIQUE KEY (mobile)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
步骤3:关键参数说明
AUTO_INCREMENT
:自增主键UNIQUE KEY
:建立唯一索引COMMENT
:字段注释(建议必填)DEFAULT
:默认值设置
四、字段类型选择技巧
| 数据类型 | 适用场景 | 示例 |
|----------------|-------------------------|--------------------|
| INT | 整数ID、状态码 | product_id INT
|
| VARCHAR(n) | 可变长度字符串 | address VARCHAR(255)
|
| DECIMAL(m,n) | 精确小数(金额) | price DECIMAL(10,2)
|
| DATETIME | 记录时间戳 | create_time DATETIME
|
| TEXT | 大文本内容 | content TEXT
|
五、必须掌握的5种约束
- 主键约束:
PRIMARY KEY
- 非空约束:
NOT NULL
- 唯一约束:
UNIQUE KEY
- 默认值:
DEFAULT
- 外键约束(谨慎使用):
sql FOREIGN KEY (user_id) REFERENCES users(user_id)
六、表结构修改方法
添加新字段:
sql
ALTER TABLE users ADD COLUMN avatar VARCHAR(200) COMMENT '头像URL';
修改字段类型:
sql
ALTER TABLE users MODIFY COLUMN mobile VARCHAR(20);
七、存储引擎选择建议
- InnoDB(默认):支持事务、行级锁
- MyISAM:只读场景使用(MySQL 8.0已废弃)
八、避坑指南
- 避免使用MySQL保留字作为字段名(如order、desc)
- 文本字段不要默认设为NULL,建议
NOT NULL DEFAULT ''
- 金额字段务必使用DECIMAL,不要用FLOAT
- 大字段(如图片)建议存储路径而非直接存BLOB
九、可视化工具推荐
- MySQL Workbench(官方工具)
- Navicat(商业软件)
- DBeaver(开源免费)
十、验证表是否创建成功
sql
SHOW TABLES;
DESC users; -- 查看表结构