文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.11. 外部数据

5.11. 外部数据 PostgreSQL实现了部分的SQL/MED规定,允许我们使用普通SQL查询来访问位于PostgreSQL之外的数据。这种数据被称为外部数据(注意这种用法不要和外键混淆,后者是数据库中的一种约束)。 外部数据可以在一个外部数据包装器的帮助下被访问。一个外部数据包装器是一个库,它可以与一个外部数据源通讯,并隐藏连接到数据源和从它获取数据的细节。在contrib模块中...

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.10. 表分区

5.10. 表分区 5.10.1. 概述 5.10.2. 声明式分区 5.10.3. 使用继承的实现 5.10.4. 划分和约束排除 PostgreSQL支持基本的表划分。本小节介绍为何以及怎样把划分实现为数据库设计的一部分。 5.10.1. 概述 划分指的是将逻辑上的一个大表分成一些小的物理上的片。划分有很多益处: 在某些情况下查询性能能够显著提升,特别是当那些访问压力大的....

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.9. 继承

5.9. 继承 5.9.1. 警告 PostgreSQL实现了表继承,这对数据库设计者来说是一种有用的工具(SQL:1999及其后的版本定义了一种类型继承特性,但和这里介绍的继承有很大的不同)。 让我们从一个例子开始:假设我们要为城市建立一个数据模型。每一个州有很多城市,但是只有一个首府。我们希望能够快速地检索任何特定州的首府城市。这可以通过创建两个表来实现:一个用于州首府,另一个用于不...

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.8. 模式

5.8. 模式 5.8.1. 创建模式 5.8.2. 公共模式 5.8.3. 模式搜索路径 5.8.4. 模式和权限 5.8.5. 系统目录模式 5.8.6. 惯用法 5.8.7. 可移植性 一个PostgreSQL数据库集簇中包含一个或更多命名的数据库。用户和用户组被整个集簇共享,但没有其他数据在数据库之间共享。任何给定客户端连接只能访问在连接中指定的数据库中的数据。 注意 一个集簇....

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.7. 行安全性策略

5.7. 行安全性策略 除可以通过GRANT使用 SQL 标准的 特权系统之外,表还可以具有 行安全性策略,它针对每一个用户限制哪些行可以 被普通的查询返回或者可以被数据修改命令插入、更新或删除。这种 特性也被称为行级安全性。默认情况下,表不具有 任何策略,这样用户根据 SQL 特权系统具有对表的访问特权,对于 查询或更新来说其中所有的行都是平等的。 当在一个表上启用...

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.6. 权限

5.6. 权限 一旦一个对象被创建,它会被分配一个所有者。所有者通常是执行创建语句的角色。对于大部分类型的对象,初始状态下只有所有者(或者超级用户)能够对该对象做任何事情。为了允许其他角色使用它,必须分配权限。 有多种不同的权限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、CREATE、CONNECT、TEMPORARY...

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.5. 修改表

5.5. 修改表 5.5.1. 增加列 5.5.2. 移除列 5.5.3. 增加约束 5.5.4. 移除约束 5.5.5. 更改列的默认值 5.5.6. 修改列的数据类型 5.5.7. 重命名列 5.5.8. 重命名表 当我们已经创建了一个表并意识到犯了一个错误或者应用需求发生改变时,我们可以移除表并重新创建它。但如果表中已经被填充数据或者被其他数据库对象引用(例如有一个外键约束),这种...

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.4. 系统列

5.4. 系统列 每一个表都拥有一些由系统隐式定义的系统列。因此,这些列的名字不能像用户定义的列一样使用(注意这种限制与名称是否为关键词没有关系,即便用引号限定一个名称也无法绕过这种限制)。 事实上用户不需要关心这些列,只需要知道它们存在即可。 oid 一行的对象标识符(对象ID)。该列只有在表使用WITH OIDS创建时或者default_with_oids配置变量被设置时才存在。该列...

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.3. 约束

5.3. 约束 5.3.1. 检查约束 5.3.2. 非空约束 5.3.3. 唯一约束 5.3.4. 主键 5.3.5. 外键 5.3.6. 排他约束 数据类型是一种限制能够存储在表中数据类别的方法。但是对于很多应用来说,它们提供的约束太粗糙。例如,一个包含产品价格的列应该只接受正值。但是没有任何一种标准数据类型只接受正值。另一个问题是我们可能需要根据其他列或行来约束一个列中的数据。例如...

文章 2018-10-01 来自:开发者社区

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.2. 默认值

5.2. 默认值 一个列可以被分配一个默认值。当一个新行被创建且没有为某些列指定值时,这些列将会被它们相应的默认值填充。一个数据操纵命令也可以显式地要求一个列被置为它的默认值,而不需要知道这个值到底是什么(数据操纵命令详见第 6 章)。 如果没有显式指定默认值,则默认值是空值。这是合理的,因为空值表示未知数据。 在一个表定义中,默认值被列在列的数据类型之后。例如: C...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

数据库

数据库领域前沿技术分享与交流

+关注