在SQL中向表中添加列

在关系数据库中,在处理数据库表时,可能会遇到需要向现有表添加新列的实例。这可以是向表引入一个新属性,也可以只是修改表模式。

在本指南中,我们将从基础知识、语法和实际演示开始,学习如何向现有表添加新列。

列定义

在向表中添加列之前,我们需要定义新列的属性,包括它的名称、数据类型和任何约束(例如NOT NULL、DEFAULT值或外键)。

这就是所谓的列定义,其中提供数据库需要了解的关于列和应该存储在其中的数据的所有信息。

列定义由三个主要部分组成。这些包括:

    • 列名-它指定要分配列的名称。
    • 数据类型——指定该列将存储的数据类型,如整数、文本等。
    • Constraints——指定要应用于列的可选约束。示例包括NOT NULL,它告诉数据库引擎该列不能存储空值、DEFAULT、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK等。

在SQL中向表中添加列

下面展示了向现有表添加新列的基本语法。请记住,根据数据库系统的不同,语法可能会有细微的差异:

修改表名称

ADD COLUMN column_name data_type [column_constraints];

 

我们从ALTER TABLE子句开始,它告诉数据库引擎我们希望修改现有表的结构。

然后指定要修改的表的名称。

接下来,我们使用ADD COLUMN子句,它允许我们添加具有指定名称、数据类型和约束的新列。

例子:

让我们看一下如何向现有表添加新列的各种示例。

例1:基本用法

假设我们有一个包含四列的基本表,如下面的查询示例所示:

employee_id serial主键,

first_name VARCHAR (50),

last_name VARCHAR (50),

hire_date日期

);

 

接下来,让我们假设我们希望添加一个名为“email”的VARCHAR(100)类型的新列来存储员工电子邮件地址。

我们可以使用ALTER TABLE子句添加列,如下例所示:

修改表雇员

添加列邮件VARCHAR(100);

 

示例2:添加带有约束的列

我们也可以添加一个新的列与各种约束,如下面的查询示例所示:

修改表雇员

ADD COLUMN salary DECIMAL(10,2) NOT NULL;

 

在本例中,我们添加了一个名为“salary”的新列,该列带有NOT NULL约束,以确保所有员工都有一个salary值。

示例3:添加多个列

ALTER TABLE子句允许我们在一条语句中添加多个列,如下例所示:

修改表雇员

添加列地址VARCHAR(100)

ADD COLUMN phone_number (15);

 

这里,我们还将“address”和“phone_number”列添加到“employees”表中。

结论

在本文中,我们通过学习如何向现有表添加新列来探索关系数据库中最常见的任务之一。我们从基础开始,学习了如何添加带约束的列等等。