当前位置:首页 > 主机动态 > 正文

MySQL如何用命令创建表

使用CREATE TABLE命令定义表名,指定字段名和数据类型,如CREATE TABLE users (id INT, name VARCHAR(30));

### 一、创建MySQL表的核心命令语法 在MySQL中创建表的核心命令是`CREATE TABLE`,基础语法如下: ```sql CREATE TABLE [IF NOT EXISTS] 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... [表级约束] ) [ENGINE=存储引擎] [DEFAULT CHARSET=字符集];

▶ 关键参数说明:

  1. IF NOT EXISTS:防止表名重复时报错(推荐使用)
  2. ENGINE:指定存储引擎(如InnoDB、MyISAM),InnoDB是MySQL 8.0默认引擎
  3. DEFAULT CHARSET:设置字符集(推荐utf8mb4支持表情符号)


MySQL常用数据类型详解

类型分类 常用类型 说明 示例
整数 INT 大整数(占4字节) age INT
TINYINT 小整数(-128~127) status TINYINT(1)
小数 DECIMAL(M,D) 精确小数(M总位数,D小数位) price DECIMAL(10,2)
FLOAT 单精度浮点数 ratio FLOAT
字符串 VARCHAR(N) 可变长度字符串(N≤65535) name VARCHAR(50)
CHAR(N) 定长字符串(空格填充) code CHAR(10)
日期时间 DATE 日期(YYYY-MM-DD) birthday DATE
DATETIME 日期时间(YYYY-MM-DD HH:MM:SS) create_time DATETIME


必学的6大字段约束

  1. 主键约束:唯一标识记录 id INT PRIMARY KEY AUTO_INCREMENT
  2. 唯一约束:禁止重复值 email VARCHAR(100) UNIQUE
  3. 非空约束:禁止空值 username VARCHAR(50) NOT NULL
  4. 默认值:未填写时的默认数据 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  5. 外键约束(关联表数据): user_id INT, FOREIGN KEY (user_id) REFERENCES users(id)
  6. 自动增长:常用于主键 id INT AUTO_INCREMENT


实战创建用户表示例

-- 创建带完整约束的用户表 CREATE TABLE IF NOT EXISTS users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, password CHAR(60) NOT NULL COMMENT '存储加密后的密码', email VARCHAR(100) NOT NULL UNIQUE, age TINYINT UNSIGNED DEFAULT 18, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

▶ 代码解析:

  1. AUTO_INCREMENT:id自动生成(1,2,3…)
  2. UNIQUE:用户名和邮箱不可重复
  3. DEFAULT 18:年龄未填写时默认为18
  4. ON UPDATE CURRENT_TIMESTAMP:修改时自动更新时间戳
  5. COMMENT:字段注释(提升可维护性)


4个创建表后的验证操作

  1. 查看表结构

    DESC users;

    (图片仅示意)

  2. 查看建表语句

    MySQL如何用命令创建表 第1张

    SHOW CREATE TABLE users;
  3. 插入测试数据

    INSERT INTO users (username, password, email) VALUES ('john_doe', 'encrypted_pass', 'john@example.com');
  4. 查询数据验证

    SELECT * FROM users;


避坑指南:创建表必看注意事项

  1. 命名规范

    MySQL如何用命令创建表 第2张

    • 表名/字段名使用蛇形命名法(user_role)
    • 禁止使用MySQL保留字(如order需转义为`order`)
  2. 性能优化

    • 主键尽量使用短数据类型(如BIGINT优于VARCHAR)
    • 大文本字段用TEXT类型,与主表分离存储
  3. 字符集统一

    MySQL如何用命令创建表 第3张

    -- 全局设置(推荐在my.cnf配置) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  4. 存储引擎选择

    • 需要事务支持 → InnoDB(默认)
    • 只读分析场景 → MyISAM(已逐步淘汰)

关键提示:生产环境修改表结构必须停机维护,建议使用pt-online-schema-change工具在线DDL。


知识扩展:表结构修改命令

-- 添加字段 ALTER TABLE users ADD COLUMN phone VARCHAR(15) AFTER email; -- 修改字段类型 ALTER TABLE users MODIFY age SMALLINT; -- 删除字段(谨慎操作!) ALTER TABLE users DROP COLUMN phone;

通过命令行掌握建表是DBA和开发者的必备技能,建议结合mysqldump定期备份表结构,更多高级功能可参考:

引用说明:本文操作基于MySQL 8.0.28验证,语法兼容5.7+版本,部分示例参考MySQL官方手册及O’Reilly《高性能MySQL》。

0