首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PostgreSQL 教程

PostgreSQL 教程可帮助您快速了解 PostgreSQL。您将通过许多实际示例快速掌握 PostgreSQL,并将这些知识应用于使用 PostgreSQL 开发应用程序。...最后,您将学习如何管理数据库表,例如创建新表或修改现有表结构。 第 1 节. 查询数据 主题 描述 简单查询 向您展示如何从单个表中查询数据。 别名 了解如何为查询中或表达式分配临时名称。...ANY 通过将某个与子查询返回一组进行比较来检索数据。 ALL 通过与子查询返回列表进行比较来查询数据。 EXISTS 检查子查询返回行是否存在。 第 8 节....检查约束 添加逻辑以基于布尔表达式检查唯一约束 确保一一组在整个表中是唯一。 非空约束 确保不是NULL。 第 14 节....hstore 向您介绍数据类型,它是存储在 PostgreSQL 中单个一组键/对。 JSON 说明如何使用 JSON 数据类型,并向您展示如何使用一些最重要 JSON 运算符和函数。

47010

2022-03-31:有一组 n 个人作为实验对象,从 0 到 n - 1 编号,其中每个人都有不同数目的钱, 以及不同程度安静(quietness) 为了

2022-03-31:有一组 n 个人作为实验对象,从 0 到 n - 1 编号,其中每个人都有不同数目的钱, 以及不同程度安静(quietness) 为了方便起见,我们将编号为 x 的人简称为 "...给你一个数组 richer ,其中 richeri = ai, bi 表示 person ai 比 person bi 更有钱 另给你一个整数数组 quiet ,其中 quieti 是 person i 安静...richer 中所给出数据 逻辑自洽 也就是说,在 person x 比 person y 更有钱同时,不会出现 person y 比 person x 更有钱情况 现在,返回一个整数数组 answer...作为答案,其中 answerx = y 前提是: 在所有拥有的钱肯定不少于 person x 的人中,person y 是最安静的人(也就是安静 quiety 最小的人)。...loudAndRich(richer, quiet) fmt.Println(ret) } // richer[i] = {a, b} a比b更有钱 a -> b // quiet[i] = k, i这个人安静

56710
您找到你想要的搜索结果了吗?
是的
没有找到

数据库简介

此文件柜是一个存放数据物理位置,不管数据是什么以及如何组织。数据库(database) 就是保存有组织数据容器(通常是一个文件或一组文件)。 ?...注意   人们通常用数据库这个术语来代表他们使用数据库软件。这是不正确,它是引起混淆根源。确切地说,数据库软件应称为 DBMS(数据库管理系统)。数据库是通过 DBMS 创建和操纵容器。...这样做将使以后检索和访问很困难,应该创建两个表。   数据库中每个表都有一个名字,用来标识自己。此名字是唯一,这表示数据库中没有其他表具有相同名字。   数据库中每个都有相应数据类型。...1.1.3 什么是主键   表中每一行都应该有可以唯一标识自己(或一组)。顾客表可以使用顾客编号,而订单表可以使用订单ID,员工表可以使用员工编号。...主键(primary key) 就是唯一标识表中每行这个(或这组),其能够唯一区分表中每个行。

1.8K40

PostgreSQL数据存储基础知识

OID别名类型除了特定输入和输出例程之外没有别的操作。这些例程可以接受并显示系统对象符号名,而不是类型oid使用原始数字。别名类型使查找对象OID变得简单。...OID 在系统表中通常是作为隐藏存在,它是以整个PostgreSQL数据库实例(Database Cluster)范围内统一分配。...因为只有四个字节,因此,在大型数据库中它并不足以提供数据库范围内唯一性,甚至在一些大型表中也无法提供表范围内唯一性。...页默认大小为8192字节(8KB)。单个表文件中这些页(Page)从0开始进行顺序编号,这些编号也称为“块编号(Block Numbers)”。..., item_index), 通常称它为 CTID(ItemPointer), 我们可以通过下面语句查看每一 CTID: select ctid,* from course; 查询结果如下所示: ?

2.3K60

想熟悉PostgreSQL?这篇就够了

