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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 11 章 索引_11.6. 唯一索引

11.6. 唯一索引 索引也可以被用来强制列值的唯一性,或者是多个列组合值的唯一性。 CREATE UNIQUE INDEX name ON table (column [, ...]); 当前,只有B-tree能够被声明为唯一。 当一个索引被声明为唯一时,索引中不允许多个表行具有相同的索引值。空值被视为不相同。一个多列唯一索引将会拒绝在所有索引列上具有相同组合值的表行。 Postgre...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 11 章 索引_11.5. 组合多个索引

11.5. 组合多个索引 只有查询子句中在索引列上使用了索引操作符类中的操作符并且通过AND连接时才能使用单一索引。例如,给定一个(a, b) 上的索引,查询条件WHERE a = 5 AND b = 6可以使用该索引,而查询WHERE a = 5 OR b = 6不能直接使用该索引。 幸运的是,PostgreSQL具有组合多个索引(包括多次使用同一个索引)的能力来处理那些不 ...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 11 章 索引_11.4. 索引和ORDER BY

11.4. 索引和ORDER BY 除了简单地查找查询要返回的行外,一个索引可能还需要将它们以指定的顺序传递。这使得查询中的ORDER BY不需要独立的排序步骤。在PostgreSQL当前支持的索引类型中,只有B-tree可以产生排序后的输出,其他索引类型会把行以一种没有指定的且与实现相关的顺序返回。 规划器会考虑以两种方式来满足一个ORDER BY说明:扫描一个符合说明的可用索引,或者...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 11 章 索引_11.3. 多列索引

11.3. 多列索引 一个索引可以定义在表的多个列上。例如,我们有这样一个表: CREATE TABLE test2 ( major int, minor int, name varchar ); (即将我们的/dev目录保存在数据库中)而且我们经常会做如下形式的查询: SELECT name FROM test2 WHERE major = constant AND minor...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 11 章 索引_11.2. 索引类型

11.2. 索引类型 PostgreSQL提供了多种索引类型: B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN。每一种索引类型使用了 一种不同的算法来适应不同类型的查询。默认情况下, CREATE INDEX命令创建适合于大部分情况的B-tree 索引。 B-tree可以在可排序数据上的处理等值和范围查询。特别地,PostgreSQL的查询规划器会在任...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 11 章 索引_11.1. 简介

11.1. 简介 假设我们有一个如下的表: CREATE TABLE test1 ( id integer, content varchar ); 而应用发出很多以下形式的查询: SELECT content FROM test1 WHERE id = constant; 在没有事前准备的情况下,系统不得不扫描整个test1表,一行一行地去找到所有匹配的项。如果test1中有很...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 10 章 类型转换

第 10 章 类型转换 目录 10.1. 概述 10.2. 操作符 10.3. 函数 10.4. 值存储 10.5. UNION、CASE和相关结构 10.6. SELECT 输出列 SQL语句可能(有意无意地)要求在同一表达式里混合不同的数据类型。 PostgreSQL在计算混合类型表达式方面有许多功能。 在大多数情况下,用户...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 10 章 类型转换_10.6. SELECT 输出列

10.6. SELECT 输出列 前面几节中给出的规则将导致为SQL查询中的所有表达式分配非unknown数据类型, 除非未指定类型文字显示为SELECT命令的简单输出列。例如,在 SELECT 'Hello World'; 没有什么可以确定字符串文字应被视为什么类型。在这种情况下, PostgreSQL会退回到将文本类型解析为text。 当SELECT是UNION(...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 10 章 类型转换_10.5. UNION、CASE和相关结构

10.5. UNION、CASE和相关结构 SQL UNION结构必须使可能不相似的类型匹配成为一个单一的结果集。该决定算法被独立地应用到一个联合查询的每个输出列。 INTERSECT和EXCEPT采用和UNION相同的方法来决定不相似的类型。CASE、ARRAY、VALUES、GREATEST和LEAST结构使用相同的算法来使它们的组成表达式匹配并选择一种结果数据类...

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

PostgreSQL 10.1 手册_部分 II. SQL 语言_第 10 章 类型转换_10.4. 值存储

10.4. 值存储 将被插入到一个表的值会按照下列步骤被转换到目标列的数据类型。 值存储类型转换 检查一个与目标的准确匹配。 否则,尝试转换表达式为目标类型。如果在两种类型之间的一个 赋值造型已经被注册在pg_cast 目录(见CREATE CAST)中, 这是可能的。或者,如果该表达式是一个未知类型的文字, 则该文字串的内容将被提供给目标类型的输入转换例程。 检查是...

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

产品推荐

数据库

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

+关注