一,修改表
PostgreSQL 提供了一族命令用于修改现有表。
可以实现:
增加字段,
删除字段,
增加约束,
删除约束,
修改默认值,
重命名字段,
重命名表。
这些操作可以用:ALTER TABLE命令执行的。
1,增加字段
要增加一个字段,使用这条命令:
ALTER TABLE products ADD COLUMN description text;
新增的字段对于表中已经存在的行而言最初将先填充空值。
你也可以同时在该字段上定义约束,使用通常的语法:
ALTER TABLE products ADD COLUMN description text CHECK (description <> '');
一个新字段不能用非空约束,因为最初的时候该字段必须包含空值。 但是你可以稍后增加一个非空约束。同样,你也不能在一个新字段 上定义默认值。根据 SQL 标准的说明,这样需要对现存行的新 字段填充默认值,而这个特性还没有实现。但是你可以稍后调整 字段预设。
2,删除字段
除一个字段:
ALTER TABLE products DROP COLUMN description;
3,增加约束
要增加一个约束,使用表约束语法。比如:
ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);
ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups;
要增加一个不能写成表约束的非空约束,使用下面语法:
ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;
这个约束将立即进行检查,所以表在加入约束之前必须符合约束条件。
4,删除约束
要删除一个约束,你需要知道它的名字。如果你给了它一个名字, 那么事情就好办了。
否则系统会分配一个生成的名字,这样你就需要 把它找出来了。psql 的命令 \d tablename 在这儿可以帮忙﹔
其它接口可能也提供了检查表的细节的方法。
命令:
ALTER TABLE products DROP CONSTRAINT some_name;
除了非空约束外,所有约束类型都这么用。要删除非空类型,用
ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;
(要记得非空约束没有名字。)
5,改变默认值
要给一个字段设定默认值,使用一个象下面这样的命令:
ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;
要删除默认值,用
ALTER TABLE products ALTER COLUMN price DROP DEFAULT;
这样相当于把预设设定为空,至少在 PostgreSQL里是这样的。
如果删除一个还没有定义的默认值不算错误,因为预设隐含就是空值。
6,给字段改名字
重命名一个字段:
ALTER TABLE products RENAME COLUMN product_no TO product_number;
7,给表改名字
ALTER TABLE products RENAME TO items;
相关推荐
在SQL Server 2012中,连接到外部数据源如PostgreSQL数据库是通过设置链接服务器来实现的。链接服务器允许SQL Server查询和操作非本地的数据,提供了与异构数据库系统交互的能力。以下是一个详细步骤,说明如何在SQL...
适配教程一堆github地址加载真的让人很崩溃,想要拿来主义,但是大家都太好了,都给的鱼竿不给鱼。 我来给最后一道坎递纸吧。 nacos适配 pg的sql脚本
SQL Server 2000链接服务器到PostgreSQL
### PostgreSQL与MS SQL Server在过程语言中的差异 在数据库领域,PostgreSQL 和 MS SQL Server 都是非常受欢迎的关系型数据库管理系统。两者在很多方面都提供了强大的功能支持,但在具体实现细节上存在不少差异。...
PostgreSQL之SQL调优指南 PostgreSQL之SQL调优指南是一份详细的SQL优化指南,旨在帮助开发者和数据库管理员提高PostgreSQL数据库的性能。该指南涵盖了从获取SQL收集统计信息到分析SQL慢的原因的所有步骤。 首先,...
### PostgreSQL中的类似SQL Server的ISDATE方法 在SQL Server中,`ISDATE`是一个非常实用的函数,用于检查一个字符串是否能被解析为合法的日期格式。而在PostgreSQL数据库系统中,并没有内置与SQL Server完全相同的...
本文将深入探讨如何在PostgreSQL环境中运行SQL代码,并提供相关的源代码示例。 首先,PostgreSQL允许用户通过多种方式执行SQL命令,包括命令行界面(psql)、图形化用户界面(GUI)工具以及编程语言的数据库连接库...
tpch生成的,22个适合postgresql的sql语句
PostgreSQL 与 MS SQLServer 在过程语言中的差异 PostgreSQL 和 MS SQL Server 是两种流行的关系数据库管理系统,它们在过程语言中有许多差异。下面我们将从数据类型、变量定义与赋值、IF/ELSE 控制结构等方面对这...
**基于PostgreSQL的基本SQL语句** 在数据库管理领域,PostgreSQL是一种强大且广泛使用的开源关系型数据库管理系统(RDBMS)。它支持标准的SQL语法,提供了丰富的数据类型和高级功能,使得开发人员能够高效地管理和...
SqlDbx支持多种数据库系统,包括但不限于MySQL、Oracle、SQL Server、PostgreSQL、DB2等,这使得它具有广泛的适用性,无论你是在处理哪种类型的数据库,都能得心应手。它通过直观的用户界面提供对SQL查询的执行,...
SQLPro Studio for mac 专业数据库客户端 Mysql Postgresql Oracle SQLServer
PostgreSQL表分区和子表及删除所有的数据库表 最近需求要求统计DNS近7天每天的解析情况。数据量相对大,所以我这边对表进行分区。 对每天的数据进行分区存储。主表只存储近7天的数据,7天之前的数据删掉。所以我...
在使用PostgreSQL 时,由于PGAdmin工具没有导出Insert SQL的功能,常常使我们很郁闷。备份一个表的数据到另外一个表特别麻烦。所以我自己开发了这个小工具。 导出PostgreSQL的Insert SQL脚本。希望能帮到你,解决些...
在探讨《PostgreSQL与Oracle跟SQL92 Standard的差异》这一主题时,我们主要关注的是三种数据库管理系统在数据类型上的不同之处。这篇文章由许雅婷撰写,作为高等数据库作业的一部分,详细对比了PostgreSQL、Oracle...
EMS SQL Manager for PostgreSQL 5.9.5.52424 最新版本 亲测可用,企业版授权,将cracked目录中的两个文件覆盖到安装目录中即可正常使用。
PostgreSQL提供了多种方法来访问外部数据,包括FDW(外部数据包装器)、Server(外部数据服务器)、用户映射和外部表等。 外键 外键是一种表之间的关系约束,用于保持数据的一致性和完整性。外键的作用不包括替代...
PostgreSQL 中的存储过程可以使用函数来实现,函数可以封装一组 SQL 语句,以便于重复使用和提高效率。在 .NET 中,可以使用 Npgsql 组件来连接 PostgreSQL 数据库,并使用函数来查询数据。本文详细介绍了 ...
需要安装Postgis插件都懂的吧,资源是postgreSQL的关于空间数据字段the_geom的一些SQL示例,写的比较模糊,主要是想网上留一份以防丢失。有需要或不明白的找我吧,我研究的也不多,基本的会一点,有需要的可以一起...
SQL Server的JDBC驱动jar包(如`sqljdbc_auth.dll`和`mssql-jdbc.jar`)提供了与SQL Server的连接能力,支持身份验证和多种数据库操作。 7. **Sybase**:Sybase(现已被SAP收购并改名为SAP Adaptive Server ...