丙午🐎年

acc8226 的博客

SQL 最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用 SQL 的 SELECT 能执行的最重要的操作,很好地理解联结及其语法是学习 SQL 的一个极为重要的组成部分。另外聚集函数也可以在联结中进行使用。

SQL 连接(JOIN) 用于把来自两个或多个表的行结合起来。

下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。

在我们继续讲解实例之前,我们先列出您可以使用的不同的 SQL JOIN 类型:

INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行

阅读全文 »

sql where 1 = 1 和 0 = 1 的作用

where 1=1; 这个条件始终为 True,在不定数量查询条件情况下,1=1 可以很方便的规范语句。
where 1=0; 这个条件始终为 false,结果不会返回任何数据,只有表结构,可用于快速建表

“SELECT * FROM strName WHERE 1 = 0”; 该 select 语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。

用法,可用于创建一个新表,而新表的结构与查询的表的结构是一样的。

阅读全文 »

环境的文档
测试的文档
进行压测,把数据库搞崩

什么是 Citus

Citus 数据库是 Postgres 的一个开源扩展,可以让你在任何规模上都感受到 Postgres 的伟大ーー从一个节点到一个庞大的分布式数据库集群。由于 Citus 是 Postgres 的一个扩展(而非分支) ,因此当您使用 Citus 时,也在使用 Postgres。您可以利用最新的 Postgres 特性、工具和生态系统。

使用 Citus,您可以获得分布式 Postgres 功能,比如分片、分布式表、引用表、分布式查询引擎、柱状存储—到 Citus 11.0 为止,您可以从任何节点进行查询。Citus 将并行性、在内存中保存更多数据以及更高的 I/O 带宽结合在一起,可以显著提高多租户 SaaS 应用程序、面向客户的实时分析仪表板以及时间序列工作负载的性能。

获得 Citus 的两种方法:

  • 开源: Citus 是 100% 开源的。您可以下载 Citus 开放源码,或者访问 GitHub 上的 Citus repo 来查看源代码并自己构建它。(分为社区版和商业版)
  • 托管服务: Citus 数据库可以作为云中的托管服务使用,Azure Cosmos DB 用于 PostgreSQL,以前在 Azure 数据库中称为 Hyperscale (Citus)用于 PostgreSQL。
    阅读全文 »

约束

约束(constraint)管理如何插入或处理数据库数据的规则。

主键约束
表中任意列只要满足以下条件,都可以用于主键。

  • 任意两行的主键值都不相同。
  • 每行都具有一个主键值(即列中不允许 NULL值)。
  • 包含主键值的列从不修改或更新。(大多数 DBMS 不允许这么做,但如果你使用的 DBMS 允许这样做,好吧,千万别!)
  • 主键值不能重用。如果从表中删除某一行,其主键值不分配给新行。

外键约束
外键是表中的一列,其值必须列在另一表的主键中。外键是保证引用完整性的极其重要部分。

提示:外键有助防止意外删除,除帮助保证引用完整性外,外键还有另一个重要作用。在定义外键后,DBMS 不允许删除在另一个表中具有关联行的行。例如,不能删除关联订单的顾客。删除该顾客的唯一方法是首先删除相关的订单(这表示还要删除相关的订单项)。由于需要一系列的删除,因而利用外键可以防止意外删除数据。有的 DBMS 支持称为级联删除(cascading delete)的特性。如果启用,该特性在从一个表中删除行时删除所有相关的数据。例如,举例如果启用级联删除并且从客户表中删除某个顾客,则任何关联的订单行也会被自动删除。

阅读全文 »
0%