当前位置:首页 > 电脑教程 > 正文

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. 查看建表语句

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

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

    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官方文档
  • InnoDB存储引擎详解

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

0