跳到主要内容

MySQL 创建表

介绍

在 MySQL 中,表是存储数据的基本单位。每个表由行和列组成,行表示记录,列表示字段。创建表是数据库设计的第一步,它定义了数据的结构和约束条件。本文将详细介绍如何在 MySQL 中创建表,并通过实际案例帮助你理解这一过程。

创建表的基本语法

在 MySQL 中,使用 CREATE TABLE 语句来创建表。其基本语法如下:

sql
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
...
);
  • table_name:表的名称。
  • column1, column2, ...:表的列名。
  • datatype:列的数据类型,如 INT, VARCHAR, DATE 等。
  • constraints:列的约束条件,如 NOT NULL, PRIMARY KEY, UNIQUE 等。

示例:创建一个简单的表

假设我们要创建一个名为 students 的表,用于存储学生的基本信息。表结构如下:

  • id:学生的唯一标识符,类型为整数,且为主键。
  • name:学生的姓名,类型为字符串,最大长度为 50 个字符。
  • age:学生的年龄,类型为整数。
  • email:学生的电子邮件地址,类型为字符串,最大长度为 100 个字符,且唯一。
sql
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
email VARCHAR(100) UNIQUE
);

解释

  • id INT PRIMARY KEYid 列是整数类型,并且是主键,确保每个学生的 id 是唯一的。
  • name VARCHAR(50) NOT NULLname 列是字符串类型,最大长度为 50 个字符,且不能为空。
  • age INTage 列是整数类型,可以为空。
  • email VARCHAR(100) UNIQUEemail 列是字符串类型,最大长度为 100 个字符,且必须唯一。

实际案例:创建一个订单表

假设我们要为一个在线商店创建一个 orders 表,用于存储订单信息。表结构如下:

  • order_id:订单的唯一标识符,类型为整数,且为主键。
  • customer_id:客户的唯一标识符,类型为整数。
  • order_date:订单的日期,类型为日期。
  • total_amount:订单的总金额,类型为小数。
sql
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATE NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL
);

解释

  • order_id INT PRIMARY KEYorder_id 列是整数类型,并且是主键,确保每个订单的 order_id 是唯一的。
  • customer_id INT NOT NULLcustomer_id 列是整数类型,且不能为空。
  • order_date DATE NOT NULLorder_date 列是日期类型,且不能为空。
  • total_amount DECIMAL(10, 2) NOT NULLtotal_amount 列是小数类型,最多 10 位数字,其中 2 位是小数,且不能为空。

总结

在 MySQL 中创建表是数据库设计的基础。通过 CREATE TABLE 语句,我们可以定义表的结构、列的数据类型以及约束条件。本文通过两个实际案例展示了如何创建表,并解释了每个列的含义和约束条件。

提示

在实际应用中,表的设计需要根据业务需求进行优化。合理的表结构可以提高数据库的性能和数据的一致性。

附加资源

练习

  1. 创建一个名为 employees 的表,包含以下列:

    • employee_id:整数类型,主键。
    • first_name:字符串类型,最大长度为 50 个字符,且不能为空。
    • last_name:字符串类型,最大长度为 50 个字符,且不能为空。
    • hire_date:日期类型,且不能为空。
    • salary:小数类型,最多 10 位数字,其中 2 位是小数,且不能为空。
  2. 创建一个名为 products 的表,包含以下列:

    • product_id:整数类型,主键。
    • product_name:字符串类型,最大长度为 100 个字符,且不能为空。
    • price:小数类型,最多 10 位数字,其中 2 位是小数,且不能为空。
    • stock_quantity:整数类型,且不能为空。