: sudo adduser postgres_user 登录默认PostgreSQL用户(称为“postgres”)来创建数据库并将其分配给新用户: sudo su - postgres PSQL...timestamptz:存储包含时区数据时间戳 interval:存储两个时间戳之间差值 几何数据 point:存储一对定义点坐标 line:存储一组映射出一条线点 lseg:存储定义线段数据...以下内容可用作数据类型后面的空格分隔: NOT NULL:不能具有空 UNIQUE:任何记录都不能相同。Null始终被视为唯一 PRIMARY KEY:上述两个约束组合。...每张表只能使用一次 CHECK:确保中值条件为真 REFERENCES:必须存在于另一个表中 在定义之后,可以声明表范围约束。...”表中添加一: ALTER TABLE pg_equipment ADD COLUMN functioning bool; ALTER TABLE 我们可以通过输入来查看额外: \d pg_equipment

3.2K20

分布式 PostgreSQL 集群(Citus),分布式表中分布选择最佳实践

如概念部分所述,Citus 根据表分布哈希将表行分配给分片。数据库管理员对分布选择需要与典型查询访问模式相匹配,以确保性能。...选择分布 Citus 使用分布式表中分布将表行分配给分片。为每个表选择分布是最重要建模决策之一,因为它决定了数据如何跨节点分布。...在 Citus 中,具有相同分布行保证在同一个节点上。分布式表中每个分片实际上都有一组来自其他分布式表位于同一位置分片,这些分片包含相同分布(同一租户数据)。...join,Citus 知道可以使用包含特定租户数据一组位于同一位置分片来回答整个查询,而 PostgreSQL 节点可以在一个步骤中回答该查询,从而支持完整 SQL 支持。...共置意味着更好功能支持 Citus 通过共置解锁功能完整列表如下: 对一组位于同一位置分片上查询完整 SQL 支持 多语句事务支持对一组位于同一位置分片进行修改 通过 INSERT..SELECT

4.3K20

GEO数据库使用教程及在线数据分析工具

每个平台记录都分配唯一且稳定GEO登录号(GPLxxx)。平台可以引用多个提交者提交许多样本。 样品 样品记录描述了处理单个样品条件,它经历操作以及从中得到每个元素丰度测量。...每个样品记录都分配唯一且稳定GEO登录号(GSMxxx)。Sample实体必须仅引用一个Platform,可以包含在多个Series中。...每个系列记录都分配唯一且稳定GEO登记号(GSExxx)。 数据集 GEO DataSet(GDSxxx)是GEO样本数据精选集合。...我们可以看见A组合BGSM号是一样,需要将他分在哪一组就在哪一组点击一下就行。背景变为深灰色就表示被选中,这里将GSM9920-GSM9925定位A,其余定位B。点击OK. ?...结果在浏览器中显示为按p排列前250个基因表。p最小基因最显著。单击一行显示该基因基因表达谱图。图中每个红条表示从原始提交者提供样例记录value中提取表达式度量。

37.4K2227

POSTGRESQL PG VS SQL SERVER 到底哪家强? (译) 应该是目前最全面的比较

MSSQL 中文:分区在两种数据库不同 PostgreSQL PostgreSQL内置支持范围、列表和哈希分区。范围分区将表分组为由分区键一组定义范围,例如按日期范围。...列表分区将表按显式列出预定义键值分组,每个分区中都出现这些键值。 SQL Server SQL Server支持表和索引分区。数据在水平方向上被分区,并将一组行映射到单个分区。...这是SERIAL符合SQL标准变体,允许您自动分配唯一给一个标识。 要使SERIAL具有唯一约束或成为主键,它现在必须像其他数据类型一样指定。...每个表只能包含一个identity。除非强制执行PRIMARY KEY或UNIQUE约束,否则不能保证唯一性。...MSSQL 中文:两种数据库在表操作中不同 Truncate 在PostgreSQL中,TRUNCATE命令可以删除一组表中所有行。

1.5K20

如何在CentOS 7上安装PostgreSQL关系数据库

mytestdb通过以postgresLinux用户身份运行此命令来创建一个调用示例数据库: createdb mytestdb 也可以将数据库所有权分配给特定Postgres用户/角色。...例如,您可以examplerole通过运行以下内容为角色分配所有权: createdb mytestdb -O examplerole 该createdb命令有几个附加选项,可以在PostgreSQL文档中找到...除非另有说明,否则在连接到数据库后,应从Postgres shell发出本节中命令。 创建表 本节包含使用员工名字和姓氏创建测试数据库示例,为每个名称分配一个唯一键。...此命令将查询您employees表以仅返回employee_id和last_name: SELECT last_name,employee_id FROM employees; 您将收到类似于此输出...此外,角色也可以创建为一组其他角色,类似于Linux“”.PostgreSQL角色全局适用,因此您无需创建如果您想在同一服务器上授予对多个数据库访问权限,则两次使用相同角色。

