问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PostgreSQL 教程:数据类型详解

创作时间:
作者:
@小白创作中心

PostgreSQL 教程:数据类型详解

引用
1
来源
1.
https://www.rockdata.net/zh-cn/tutorial/data-types/

在数据库开发中,正确选择和使用数据类型是确保数据完整性和提高查询效率的关键。PostgreSQL作为功能强大的开源数据库系统,提供了丰富的数据类型以满足各种应用场景的需求。本文将详细介绍PostgreSQL中的主要数据类型,包括布尔型、字符型、数字型、时间型、数组、JSON、UUID以及一些特殊类型。

PostgreSQL 数据类型概述

PostgreSQL支持以下数据类型:

  • 布尔型
  • 字符类型,例如charvarchartext
  • 数字类型,例如整数和浮点数。
  • 时间类型,例如日期、时间、时间戳和时间间隔。
  • 用于存储通用唯一标识符的UUID。
  • 数组,用于存储数组字符串、数字等。
  • JSON和JSONB存储 JSON 数据
  • hstore存储键值对
  • 特殊类型,例如网络地址和几何数据。

布尔型

布尔数据类型可以包含三个可能值之一:true、false 或 null。您可以使用booleanbool关键字来声明具有布尔数据类型的列。

当您将数据插入布尔列时,PostgreSQL 将其转换为布尔值:

  • 1yesyttrue值转换为true
  • 0nofalsef值转换为false

当您从布尔列中查询数据时,PostgreSQL 会将值转换回来,例如t转换为truef转换为false、和space转换为null

字符型

PostgreSQL 提供了三种字符数据类型:

  • CHAR(n)是用空格填充的固定长度字符。如果插入的字符串短于列的长度,PostgreSQL 会填充空格。如果插入的字符串比列的长度长,PostgreSQL 将发出错误。
  • VARCHAR(n)是变长字符串。使用VARCHAR(n),您最多可以存储n字符。当存储的字符串短于列的长度时,PostgreSQL 不会填充空格。
  • TEXT是变长字符串。理论上,text 数据可以是无限长度的字符串。

数值型

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

  • 整数
  • 浮点数

整数

PostgreSQL 中有三种整数:

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

浮点数

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

  • float(n)是一种浮点数,其精度至少为 n,最大为 8 个字节。
  • realfloat8是一个 4 字节浮点数。
  • numericnumeric(p,s)是 p 位的实数,小数点后有 s 个数字。numeric(p,s)是精确的数字。

时间类型

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

  • DATE仅存储日期。
  • TIME存储一天中的时间值。
  • TIMESTAMP存储日期和时间值。
  • TIMESTAMPTZ是一种时区感知的时间戳数据类型。它是带有时区的时间戳(timestamp with time zone) 的缩写。
  • INTERVAL存储时间间隔。

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

数组

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

JSON

PostgreSQL 提供了两种 JSON 数据类型:

  • JSON数据类型存储纯 JSON 数据,每次处理都需要重新解析。
  • JSONB数据类型以二进制格式存储JSON数据,处理速度更快,但插入速度较慢。此外,JSONB支持索引,这也是一个优势。

UUID

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

特殊数据类型

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

  • box – 一个长方形的方框。
  • line – 一组点。
  • point – 一对几何数字。
  • lseg – 一条线段。
  • polygon – 闭合几何。
  • inet – IPv4 地址。
  • macaddr – MAC 地址。

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号