MySQL 创建表(图文教程)

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/

截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观

在 MySQL 中,创建表是数据库设计的重要步骤。表是数据存储的基本单位,它由列和行组成,每个列具有指定的数据类型。创建表时,我们需要定义表的名称、列的名称、数据类型以及其他约束条件,以确保数据的完整性和一致性。

创建表的基本语法

使用 CREATE TABLE 语句可以在数据库中创建新表。基本的语法格式如下:

CREATE TABLE 表名 (
    列名1 数据类型 [约束条件],
    列名2 数据类型 [约束条件],
    ...
);

示例

假设我们要创建一个员工表 t_employee,包含以下信息:

  • employee_id:员工编号,整数类型,作为主键,自动增长
  • name:员工姓名,字符串类型
  • position:员工职位,字符串类型
  • salary:员工薪资,浮点类型,不能为负数

具体的 SQL 语句如下:

CREATE TABLE t_employee (
    employee_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    position VARCHAR(50) DEFAULT '',
    salary DECIMAL(10, 2) CHECK (salary >= 0)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

在这个例子中,我们定义了四个列,并使用了一些常见的约束与表属性,解释如下:

  • 字段定义

    • PRIMARY KEY : 将该字段设为主键,确保每行记录的 employee_id 唯一;

    • AUTO_INCREMENT :自动递增,每次插入新记录时 employee_id 值自动加 1;

    • NOT NULL :表示该字段不能为空,要求每个员工都必须有姓名;

    • DEFAULT '' :为该字段设置了默认值为空字符串 (''),表示如果插入记录时未指定该字段,默认值将为空字符串;

    • CHECK (salary >= 0) :约束条件,确保薪资为非负数,防止负薪资的插入;

  • 表属性

    • ENGINE=InnoDB:指定存储引擎为 InnoDB,支持事务、行级锁和外键约束,适合处理高并发的事务场景;
    • DEFAULT CHARSET=utf8mb4 :设置字符集为 utf8mb4,支持 UTF-8 编码并允许存储 4 字节字符(如 emoji 表情);
    • COLLATE=utf8mb4_unicode_ci :指定排序规则为不区分大小写的 Unicode 排序,用于排序和比较字符数据;

打开命令行,执行以上建表语句,如下:

MySQL 创建表MySQL 创建表

数据类型

在创建表时,数据类型的选择非常重要。常用的数据类型可翻阅《MySQL 数据类型》 小节。

常见约束

约束用于保证数据的完整性和一致性。常见的约束包括:

  • PRIMARY KEY:定义主键,确保列值唯一,且不为空;
  • AUTO_INCREMENT:自动增长,通常用于主键;
  • NOT NULL:不允许为空;
  • UNIQUE:值唯一,不允许重复;
  • CHECK:添加条件约束;
  • DEFAULT:设置默认值;

查看表结构

可以使用 DESCRIBE 命令查看表的结构,包括列名称、数据类型和约束条件:

DESCRIBE t_employee;

MySQL 查看表结构MySQL 查看表结构

或者使用 SHOW CREATE TABLE 来查看完整的建表语句:

SHOW CREATE TABLE t_employee;

MySQL 查看完整的建表语句MySQL 查看完整的建表语句

小结

创建表是 MySQL 中进行数据管理的第一步。通过定义列的数据类型和约束,可以确保数据的完整性。理解 CREATE TABLE 语句的基本语法、数据类型选择、常用约束,有助于你设计合理的数据库表结构,为后续的数据存储和查询打下良好的基础。