4.3K20

MySQL 约束和索引专题

如果从表中删除某一行,其主键值不分配给新行。 外键约束 外键是表中,其必须在另一表主键中。外键是保证引用完整性极其重要部分。...例如,举例如果启用级联删除并且从客户表中删除某个顾客,则任何关联订单行也会被自动删除。 唯一约束 唯一约束用来保证一(或一组)中数据是唯一。它们类似于主键,但存在以下重要区别。...❑ 表可包含多个唯一约束,但每个表只允许一个主键。 ❑ 唯一约束可包含 NULL 。 ❑ 唯一约束可修改或更新。 ❑ 唯一约束可重复使用。...检查约束 检查约束用来保证一(或一组)中数据满足一组指定条件。检查约束常见用途有以下几点。 ❑ 检查最小或最大。例如,防止 0 个物品订单(即使 0 是合法数)。 ❑ 指定范围。...如果是组合索引,则组合必须唯一

1.5K30

理解PG如何执行一个查询-1

一组数字(cost=0.00..9217.41)是对该操作代价估计。代价根据磁盘读取来衡量。...PostgreSQL 使用两种不同排序策略:内存排序和磁盘排序。您可以通过调整sort_mem运行时参数来调整 PostgreSQL 实例。...例如,Unique算子(我们稍后会看到)通过在读取已排序输入集时检测重复来消除行。排序也将用于一些连接操作、操作和一些集合操作(例如INTERSECT和UNION)。...Unique Unique算子从输入集中消除重复。输入集必须按排序,并且必须唯一。...Unique通过将每一行唯一与前一行进行比较来工作。如果相同,则从结果集中删除重复项。Unique算子仅删除行,不会删除,也不会更改结果集顺序。

2K20

数据库 PostgreSQL 常用命令

数据表: 表是数据矩阵。在一个数据库中表看起来像一个简单电子表格。 : 一(数据元素) 包含了相同数据, 例如邮政编码数据。...**行:**一行(=元组,或记录)是一组相关数据,例如一条用户订阅数据。 冗余:存储两倍数据,冗余降低了性能,但提高了数据安全性。 主键:主键是唯一。一个数据表中只能包含一个主键。...**索引:**使用索引可快速访问数据库表中特定信息。索引是对数据库表中一或多进行排序一种结构。类似于书籍目录。 参照完整性: 参照完整性要求关系中不允许引用不存在实体。...与实体完整性是关系模型必须满足完整性约束条件,目的是保证数据一致性。 PostgreSQL 特征 函数:通过函数,可以在数据库服务器端执行指令程序。......) values ([m],[n],......)

2.1K40

数据库 PostgreSQL 常用命令

数据表: 表是数据矩阵。在一个数据库中表看起来像一个简单电子表格。 : 一(数据元素) 包含了相同数据, 例如邮政编码数据。...**行:**一行(=元组,或记录)是一组相关数据,例如一条用户订阅数据。 冗余:存储两倍数据,冗余降低了性能,但提高了数据安全性。 主键:主键是唯一。一个数据表中只能包含一个主键。...**索引:**使用索引可快速访问数据库表中特定信息。索引是对数据库表中一或多进行排序一种结构。类似于书籍目录。 参照完整性: 参照完整性要求关系中不允许引用不存在实体。...与实体完整性是关系模型必须满足完整性约束条件,目的是保证数据一致性。 PostgreSQL 特征 函数:通过函数,可以在数据库服务器端执行指令程序。......) values ([m],[n],......)

2.3K30

哈希算法

