摘要: 使用分组集的概念可以实现比上述更加复杂的分组操作。 由 FROM和WHERE子句选出的数据被按照每一个指定的分组集单独分组,按照简单GROUP BY子句对每一个分组计算聚集,然后返回结果。例如: => SELECT * FROM items_sold; brand | size | sales + 阅读全文
posted @ 2021-01-06 23:57 bufuzhou 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 在通过了WHERE过滤器之后,生成的输入表可以使用GROUP BY子句进行分组,然后用HAVING子句删除一些分组行。 SELECT select_list FROM ... [WHERE ...] GROUP BY grouping_column_reference [, grouping_col 阅读全文
posted @ 2021-01-06 23:53 bufuzhou 阅读(198) 评论(0) 推荐(0) 编辑
摘要: WHERE 子句的语法是 WHERE search_condition 这里的search_condition是任意返回一个boolean类型值的值表达式。 在完成对FROM子句的处理之后,生成的虚拟表的每一行都会对根据搜索条件进行检查。 如果该条件的结果是真,那么该行被保留在输出表中;否则(也就是 阅读全文
posted @ 2021-01-06 23:45 bufuzhou 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 你可以给一个表或复杂的表引用指定一个临时的名字,用于剩下的查询中引用那些派生的表。这被叫做表别名。 要创建一个表别名,我们可以写: FROM table_reference AS alias 或者 FROM table_reference alias AS关键字是可选的。别名可以是任意标识符。 表别 阅读全文
posted @ 2021-01-06 23:42 bufuzhou 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 表表达式计算一个表。该表表达式包含一个FROM子句,该子句后面可以根据需要选用WHERE、GROUP BY和HAVING子句。 最简单的表表达式只是引用磁盘上的一个表,一个所谓的基本表,但是我们可以用更复杂的表表达式以多种方法修改或组合基本表。 表表达式里可选的WHERE、GROUP BY和HAVI 阅读全文
posted @ 2021-01-06 23:28 bufuzhou 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 知道了如何创建表、如何用数据填充它们 以及如何操纵那些数据。现在我们终于可以讨论如何从数据库中检索数据了 从数据库中检索数据的过程或命令叫做查询。在 SQL 里SELECT命令用于指定查询。 SELECT命令的一般语法是 [WITH with_queries] SELECT select_list 阅读全文
posted @ 2021-01-06 23:25 bufuzhou 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 第一章 数据操纵 知道了如何创建表和其他结构来保存你的数据。 现在是时候给表填充数据了(如何插入、更新和删除表数据)。 1.1 插入数据 表创建只是定义了表结构,没有数据,需要写入并保存数据。 指定顺序指定值与字段对应,可以使用默认值 default。 可以一次插入一行,多行 可以插入查询的结果集 阅读全文
posted @ 2021-01-06 23:04 bufuzhou 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 将逻辑上的一个大表分成一些小的物理上的片。(能够提高查询性能,方便批量数据操作——整个分区) 当前支持的分区方法是范围、列表以及哈希 无法把一个常规表转换成分区表,反之亦然。(单个分区和表之间的转换) 分区表及其分区不会参与到与常规表的继承关系中 由于分区表并不直接拥有任何数据,尝试在分区表上使用T 阅读全文
posted @ 2021-01-06 00:42 bufuzhou 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 为了保证整个数据库结构的完整性,PostgreSQL确保我们无法删除仍然被其他对象依赖的对象。 使用CASCADE,这样所有的依赖对象将被移除,同样依赖于它们的任何对象也会被递归删除。 Drop的一组本身有依赖的对象,不用添加cascade去删除,除非还有额外依赖。 对于用户定义的函数,Postgr 阅读全文
posted @ 2021-01-06 00:06 bufuzhou 阅读(307) 评论(0) 推荐(0) 编辑