SQL Alter Table 语句

SQL Alter Table 语句

原文: Alter Table in SQL – How to Add a Column or Rename a Column in SQL

你已经创建了你的数据库和表,在所有这些工作之后,你注意到你需要添加或重命名一个列。那么,你可以使用 “ALTER TABLE” 语句来这样做。

请记住,当你这样做时,你需要非常小心。如果你的表有很多行,它可能会给你的数据库带来性能问题。

注意:如果这里介绍的语法不起作用,请检查你所使用的 SQL 的实现文档。大多数东西的工作原理都是一样的,但也有一些区别。

如何用 ALTER TABLE 添加一个新列

要添加一个新的列,首先需要用 ALTER TABLE table_name 选择表,然后用 ADD column_name datatype 写下新列的名称和数据类型。综合起来,代码看起来是这样的:

ALTER TABLE table_name

ADD column_name datatype;

使用 ALTER TABLE 添加新列的示例

我们有一个用户数据库,内容如下:

ID

NAME

AGE

STATE

EMAIL

1

Paul

24

Michigan

paul@example.com

2

Molly

22

New Jersey

molly@example.com

3

Robert

19

New York

robert@example.com

我们已经到了需要存储用户的身份证件号码的时候了,所以我们需要为此添加一个新的列。

为了给我们的 users 表添加一个新的列,我们需要用 ALTER TABLE users 选择该表,然后用 ADD id_number TEXT 指定新列的名称和数据类型,如下:

ALTER TABLE users

ADD id_number TEXT;

表格现在有了新的一列:

ID

NAME

AGE

STATE

EMAIL

ID_NUMBER

1

Paul

24

Michigan

paul@example.com

NULL

2

Molly

22

New Jersey

molly@example.com

NULL

3

Robert

19

New York

robert@example.com

NULL

一旦提供了缺失的信息,你将需要使用 UPDATE 语句为已经存在的用户添加这些信息。

如何用默认值而不是 NULL 创建一个新的列

你也可以使用 default 关键字和要使用的值来创建一个带有默认值的列。然后,用户将看到默认值,而不是用 NULL 来填充缺失的值。

比方说,我们很快就会有国际用户,我们想添加一个 country 列。我们所有的现有用户都来自美国,所以我们可以用它作为默认值。

ALTER TABLE users

ADD country TEXT default "United States";

现在这个表格是这样的:

ID

NAME

AGE

STATE

EMAIL

ID_NUMBER

COUNTRY

1

Paul

24

Michigan

paul@example.com

NULL

United States

2

Molly

22

New Jersey

molly@example.com

NULL

United States

3

Robert

19

New York

robert@example.com

NULL

United States

向表格添加新列时要谨慎

如果你的表已经有很多行了--比如你已经有很多用户,或者很多存储的数据--添加一个新的列可能真的很耗资源。所以一定要小心处理这个操作。

如何用 ALTER TABLE 重命名一个列

你可以用下面的代码来重命名一个列。你用 ALTER TABLE table table_name 选择表格,然后用 RENAME COLUMN old_name TO new_name 写出要重命名的列和要重命名的内容。

ALTER TABLE table_name

RENAME COLUMN old_name TO new_name;

重命名一个列的例子

让我们看一下我们在前面的例子中使用的同一个表:

ID

NAME

AGE

STATE

EMAIL

ID_NUMBER

COUNTRY

1

Paul

24

Michigan

paul@example.com

NULL

United States

2

Molly

22

New Jersey

molly@example.com

NULL

United States

3

Robert

19

New York

robert@example.com

NULL

United States

为了避免 id 和 id_number 列之间的混淆,让我们把第一个列重命名为 user_id。

我们首先用 ALTER TABLE users 选择表,然后用 RENAME COLUMN id TO user_id 声明列名,使其变为我们需要的名字。

ALTER TABLE users

RENAME COLUMN id TO user_id;

使用查询后,表格将看起来像这样:

USER_ID

NAME

AGE

STATE

EMAIL

ID_NUMBER

COUNTRY

1

Paul

24

Michigan

paul@example.com

NULL

United States

2

Molly

22

New Jersey

molly@example.com

NULL

United States

3

Robert

19

New York

robert@example.com

NULL

United States

重命名表中的列时要小心

当你使用 ALTER TABLE 重命名列时,你有可能破坏数据库的依赖关系。

如果你使用数据库重构工具来改变一个列的名称,而不是使用 ALTER TABLE,它将管理所有的依赖关系,并用新的列名来更新它们。

如果你的数据库比较小,你可能不需要担心,但必须记住这一点。

总结

在这篇文章中,你已经学会了如何使用 ALTER TABLE 在表中增加一个列和重命名一个列。

请记住,这两种操作都有各自的风险。正如有人说的,“权力越大,责任越大”,ALTER TABLE 是一种大的权力,所以你要小心使用它!

相关推荐

365bet游戏网站 流量卡怎么充值?教你4种充值方法

流量卡怎么充值?教你4种充值方法

365bet亚洲版登陆首页 《问道》普通宠物幻化讲解

《问道》普通宠物幻化讲解

365bet亚洲版登陆首页 《在地下城寻求邂逅是否搞错了什么》系列

《在地下城寻求邂逅是否搞错了什么》系列