一、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; -- 查看表结构