PostgreSQL 事务 - 保证交易的完整性

本文介绍了在 PostgreSQL 中如何开启、提交和回滚事务。

PostgreSQL 提供了丰富的数据类型,包括 数值类型、字符类型、日期时间类型、二进制数据类型、货币类型、布尔类型、枚举类型、JSON 类型、数组类型、集合类型、网址类型、UUID 类型、 XML 类型、区间类型、位字符串类型等。除此之外,您还可以自定义复合类型。

摘要:在本教程中,您将了解**PostgreSQL 数据类型,**包括布尔型、数值型、时间型、数组、json、uuid 和特殊类型。

PostgreSQL 数据类型
PostgreSQL 数据类型

PostgreSQL 数据类型概述

PostgreSQL 支持以下数据类型:

布尔值

一个布尔数据类型可以容纳三个可能的值之一:真,假或空。您可以使用 boolean 或 bool 关键字来声明具有布尔数据类型的列。

当你插入数据到一个布尔列,PostgreSQL 的将其转换为一个布尔值

  • 1 , yes, y, t,true 值转换为 true
  • 0 , no, false,f 值转换为 false 。

当您从布尔列中选择数据时,PostgreSQL 会将这些值转换回例如 t true、 ftofalse 和 spaceto null 。

特点

PostgreSQL 的提供了三种字符数据类型: CHAR(n) , VARCHAR(n) ,和 TEXT

  • CHAR(n) 是带有空格的定长字符。如果插入的字符串比列的长度短,PostgreSQL 会填充空格。如果插入的字符串比列的长度长,PostgreSQL 会报错。
  • VARCHAR(n) 是变长字符串。使用 VARCHAR(n) ,您最多可以存储 n 字符。当存储的字符串短于列的长度时,PostgreSQL 不会填充空格。
  • TEXT 是变长字符串。理论上,文本数据是一个长度不限的字符串。

数字

PostgreSQL 提供两种不同类型的数字:

整数

PostgreSQL 共有三种整数:

  • 小整数 ( SMALLINT) 是 2 字节有符号整数,范围从 -32,768 到 32,767。
  • 整数 ( INT) 是一个 4 字节整数,范围从 -2,147,483,648 到 2,147,483,647。
  • Serial 与 integer 相同,除了 PostgreSQL 会自动生成并将值填充到 SERIAL 列中。这类似于AUTO_INCREMENT MySQL 中的 AUTOINCREMENT 列或 SQLite 中的列。

浮点数

浮点数主要有以下三种类型:

  • float(n) 是一个浮点数,其精度至少为 n,最大为 8 个字节。
  • real 或者 float8 是一个 4 字节的浮点数。
  • numeric 或者numeric(p,s) 是小数点后有s个p位的实数。这 numeric(p,s)是确切的数字。

时态数据类型

时间数据类型允许您存储日期和/或时间数据。PostgreSQL 有五种主要的时态数据类型:

这 TIMESTAMPTZ 是 PostgreSQL 对 SQL 标准时态数据类型的扩展。

数组

在 PostgreSQL,您可以存储阵列的字符串,整数等数组,数组列。该数组在某些情况下会派上用场,例如,存储一周中的几天,一年中的几个月。

JSON

PostgreSQL 提供两种 JSON 数据类型: JSON 和 JSONB 用于存储 JSON 数据。

在 JSON 需要为每个处理重新分析数据类型存储平原 JSON 数据,而 JSONB 数据类型存储 JSON 的二进制格式是更快地处理,但速度慢于插入数据。此外, JSONB 支持索引,这可能是一个优势。

用户名

该 UUID 数据类型允许你存储通过定义通用唯一标识符 RFC 4122 。与这些 UUID 值相比 SERIAL ,这些值保证了更好的唯一性,并可用于隐藏公开的敏感数据,例如 id URL 中的值。

特殊数据类型

除了原始数据类型,PostgreSQL 还提供了几种与几何和网络相关的特殊数据类型。

  • box – 一个长方形的盒子。
  • line – 一组点。
  • point – 一对几何数字。
  • lseg – 线段。
  • polygon – 封闭几何。
  • inet – IP4 地址。
  • macaddr – MAC 地址。

在本教程中,我们向您介绍了 PostgreSQL 数据类型,以便您可以在下一个教程中使用它们来创建表。