摘要:
创建表时,它不包含任何数据。在数据库发挥作用之前要做的第一件事就是插入数据。数据一次插入一行。您还可以在单个命令中插入多行,但不能插入不完整的行。即使您只知道某些列值,也必须创建完整的行。 要创建新行,请使用 INSERT 命令。该命令需要表名和列值。例如: CREATE TABLE produ 阅读全文
摘要:
分区是指将逻辑上是一张大表拆分为较小的物理块。分区可以提供几个好处: 在某些情况下,查询性能可以显着提高,尤其是当表的大部分访问量很大的行位于单个分区或少数几个分区中时。分区有效地替代了较高的树级别索引,使得索引的大量使用部分更有可能适合内存。 当查询或更新访问单个分区的大部分时,可以通过使用该分区 阅读全文
摘要:
让我们从一个例子开始:假设我们正在尝试为城市构建一个数据模型。每个州都有许多城市,但只有一个首府。我们希望能够快速检索任何特定州的首都。这可以通过创建两张表来完成,一张用于州首府,一张用于非首都城市。但是,当我们想要查询一个城市的数据时会发生什么,无论它是否是首都?继承特性可以帮助解决这个问题。我们 阅读全文
摘要:
数据库包含一个或多个命名模式,这些模式又包含表。模式还包含其他类型的命名对象,包括数据类型、函数和运算符。相同的对象名称可以在不同的模式中使用而不会发生冲突;例如,schema1 和 myschema 都可以包含名为 mytable 的表。与数据库不同,模式不是严格分开的:用户可以访问他们连接到的数 阅读全文
摘要:
除了通过 GRANT 提供的 SQL 标准权限系统之外,表还可以具有行安全策略,这些策略基于每个用户来限制正常查询可以返回哪些行,或者可以通过数据修改命令插入、更新或删除哪些行。此功能也称为行级安全性。默认情况下,表没有任何策略,因此如果用户根据 SQL 权限系统对表具有访问权限,则表中的所有行都可 阅读全文
摘要:
当一个对象被创建时,它被分配了一个所有者。所有者通常是执行创建语句的角色。对于大多数类型的对象,初始状态是只有所有者(或超级用户)可以对对象执行任何操作。要允许其他角色使用它,必须授予权限。 有不同种类的权限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENC 阅读全文
摘要:
当您创建一个表并意识到您犯了一个错误,或者应用程序的需求发生变化时,您可以删除该表并重新创建它。但是,如果表已经被数据填充,或者表被其他数据库对象引用(例如外键约束),这不是一个方便的选择。因此 PostgreSQL 提供了一系列命令来修改现有的表。请注意,这在概念上与更改表中包含的数据不同:这里我 阅读全文