MySQL建表需用CREATE TABLE语句,明确表名、字段名、数据类型及约束(如PRIMARY KEY、NOT NULL、DEFAULT、COMMENT),推荐CHARSET=utf8mb4、ENGINE=InnoDB,并建表前检查、建后验证。

在 MySQL 中创建数据表,核心是使用 CREATE TABLE 语句,明确指定表名、字段名、数据类型、约束条件(如主键、非空、默认值等)。 语句写对了,表就建成了;细节没注意,后续可能出错或不满足业务需求。
基础语法结构要记牢
最简形式如下:
CREATE TABLE 表名 (
字段名1 数据类型 [约束],
字段名2 数据类型 [约束],
...
);
- 字段名不能用 MySQL 保留字(如
order、group),若必须用,需用反引号包裹:`order` - 每条字段定义末尾加逗号,最后一行字段后不加逗号
- 常见数据类型:整型用
INT,字符串用VARCHAR(长度),时间用DATETIME或TIMESTAMP
主键和常用约束别漏掉
一张表通常要有主键(唯一标识每一行),且多数字段应有合理约束:
-
PRIMARY KEY:设为主键,自动NOT NULL+ 唯一,一般搭配AUTO_INCREMENT用于自增 ID -
NOT NULL:该字段不允许为空,登录用户名、创建时间这类字段建议加上 -
DEFAULT '值':插入时未提供该字段值,就用默认值,比如status DEFAULT 'active' -
COMMENT '说明':给字段加注释,方便团队理解,例如age INT COMMENT '用户年龄,单位为岁'
建表时顺便考虑字符集和存储引擎
中文环境下,推荐显式指定:
医院诊所网站源码小兵系统基于PHP+MYSQL开发,在文章内容网站的基础上,增加了诊所介绍、医生介绍、诊疗内容、新闻中心、联系我们等医院网站常用的栏目和测试数据,采用适合医院网站的专用模版,增强了系统的针对性和易用性。系统具有文章、图文、表单、咨询等基本系统模块和一系列网站辅助功能,用户也可根据自身特点任意创建和修改栏目,适合创建各类医院诊所网站。
-
CHARSET=utf8mb4:支持完整 Unicode(包括 emoji),比旧版utf8更可靠 -
COLLATE=utf8mb4_unicode_ci:排序与比较规则,大小写不敏感且支持多语言 -
ENGINE=InnoDB:默认且推荐的存储引擎,支持事务、外键、行级锁
完整示例:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
status ENUM('active', 'inactive') DEFAULT 'active' COMMENT '账户状态'
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
建表前先检查,避免重复或报错
执行建表语句前,建议做两件事:
- 用
SHOW TABLES;查看当前数据库已有哪些表,防止重名 - 用
DROP TABLE IF EXISTS 表名;可安全重建(仅开发/测试环境用,生产慎用) - 建完后用
DESCRIBE 表名;或SHOW CREATE TABLE 表名;确认字段、约束、编码是否符合预期









