PostgreSQL
文章平均质量分 72
DBA圈小圈
这个作者很懒,什么都没留下…
展开
-
【PostgreSQL】数据查询-XML 函数
有一组函数和类函数的表达式可以用来从 SQL 数据产生 XML 内容。它们特别适合于将查询结果格式化成 XML 文档以便于在客户端应用中处理。原创 2024-01-20 00:15:00 · 1331 阅读 · 0 评论 -
【PostgreSQL】数据查询-文本搜索函数和操作符
操作符返回类型描述例子结果@@booleantsvector匹配tsquery吗?t@@@boolean@@的已废弃同义词t||tsvector连接tsvector&&tsquery将tsquery用 AND 连接起来||tsquery将tsquery用 OR 连接起来!!tsquery对一个tsquery取反!!!'cat'tsquerytsquery后面跟着tsquery@>booleantsquery包含另一个?f原创 2024-01-20 00:15:00 · 1806 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-网络地址函数和操作符
下表展示了可以用于cidr和inet类型的操作符。操作符=和&&测试用于子网包含。它们只考虑两个地址的网 络部分(忽略任何主机部分),然后判断其中一个网络部分是等于另外一个或者是 另外一个的子网。cidr。原创 2024-01-21 00:15:00 · 1019 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-几何函数和操作符
几何类型pointboxlseglinepathpolygon和circle有一大。原创 2024-01-19 00:15:00 · 1767 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-枚举支持函数
外, 这些函数忽略传递给它们的具体值,它们只关心声明的数据类型。空值或类型的一个特定值可以通过,并得到相同的结果。这些函数更多地被用于一个表列或函数参数,而不是一个硬写的类型名,如例子中所建议。以一个数组返回在给定两个枚举值之间的范围。如果第一个参数为空,其结果将从枚举类型的第一个值开始。如果第二参数为空,其结果将以枚举类型的最后一个值结束。对于枚举类型, 有一些函数允许更清洁的编码,而不需要为一个枚举类型硬写特定的值。将输入枚举类型的所有值作为一个有序的数组返回。返回输入枚举类型的最后一个值。原创 2024-01-19 00:15:00 · 436 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-时间/日期函数和操作符
EXTRACTdate_part操作符例子结果函数返回类型描述例子结果interval减去参数,生成一个使用年、月(而不是只用日)的“符号化”的结果43 年 9 月 27 日interval从current_date(在午夜)减去当前日期和时间(在语句执行期间变化);date当前日期;当前时间(一天中的时间);当前日期和时间(当前事务开始时);获得子域(等价于extract);20获得子域(等价于extract);3timestamp。原创 2024-01-18 00:15:00 · 1292 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-数据类型格式化函数
如果在模板字符串中有不是模板模式的字符,输入数据字符串中的对应字符会被简单地跳过(不管它们是否等于模板字符串字符)。之类的非数据模板模式,相应数量的输入字符会被跳过,不管它们是否匹配模板模式,除非它们是数据字符(也就是数位、负号、小数点或者逗号)。的模板字符串中的分隔符(一个空格或非字母/非数字字符)与输入字符串中的任何一个分隔符相匹配,或者被跳过,除非使用了。的模式中的一个负号,如果没有明确的规定,将为该负号保留一列,并且它将被锚接到(出现在左边)那个数字。选项,减号可能是模糊的,可能被解释为分隔符。原创 2024-01-18 00:15:00 · 1061 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-模式匹配
PostgreSQL提供了三种独立的实现模式匹配的方法:SQLLIKE操作符、更近一些的SIMILAR TO操作符(SQL:1999 里添加进来的)和POSIX-风格的正则表达式。除了这些基本的“这个串匹配这个模式吗?”操作符外,还有一些函数可用于提取或替换匹配子串并在匹配位置分离一个串。这三种类型的模式匹配算子都不支持非确定性拼贴。如果需要的话,可以在表达式中应用不同的拼贴来绕过这个限制。原创 2024-01-17 00:15:00 · 1320 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-位串函数和操作符
的值的函数和操作符。除了常用的比较操作符之外,还可以使用下表里显示的操作符。下面的SQL标准函数除了可以用于字符串之外,也可以用于位串: length。的位串操作数必须等长。在移位的时候,保留原始的位串的的长度,如例子所示。下面的函数除了可以用于二进制串之外,也可以用于位串: get_bit。当使用于一个位串时,这些函数将串的第一(最左)位计数为位 0。描述用于检查和操作位串的函数和操作符,也就是操作类型为。请注意,如果只是转换为“bit”,意思是转换成。,因此只会转换整数的最低有效位。原创 2024-01-17 00:15:00 · 749 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-字符串函数和操作符
format本节描述了用于检查和操作字符串值的函数和操作符。在这个环境中的串包括所有类型character和text的值。除非另外说明,所有下面列出的函数都可以处理这些类型,不过要小心的是,在使用character类型的时候, 它有自动填充空白的潜在影响。有些函数还可以处理位串类型。SQL定义了一些字符串函数,它们使用关键字,而不是逗号来分隔参数。详情请见下表,PostgreSQL也提供了这些函数使用正常函数调用语法的版本。string||stringtext串接PostgreSQL。原创 2024-01-16 00:15:00 · 1066 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-数学函数和操作符
PostgreSQL提供了许多数学函数和操作符,以处理数值数据。原创 2024-01-16 00:15:00 · 901 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-比较函数和操作符
由于这种行为,IS NULL和IS NOT NULL并不总是为行值表达式返回反转的结果,特别是,一个同时包含 NULL 和非空值的域将会对两种测试都返回假。不过,如果两个输入都为空,它会返回假。类似地,IS NOT DISTINCT FROM对于非空输入的行为与=相同,但是当两个输入都为空时它返回真,并且当只有一个输入为空时返回假。不要写expression = NULL,因为NULL是不“等于”NULL的(控制代表一个未知的值,因此我们无法知道两个未知的数值是否相等)。如下表所示,也有一些比较谓词。原创 2024-01-13 13:40:55 · 1248 阅读 · 0 评论 -
【PostgreSQL】函数与操作符-逻辑操作符
SQL使用三值的逻辑系统,包括真、假和null,null表示“未知”。作符AND和OR是可交换的,也就是说,你可以交换左右操作数而不影响结果。原创 2024-01-15 00:15:00 · 531 阅读 · 0 评论 -
【PostgreSQL】数据查询-WITH查询(公共表表达式)
WITH提供了一种方式来书写在一个大型查询中使用的辅助语句。这些语句通常被称为公共表表达式或CTE,它们可以被看成是定义只在一个查询中存在的临时表。在WITH子句中的每一个辅助语句可以是一个SELECT、INSERT、UPDATE或DELETE,并且WITH子句本身也可以被附加到一个主语句,主语句也可以是SELECT、INSERT、UPDATE或DELETE。原创 2024-01-15 00:15:00 · 2157 阅读 · 0 评论 -
【PostgreSQL】数据查询-VALUES
默认情况下,PostgreSQL 将名称 、 等分配给表的列。SQL 标准未指定列名,不同的数据库系统以不同的方式指定列名,因此通常最好使用表别名列表覆盖默认名称,如下所示:column1 column2 VALUES。所有列表必须具有相同数量的元素(即表中的列数),并且每个列表中的相应条目必须具有兼容的数据类型。分配给结果每列的实际数据类型使用与 相同的规则确定。PostgreSQL中VALUES提供了一种生成“常量表”的方法,该表可在查询中使用,而无需在磁盘上实际创建和填充表。原创 2024-01-14 00:15:00 · 540 阅读 · 0 评论 -
【PostgreSQL】数据查询-LIMIT AND OFFSET
查询优化器在生成查询计划时会考虑在内,因此您很可能会获得不同的计划(产生不同的行顺序),具体取决于您为 LIMIT和LIMIT OFFSET 提供的内容。因此,使用不同的LIMIT OFFSET / ORDER BY值来选择查询结果的不同子集将产生不一致的结果,除非使用ORDER BY强制执行可预测的结果排序。这是 SQL 不承诺以任何特定顺序传递查询结果这一事实的固有结果,除非用于约束顺序。如果给出了限制计数,则返回的行数不会超过该数(但如果查询本身生成的行数较少,则返回的行数可能会更少)。原创 2024-01-14 00:15:00 · 571 阅读 · 0 评论 -
【PostgreSQL】数据查询- 对结果进行排序 (ORDER BY)
当指定了多个表达式时,后面的值用于根据前面的值对相等的行进行排序。在这种情况下,实际顺序将取决于扫描和联接计划类型以及磁盘上的顺序,但不能依赖它。如果项是可以与输出列名称或表表达式中的列匹配的简单名称,则仍然存在歧义。ORDER BY可以应用于 UNION、INTERSECT EXCEPT 或组合的结果,但在这种情况下,只允许按输出列名或数字排序,而不允许按表达式排序。请注意,对于每个排序列,排序选项是独立考虑的。例如,表示 ,这与 不同。排序表达式可以是在查询的选择列表中有效的任何表达式。原创 2024-01-13 00:15:00 · 979 阅读 · 0 评论 -
【PostgreSQL】数据查询-组合查询(UNION,INTERSECT,EXCEPT)
UNION有效地将 query2 的结果追加到 query1 的结果(尽管不能保证这是实际返回行的顺序)。此外,它从其结果中消除重复的行,其方式与DISTINCT 相同,除非使用UNION ALL。如果查询需要使用以下各节中讨论的任何子句,例如 .如果没有括号,您将收到语法错误,否则该子句将被理解为应用于集合操作的输出,而不是其输入之一。同样,除非使用,否则将消除重复项。为了计算两个查询的并集、交集或差值,这两个查询必须“并集兼容”,这意味着它们返回相同数量的列,并且相应的列具有兼容的数据类型。原创 2024-01-13 00:15:00 · 786 阅读 · 0 评论 -
【PostgreSQL】数据查询-选择列表
命令中的表表达式通过可能组合表、视图、消除行、分组等来构造中间虚拟表。此表最终由选择列表进行处理。选择列表确定实际输出中间表的哪些列。原创 2024-01-12 11:23:23 · 1183 阅读 · 0 评论 -
【PostgreSQL】数据查询-表的表达式
fdt是子句中派生的表。表引用可以是表名(可能是架构限定的),也可以是派生表,例如子查询、构造或它们的复杂组合。虽然生成 T1 中的所有列,然后生成 T2 中的所有列,则为列出的每个列对生成一个输出列(按列出的顺序),然后是 T1 中的任何剩余列,然后是 T2 中的任何剩余列。然后,对于 T1 中不满足 T2 中任何行的联接条件的每一行,将在 T2 的列中添加一个具有 null 值的联接行。此外,对于不满足 T1 中任何行的联接条件的 T2 的每一行,将添加一个在 T1 的列中具有 null 值的联接行。原创 2024-01-12 03:15:00 · 924 阅读 · 0 评论 -
【PostgreSQL】数据查询-概述
假设有一个名为table1的表,此命令将从table1中检索所有行和所有用户定义的列。例如*,psql 程序将在屏幕上显示一个 ASCII 艺术表,而客户端库将提供从查询结果中提取单个值的函数。选择列表规范是指表表达式恰好提供的所有列。选择列表还可以选择可用列的子集或使用列进行计算。SELECT FROM table1是一种简单的表表达式:它只读取一个表。通常,表表达式可以是基表、联接和子查询的复杂构造。检索或从数据库中检索数据的命令的过程称为查询。如果选择列表中的表达式返回不同的结果,这将更有用。原创 2024-01-11 22:40:44 · 718 阅读 · 0 评论 -
【PostgreSQL】数据操作
创建表时,它不包含任何数据。在数据库派上用场之前,首先要做的就是插入数据。数据一次插入一行。您也可以在单个命令中插入多行,但不能插入非完整行的内容。即使您只知道一些列值,也必须创建一个完整的行。要创建新行,请使用 INSERT 命令。该命令需要表名和列值。数据值按列在表中的显示顺序列出,以逗号分隔。通常,数据值将是文本(常量),但也允许使用标量表达式。上面的语法有一个缺点,即您需要知道表中列的顺序。为避免这种情况,还可以显式列出列。许多用户认为始终列出列名是一种很好的做法。原创 2024-01-11 00:15:42 · 1052 阅读 · 0 评论 -
【PostgreSQL】外部数据
PostgreSQL 实现了 SQL/MED 规范的部分内容,允许您使用常规 SQL 查询访问驻留在 PostgreSQL 外部的数据。此类数据称为外部数据。(请注意,不要将此用法与外键混淆,外键是数据库中的一种约束。外部数据是在外部数据包装器的帮助下访问的。外部数据包装器是一个库,可以与外部数据源进行通信,隐藏连接到数据源并从中获取数据的详细信息。有一些外部数据包装器可作为模块使用;。其他类型的外部数据包装器可能会被发现为第三方产品。原创 2024-01-10 23:31:28 · 1339 阅读 · 0 评论 -
【PostgreSQL】表管理-分区表
分区是指将逻辑上一个大表拆分为较小的物理部分。通常,只有当一张桌子非常大时,这些好处才是值得的。表从分区中获益的确切时间点取决于应用程序,但经验法则是表的大小应超过数据库服务器的物理内存。原创 2024-01-09 14:11:17 · 1061 阅读 · 0 评论 -
【PostgreSQL】表管理-表继承
PostgreSQL 实现了表继承,这对于数据库设计人员来说是一个有用的工具。(SQL:1999 及更高版本定义了类型继承功能,该功能在许多方面与此处描述的功能不同。让我们从一个例子开始:假设我们正在尝试为城市构建一个数据模型。每个州都有许多城市,但只有一个首府。我们希望能够快速检索任何特定州的首都。这可以通过创建两个表来完成,一个用于州首府,另一个用于非首府城市。但是,当我们想询问有关一个城市的数据时,无论它是否是首都,会发生什么?继承功能可以帮助解决此问题。原创 2024-01-09 13:10:51 · 1152 阅读 · 0 评论 -
【PostgreSQL】模式Schema
PostgreSQL 数据库集群包含一个或多个命名数据库。角色和一些其他对象类型在整个集群中共享。与服务器的客户端连接只能访问单个数据库中的数据,该数据库在连接请求中指定。数据库包含一个或多个命名schema,而这些schema又包含表。schema还包含其他类型的命名对象,包括数据类型、函数和运算符。相同的对象名称可以在不同的架构中使用而不会发生冲突;例如,both 和myschema可以包含名为mytable的表。原创 2024-01-06 21:05:16 · 1335 阅读 · 0 评论 -
【KingbaseES】实现MySql函数TEXT_EQUAL
【代码】【KingbaseES】实现MySql函数TEXT_EQUAL。原创 2024-01-06 00:15:00 · 467 阅读 · 0 评论 -
【KingbaseES】实现MySql函数WEEKS_BETWEEN
【代码】【KingbaseES】实现MySql函数WEEKS_BETWEEN。原创 2024-01-05 02:45:00 · 393 阅读 · 0 评论 -
【KingbaseES】实现MySql函数WEERDAY
【代码】【KingbaseES】实现MySql函数WEERDAY。原创 2024-01-05 02:45:00 · 381 阅读 · 0 评论 -
【KingbaseES】实现MySql函数Field
【代码】【KingbaseES】实现MySql函数Field。原创 2024-01-05 02:30:00 · 406 阅读 · 0 评论 -
【KingbaseES】实现MySql函数ADD_DAYS AND ADD_WEEKS
【代码】【KingbaseES】实现MySql函数ADD_DAYS AND ADD_WEEKS。原创 2024-01-05 02:30:00 · 352 阅读 · 0 评论 -
【KingbaseES】实现MySql函数sec_to_time AND time_to_sec
【代码】【KingbaseES】实现MySql函数sec_to_time AND time_to_sec。原创 2024-01-04 22:17:48 · 466 阅读 · 0 评论 -
【KingbaseES】实现MySql函数Median
本方法只支持在聚合函数窗口中调用 不支持在GROUP BY中使用,使用plsql写的玩意新能都会稍微差一些 建议使用原生方法修改。原创 2024-01-04 22:14:56 · 501 阅读 · 0 评论 -
【KingbaseES】实现MySql函数Space
【代码】【KingbaseES】实现MySql函数Space。原创 2024-01-04 22:11:23 · 477 阅读 · 0 评论 -
【KingbaseES】实现MySql函数len
原理:调用length函数返回到结果中。原创 2024-01-04 22:09:56 · 331 阅读 · 0 评论 -
【PostgreSQL】表操作-表权限
创建对象时,会为其分配所有者。所有者通常是执行创建语句的角色。对于大多数类型的对象,初始状态是只有所有者(或超级用户)才能对对象执行任何操作。要允许其他角色使用它,必须授予权限。有不同种类的特权:SELECT、INSERT、UPDATE、DELETE、TRUNCATE和REFERENCES。适用于特定对象的权限因对象的类型(表、函数等)而异。有关这些特权含义的更多详细信息如下所示。以下各节和章节还将向您展示如何使用这些权限。原创 2024-01-02 09:06:21 · 1418 阅读 · 0 评论 -
【PostgreSQL】表操作-修改表
新列最初填充给定的任何默认值DEFAULT(如果未指定子句,则为 null)。注意:从 PostgreSQL 11 开始,添加ALTER TABLE具有常量默认值的列不再意味着在执行语句时需要更新表的每一行。相反,默认值将在下次访问该行时返回,并在重写表时应用,即使在大型表上也非常快。但是,如果默认值是可变的(例如clock_timestamp()),ALTER TABLE则需要使用执行时计算的值更新每一行。原创 2024-01-02 00:06:05 · 770 阅读 · 0 评论 -
【PostgreSQL】从零开始:(四十二)系统列
在实践中,此限制不是问题 - 请注意,限制是针对 SQL 命令的数量,而不是处理的行数。PostgreSQL 中的系统列是一组特殊的列,用于存储关于表和视图的元数据信息。xmin 和 xmax:这些列用于记录行的事务信息。xmin 表示创建行的事务 ID,xmax 表示删除或更新行的事务 ID。cmin 表示插入行的事务 ID,cmax 表示删除或更新行的事务 ID。xmin、xmax、cmin 和 cmax 这四个列通常与 MVCC(多版本并发控制)相关联,用于跟踪行的状态和版本信息。原创 2024-01-01 23:50:25 · 678 阅读 · 0 评论 -
【PostgreSQL】约束-排他约束
排他约束是一种数据库约束,用于确保某一列或多个列中的值在每一条记录中都是唯一的。这意味着任何两条记录都不能具有相同的值。排他约束可以在数据库中创建唯一索引或唯一约束来实现。当尝试插入或更新数据时,如果违反了排他约束,数据库将会拒绝操作并返回一个错误消息。排他约束在数据库中的应用非常广泛,特别是在需要确保数据的唯一性的情况下。例如,在用户表中,可以使用排他约束确保用户名的唯一性。这样可以防止多个用户使用相同的用户名注册。另外,排他约束还可以在数据关系中确保数据完整性。原创 2024-01-01 18:07:05 · 761 阅读 · 0 评论 -
【PostgreSQL】约束-外键
CREATE TABLE 表名 (列名 数据类型,...外键列名 数据类型 REFERENCES 参考表名 (参考列名)原创 2023-12-31 00:15:00 · 1588 阅读 · 0 评论