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;

    MySQL如何用命令创建表(图片仅示意)

  2. 查看建表语句

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

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

    SELECT * FROM users;

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

  1. 命名规范

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

    • 主键尽量使用短数据类型(如BIGINT优于VARCHAR
    • 大文本字段用TEXT类型,与主表分离存储
  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》。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/14435.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月7日 20:30
下一篇 2025年6月7日 20:35

相关推荐

  • 如何发现命令执行漏洞?

    挖掘命令执行漏洞的核心是:寻找应用程序中用户输入(如参数、表单、HTTP头)未经严格过滤或验证,就被直接传递给系统命令执行函数(如eval, system, exec, popen)的点,通过注入特殊字符(| & ; $() `)或命令测试其执行情况。

    2025年6月10日
    600
  • XP系统如何快速打开CMD命令窗口

    点击“开始”菜单,选择“运行”,输入“cmd”并回车即可打开命令提示符窗口,也可在开始菜单的“程序”中找到“附件”,再点击“命令提示符”。

    2025年6月22日
    400
  • 如何用记事本写CMD命令?

    打开记事本,输入所需命令;点击“文件”选择“另存为”,在保存类型中选择“所有文件”,为文件命名并添加“.bat”或“.cmd”后缀,点击保存即可创建可执行批处理文件。

    2025年6月14日
    500
  • CAD删除命令快捷键怎么用

    在CAD中,按键盘上的“E”键是执行“删除”(ERASE)命令的快捷键,使用该命令后,选择需要删除的图形对象(可通过单击、框选等方式),按回车键(Enter)或空格键确认,即可删除选中的对象。

    2025年6月22日
    500
  • CAD如何调出历史命令记录

    在AutoCAD中查看命令历史记录:,1. **按 F2 键**:这是最常用方法,直接打开显示完整命令历史的文本窗口。,2. **查看命令行**:屏幕底部的命令行区域默认显示最近输入的命令,可通过鼠标滚轮或上下箭头键滚动查看。

    2025年6月14日
    700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN