跳到主要内容

SQL 创建表

介绍

在 SQL 中,表是存储数据的基本单位。每个表由行和列组成,列定义了数据的类型和结构,而行则是实际的数据记录。创建表是数据库设计的第一步,也是最重要的一步。通过创建表,你可以定义数据的存储方式,确保数据的完整性和一致性。

在本教程中,我们将学习如何使用 SQL 的 CREATE TABLE 语句来创建表,并通过实际案例展示其应用。

SQL 创建表的基本语法

创建表的基本语法如下:

sql
CREATE TABLE 表名 (
列名1 数据类型 [约束条件],
列名2 数据类型 [约束条件],
...
);
  • 表名:表的名称,必须是唯一的。
  • 列名:表中每一列的名称。
  • 数据类型:定义列中存储的数据类型,例如 INTVARCHARDATE 等。
  • 约束条件:可选项,用于限制列中的数据,例如 PRIMARY KEYNOT NULLUNIQUE 等。

示例:创建一个简单的表

假设我们要创建一个名为 students 的表,用于存储学生的信息。表中有以下列:

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

在这个例子中,id 列被定义为主键(PRIMARY KEY),这意味着它的值必须是唯一的,并且不能为 NULLname 列被定义为 NOT NULL,表示该列的值不能为空。

数据类型

在创建表时,选择正确的数据类型非常重要。以下是一些常见的 SQL 数据类型:

  • INT:整数类型,用于存储整数值。
  • VARCHAR(n):可变长度字符串,n 表示最大字符数。
  • CHAR(n):固定长度字符串,n 表示字符数。
  • DATE:日期类型,用于存储日期值。
  • FLOAT:浮点数类型,用于存储小数值。
  • BOOLEAN:布尔类型,用于存储 TRUEFALSE 值。
提示

选择合适的数据类型可以提高数据库的性能和存储效率。例如,如果某个列的值总是固定长度的字符串,使用 CHARVARCHAR 更高效。

约束条件

约束条件用于限制列中的数据,确保数据的完整性和一致性。以下是一些常见的约束条件:

  • PRIMARY KEY:唯一标识表中的每一行,不能为 NULL
  • NOT NULL:确保列中的值不能为空。
  • UNIQUE:确保列中的值在表中是唯一的。
  • FOREIGN KEY:用于建立表与表之间的关系。
  • CHECK:确保列中的值满足特定条件。

示例:使用约束条件

假设我们要创建一个 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 FLOAT CHECK (total_amount >= 0)
);

在这个例子中,order_id 列被定义为主键,customer_idorder_date 列被定义为 NOT NULLtotal_amount 列使用 CHECK 约束确保订单金额不能为负数。

实际案例:创建一个员工表

假设我们要创建一个 employees 表,用于存储公司员工的信息。表中有以下列:

  • employee_id:员工的唯一标识符,类型为整数。
  • first_name:员工的名字,类型为字符串。
  • last_name:员工的姓氏,类型为字符串。
  • hire_date:员工的入职日期,类型为日期。
  • salary:员工的薪水,类型为浮点数。
sql
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
hire_date DATE NOT NULL,
salary FLOAT CHECK (salary >= 0)
);

在这个例子中,employee_id 列被定义为主键,first_namelast_name 列被定义为 NOT NULLsalary 列使用 CHECK 约束确保薪水不能为负数。

总结

通过本教程,我们学习了如何使用 SQL 的 CREATE TABLE 语句来创建表。我们了解了表的基本结构、数据类型和约束条件,并通过实际案例展示了如何应用这些概念。

创建表是数据库设计的基础,掌握这一技能对于任何希望深入学习 SQL 的人来说都是必不可少的。

附加资源与练习

  • 练习:尝试创建一个 products 表,包含 product_idproduct_namepricestock_quantity 列,并确保 pricestock_quantity 列的值不能为负数。
  • 进一步学习:了解更多关于 SQL 数据类型和约束条件的知识,探索如何创建更复杂的表结构。
备注

如果你在练习中遇到问题,可以参考本教程中的示例代码,或者查阅 SQL 的官方文档以获取更多帮助。