MySQL 创建表(图文教程)

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

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

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

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

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

创建表的基本语法

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

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

示例

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

  • employee_id:员工编号,整数类型,作为主键,自动增长

    什么是数据库主键?

    在数据库中,主键(Primary Key)就像是每个人独一无二的身份证号一样。它用来唯一标识表中的每一行数据。

  • 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 创建表

图形客户端

除了命令行工具外,再来演示一下在图形化客户端中,要如何执行建表 SQL 语句,操作如下:

  1. 鼠标右键目标数据库;
  2. 点击新建查询,打开一个语句执行窗口;
  3. 输入建表语句;
  4. 点击执行按钮即可;

图形客户端执行建表 SQL 语句图形客户端执行建表 SQL 语句

数据类型

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

常见约束

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

  • 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 查看完整的建表语句

图形客户端

除命令行外,再来演示一下在图形化客户端 Navicat 中,要如何确认表是否创建成功,操作如下:

  1. 右键
  2. 点击刷新
  3. t_employee 表出现在了列表中,说明表创建成功了;

图形化客户端确认表是否创建成功图形化客户端确认表是否创建成功

那么图形客户端中,要如何查看表的完整建表语句呢?除了在语句执行窗口中,直接执行上述 SQL 语句外,可如下操作:

  1. 鼠标左键双击想要查看的表
  2. 打开表后,点击右侧栏中的 DDL 选项,即可查看完整的 DDL 建表语句;

小结

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