SQL Create Table

在本教程中,将学习如何使用SQL CREATE TABLE语句来创建新表。

1. SQL CREATE TABLE语句简介

到目前为止,我们已经了解了数据库中的表是什么。现在,是时候学习如何创建表了。

表是存储在数据库中的数据集合。 表由列和行组成。 要创建新表,请使用具有以下语法的CREATE TABLE语句:

CREATE TABLE table_name(
     column_name_1 data_type default value column_constraint,
     column_name_2 data_type default value column_constraint,
     ...,
     table_constraint
);

创建新表所需的最低信息是表名和列名。
table_name指定的表名在数据库中必须是唯一的。 如果创建的表的名称与已存在的表相同,则数据库系统将发出错误。
CREATE TABLE语句中,指定以逗号分隔的列定义列表。每个列定义由列名,列的数据类型,默认值和一个或多个列约束组成。
列的数据类型指定列可以存储的数据类型。 列的数据类型可以是数字,字符,日期等。
列约束控制可以存储在列中的值的类型。 例如,NOT NULL约束确保列不包含NULL值。

列可能有多个列约束。 例如,users表的username列可以同时具有NOT NULLUNIQUE约束。
如果约束包含多个列,则使用表约束。 例如,如果表的主键包含两列,则在这种情况下,必须使用PRIMARY KEY表约束。

SQL CREATE TABLE示例

假设需要将员工的培训数据存储在数据库中,并要求每个员工可以接受零或多个培训课程,并且每个培训课程可以由零个或多个员工进行。

在查看了当前数据库后,发现没有地方存储此信息,因此创建一个新的表。

以下语句创建课程表:

CREATE TABLE courses (
    course_id INT AUTO_INCREMENT PRIMARY KEY,
    course_name VARCHAR(50) NOT NULL
);

courses表有两列:course_idcourse_name
course_id是课程表的主键列。 每个表都有一个且只有一个主键,用于唯一标识表中的每一行。

注:为每个表定义主键是一个好习惯。

course_id的数据类型是整数,由INT关键字表示。 此外,course_id列的值为AUTO_INCREMENT。表示当在courses表中插入新行而不提供course_id列的值时,数据库系统将为该列生成一个整数值。
course_name存储课程名称。 其数据类型是最大长度为50的字符串(VARCHAR)。NOT NULL约束确保course_name列中不存储NULL值。

现在有了存储课程数据的表。 要存储训练数据,请按如下方式创建名为training的新表。

CREATE TABLE trainings (
    employee_id INT,
    course_id INT,
    taken_date DATE,
    PRIMARY KEY (employee_id , course_id)
);

trainings表包含三列:

  • employee_id列存储参加课程的员工的ID。
  • course_id列存储员工所采用的课程。
  • taken_date列存储员工参加课程的日期。

因为trainings表的主键由两列组成:employee_idcourse_id,所以必须使用PRIMARY KEY表约束。

在本教程中,您学习了如何使用SQL CREATE TABLE语句在数据库中创建新表。

        原文作者:SQL教程
        原文地址: https://www.yiibai.com/sql/sql-create-table.html
        本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
    点赞