相关文章推荐
原文: 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 添加新列的示例

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

STATE EMAIL

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

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

ALTER TABLE users
ADD id_number TEXT;

表格现在有了新的一列:

STATE EMAIL ID_NUMBER

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

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

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

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

ALTER TABLE users
ADD country TEXT default "United States";

现在这个表格是这样的:

STATE EMAIL ID_NUMBER COUNTRY

向表格添加新列时要谨慎

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

如何用 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;

重命名一个列的例子

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

STATE EMAIL ID_NUMBER COUNTRY

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

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

ALTER TABLE users
RENAME COLUMN id TO user_id;

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

USER_ID STATE EMAIL ID_NUMBER COUNTRY

重命名表中的列时要小心

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

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

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

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

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

freeCodeCamp 是捐助者支持的 501(c)(3) 条款下具有免税资格的慈善组织(税号:82-0779546)。

我们的使命:帮助人们免费学习编程。我们通过创建成千上万的视频、文章和交互式编程课程——所有内容向公众免费开放——来实现这一目标。学员在世界各地自发成立数千个 freeCodeCamp 学习小组。

所有给 freeCodeCamp 的捐款都将用于我们的教育项目,购买服务器和其他服务,以及聘用员工。

你可以点击此处免税捐款about:blank 是什么意思 打开 .dat 文件 Node 最新版本 反恶意软件服务 Windows10 产品密钥 Git 切换分支 AppData 文件夹 Windows 10 屏幕亮度 JSON 注释 MongoDB Atlas 教程 Python 字符串转数字 Git 命令 更新 NPM 依赖 谷歌恐龙游戏 CSS 使用 SVG 图片 Python 获取时间 Git Clone 指定分支 JS 字符串反转 React 个人作品网站 媒体查询范围
 
推荐文章