当前位置: 首页 > news >正文

第14节-增强表结构-ALTER-TABLE

摘要:在本教程中,您将学习如何使用 PostgreSQL ALTER TABLE 语句增强表的结构。

PostgreSQL 入门 ALTER TABLE 语句

PostgreSQL 中,ALTER TABLE 语句允许您有效地修改表结构。

以下是 ALTER TABLE 语句的基本语法:

ALTER TABLE table_name
action;

在此语法中:

  • 首先,指定要修改结构的表名。
  • 其次,提供您要执行的作。

以下是主要行动:

  • Renaming a table
  • Rename a column.
  • Adding one or more columns to the table
  • Removing a column
  • Applying a constraint to a column
  • Changing the data type of a column

假设我们有以下存储产品信息的 materials 表:

CREATE TABLE materials (id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,name VARCHAR(40) NOT NULL,status bool NOT NULL
);

重命名表

您使用 ALTER TABLE ... RENAME TO 语句重命名表:

ALTER TABLE table_name
RENAME TO new_table_name;

在此语法中:

  • 首先,在 ALTER TABLE 子句中指定表的名称。
  • 其次,在 RENAME TO 子句中定义新表名。

以下示例使用 ALTER TABLE ... RENAME TOmaterials 表重命名为 products

ALTER TABLE materials
RENAME TO products;

重命名列

要重命名列,请使用 ALTER TABLE ... RENAME COLUMN 语句:

ALTER TABLE table_name
RENAME COLUMN column_name
TO new_column_name;

例如,以下示例将 status 列重命名为 active

ALTER TABLE products
RENAME COLUMN status
TO active;

向表添加新列

使用 ALTER TABLE...ADD COLUMN 语句向表添加新列:

ALTER TABLE table_name
ADD COLUMN column_name data_type constraint;

在此语法中:

  • 首先,提供要修改的表的名称。
  • 其次,在 ADD COLUMN 子句中定义列名、类型和约束。

例如,以下语句将 price 列添加到 products 表:

ALTER TABLE products
ADD COLUMN price DEC(5, 2) NOT NULL;

可以使用 ALTER TABLE 语句添加多个列。

例如,以下 ALTER TABLE ... ADD COLUMN 语句将 weightvolumemodel_no 列添加到 products 表中:

ALTER TABLE products
ADD COLUMN weight DEC(5, 2),
ADD COLUMN volume DEC(5, 2),
ADD COLUMN model_no VARCHAR(25);

更改列数据类型

您使用 ALTER TABLE ... ALTER COLUMN ... SET DATA TYPE 语句来更改列的数据类型:

ALTER TABLE table_name
ALTER COLUMN column_name
SET DATA TYPE new_data_type;

在此语法中:

  • 首先,在 ALTER TABLE 子句中指定表的名称。
  • 其次,提供要修改的列的名称。
  • 第三,在 SET DATA TYPE 子句中设置新的数据类型。

如果表有数据,则必须确保新类型与现有数据兼容。

例如,以下语句将 products 表中 price 列的大小扩展到 DEC(11,2)

ALTER TABLE products
ALTER COLUMN price
SET DATA TYPE DEC(11, 2);

对列应用约束

您使用 ALTER TABLE ... ALTER COLUMN SET 语句向列添加约束。

NOT NULL 约束

以下语句将 NOT NULL 约束应用于列:

ALTER TABLE table_name
ALTER COLUMN column_name
SET NOT NULL;

例如,以下语句将 NOT NULL 约束添加到 products 表的 weightvolume 列:

ALTER TABLE products
ALTER COLUMN weight SET NOT NULL,
ALTER COLUMN volume SET NOT NULL;

在运行语句之前,权重和列不得有任何 NULL 值。

CHECK 约束

以下语句将 CHECK 约束添加到列中:

ALTER TABLE table_name
ALTER COLUMN column_name
ADD CHECK expression;

以下语句将 CHECK 约束添加到 products 表的 weightvolume 列:

ALTER TABLE products
ADD CHECK (weight > 0),
ADD CHECK (volume > 0);

DEFAULT 约束

以下语句使用 DEFAULT 约束为列设置默认值:

ALTER TABLE table_name
ALTER COLUMN column_name
SET DEFAULT default_value;

例如,以下语句将 active 列的值设置为 true

ALTER TABLE products
ALTER COLUMN active
SET DEFAULT true;

UNIQUE 约束

以下语句为一列或多列添加唯一约束:

ALTER TABLE table_name
ADD UNIQUE (column1, column2, ...);

例如,以下语句向 products 表的 model_no 添加唯一约束:

ALTER TABLE products
ADD UNIQUE (model_no);

删除列

ALTER TABLE ... DROP COLUMN 从表中删除一列:

ALTER TABLE table_name
DROP COLUMN column_name;

例如,以下语句删除 products 表的 active 列:

ALTER TABLE products
DROP COLUMN active;

总结

  • 使用 ALTER TABLE 语句更改表的结构。
http://www.dtcms.com/a/445682.html

相关文章:

  • Ubuntu之apt更新源
  • T527 IR-RX 调试
  • 低成本能谱仪设计:基于分立器件的模拟前端与数字后端实现方案
  • 计算机视觉的数据收集与标注
  • LeetCode:92.最小路径和
  • 百度竞价推广属于什么广告广东网站se0优化公司
  • Anaconda路径配置
  • GitHub 热榜项目 - 日榜(2025-10-05)
  • java中Math.random()和random()方法区别
  • Django SimpleUI 详解:现代化的Django Admin界面美化方案
  • 网站开发客户流程 6个阶段简述常用的网站开发软件
  • 区块链分层学:新的开始
  • Qt与CMakeLists.txt
  • Ubuntu20.04安装Anaconda3-2025.06
  • VirtualBox中ubuntu1804虚拟机共享文件夹设置
  • 基于单片机的环境监测智能报警系统的设计(论文+源码)
  • 成都网页制作推广合肥网站seo报价
  • 短波红外相机在工业视觉检测中的应用
  • 马鞍山市建设银行网站科右前旗建设局网站
  • 【傻呱呱】托管项目到GitHub(纯前端UI操作)
  • 神经网络之激活函数Softmax
  • 高端网站建设哪家公司好网站建设招标样本
  • Qt Quick 3D-机械臂模型显示与交互
  • 轻松Linux-10.进程信号
  • 淘宝网站可信度状况及建设策略桂林网站
  • HTML简单入门—— 基础标签与路径解析
  • AI Agent:从“超级玩具“到“核心生产力“,智能新纪元的深度解析
  • 网站开发和运行 法律html5登录界面完整代码
  • 数据预处理与可视化流水线:Pandas Profiling + Altair 实战指南
  • 全栈开发杂谈————关于websocket若干问题的大讨论