不仅如此,散函数对于散算法计算得到,是否能反向解密也并不关心。散函数中用到算法,更加关注散是否能平均分布,也就是,一组数据是否能均匀地散在各个槽中。...我们可以通过哈希算法,对客户端 IP 地址或者会话 ID 计算哈希,将取得哈希与服务器列表大小进行取模运算,最终得到就是应该被路由到服务器编号。...我们从搜索记录日志文件中,依次读出每个搜索关键词,并且通过哈希函数计算哈希,然后再跟 n 取模,最终得到,就是应该被分配机器编号。这样,哈希相同搜索关键词就被分配到了同一个机器上。...我们每次从图库中读取一个图片,计算唯一标识,然后与机器个数 n 求余取模,得到就对应要分配机器编号,然后将这个图片唯一标识和图片路径发往对应机器构建散列表。...undefined当我们要判断一个图片是否在图库中时候,我们通过同样哈希算法,计算这个图片唯一标识,然后与机器个数 n 求余取模。假设得到是 k,那就去编号 k 机器构建散列表中查找。

45074

PG15加速排序性能

为了显示性能提升情况,我们需要测试几个不同大小元组。我所做是从 1 开始并测试其性能,然后再添加另一并重复。我停在 32 。...此处所做更改添加了一组快速排序函数,这些函数适合一些常见数据类型。这些快速排序函数具有内联编译比较函数,以消除函数调用开销。...让我们看一下排序专业化函数带来性能提升。我们可以通过在查询中添加 LIMIT 子句来欺骗 PG 执行程序,使其不应用该优化。 性能提升4%-6%。...例如,当 PG 在排序期间比较两个时,它需要检查 NULL。这对于几个来说是相当便宜,但请记住,这种比较必须进行多次。比较成本迅速增加。...如果 PG 在存储记录时通过检查它们已经知道不存在 NULL,那么在比较两条记录以进行排序时就不需要检查 NULL。许多都有 NOT NULL 约束,因此这种情况应该很常见。

1.2K10

哈希算法

当要查看某个图片是不是在图库中时候,我们先通过哈希算法对这个图片取唯一标识,然后在散列表中查找是否存在这个唯一标识。...即便出现个别散冲突,只要不是过于严重,我们都可以通过开放寻址法或者链表法解决。 不仅如此,散函数对于散算法计算得到,是否能反向解密也并不关心。...散函数中用到算法,更加关注散是否能平均分布,也就是,一组数据是否能均匀地散在各个槽中。...我们可以通过哈希算法,对客户端 IP 地址或者会话 ID 计算哈希,将取得哈希与服务器列表大小进行取模运算,最终得到就是应该被路由到服务器编号。...我们从搜索记录日志文件中,依次读出每个搜索关键词,并且通过哈希函数计算哈希,然后再跟 n 取模,最终得到,就是应该被分配机器编号。 这样,哈希相同搜索关键词就被分配到了同一个机器上。

39520

MySQL主键设计盘点

最近在项目中用了UUID方式生成主键,一开始只是想把这种UUID方式生成主键记录下来,在查阅资料过程中,又有了一些新认识和思考。 主键定义 唯一标识表中每行一个(或一组)称为主键。...主键设计和应用原则 除了满足MySQL强制实施规则(主键不可重复;一行中主键不可为空)之外,主键设计和应用应当还遵守以下公认原则: 不更新主键; 不重用主键; 不在主键中使用可能会更改...根据标准方法生成,不依赖中央机构注册和分配,UUID具有唯一性,这与其他大多数编号方案不同。重复UUID码概率接近零,可以忽略不计。...UUID是由一组32位数16进制数字所构成,标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-1232个字符。...除了最高位bit标记为不可用以外,其余三bit占位均可浮动,看具体业务需求而定。

4.2K30

哈希算法揭秘

不仅如此,散函数对于散算法计算得到,是否能反向解密也并不关心。散函数中用到算法,更加关注散是否能平均分布,也就是,一组数据是否能均匀地散在各个槽中。...我们可以通过哈希算法,对客户端 IP 地址或者会话 ID 计算哈希,将取得哈希与服务器列表大小进行取模运算,最终得到就是应该被路由到服务器编号。...我们从搜索记录日志文件中,依次读出每个搜索关键词,并且通过哈希函数计算哈希,然后再跟 n 取模,最终得到,就是应该被分配机器编号。这样,哈希相同搜索关键词就被分配到了同一个机器上。...我们每次从图库中读取一个图片,计算唯一标识,然后与机器个数 n 求余取模,得到就对应要分配机器编号,然后将这个图片唯一标识和图片路径发往对应机器构建散列表。...undefined当我们要判断一个图片是否在图库中时候,我们通过同样哈希算法,计算这个图片唯一标识,然后与机器个数 n 求余取模。假设得到是 k,那就去编号 k 机器构建散列表中查找。

54500
领券