0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PostgreSQL中可用的各种数据类型

科技绿洲 来源:TinyZ 作者:TinyZ 2023-09-19 14:08 次阅读

PostgreSQL是一种功能强大的开源关系型数据库管理系统,具有广泛的数据类型支持。在本教程中,我们将介绍PostgreSQL中可用的各种数据类型,包括数值、字符串、几何、时间、日期、布尔、货币和json类型。

数值类型

PostgreSQL支持各种数值类型,包括整数、小数和浮点数。下面是一些常见的数值类型及其有效值范围。

整数类型

PostgreSQL支持以下整数类型:

  • smallint:2字节,范围为-32768到+32767
  • integer:4字节,范围为-2147483648到+2147483647
  • bigint:8字节,范围为-9223372036854775808到+9223372036854775807

这些类型可以存储整数值,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    small smallint,
    int integer,
    big bigint
);

INSERT INTO example (small, int, big) VALUES (-32768, 2147483647, 9223372036854775807);

小数类型

PostgreSQL支持以下小数类型:

  • decimal:用户指定的精度和标度,最大精度为131072位,最大标度为16383
  • numeric:用户指定的精度和标度,最大精度为131072位,最大标度为16383
  • real:4字节,单精度浮点数
  • double precision:8字节,双精度浮点数

这些类型可以存储小数值,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    dec decimal(10,2),
    num numeric(10,2),
    r real,
    d double precision
);

INSERT INTO example (dec, num, r, d) VALUES (1234.56, 1234.56, 1234.56, 1234.56);

字符串类型

PostgreSQL支持各种字符串类型,包括固定长度和可变长度字符串。下面是一些常见的字符串类型及其有效值范围。

固定长度字符串类型

PostgreSQL支持以下固定长度字符串类型:

  • char(n):长度为n的固定长度字符串,n的范围是1到10485760
  • character(n):长度为n的固定长度字符串,n的范围是1到10485760

这些类型可以存储固定长度的字符串,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    c char(10),
    ch character(10)
);

INSERT INTO example (c, ch) VALUES ('hello', 'world');

可变长度字符串类型

PostgreSQL支持以下可变长度字符串类型:

  • varchar(n):长度为n的可变长度字符串,n的范围是1到10485760
  • character varying(n):长度为n的可变长度字符串,n的范围是1到10485760
  • text:可变长度字符串,最大长度为10485760

这些类型可以存储可变长度的字符串,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    v varchar(10),
    cv character varying(10),
    t text
);

INSERT INTO example (v, cv, t) VALUES ('hello', 'world', 'hello world');

几何类型

PostgreSQL支持各种几何类型,包括点、线、多边形和圆。下面是一些常见的几何类型及其有效值范围。

点类型

点类型表示二维平面中的一个点,由x和y坐标组成。PostgreSQL支持以下点类型:

  • point:由x和y坐标组成的点

这些类型可以存储点坐标,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    p point
);

INSERT INTO example (p) VALUES ('(1,2)');

线类型

线类型表示二维平面中的一条线,由起点和终点坐标组成。PostgreSQL支持以下线类型:

  • line:由起点和终点坐标组成的线
  • lseg:由起点和终点坐标组成的线段
  • box:由左下和右上角坐标组成的矩形框

这些类型可以存储线段和矩形框,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    l line,
    ls lseg,
    b box
);

INSERT INTO example (l, ls, b) VALUES ('[(1,2),(3,4)]', '[(1,2),(3,4)]', '((1,2),(3,4))');

多边形类型

多边形类型表示二维平面中的一个多边形,由一组点坐标组成。PostgreSQL支持以下多边形类型:

  • path:由一组点坐标组成的多边形
  • polygon:由一组点坐标组成的封闭多边形

这些类型可以存储多边形,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    pa path,
    po polygon
);

INSERT INTO example (pa, po) VALUES ('((1,2),(3,4),(5,6))', '((1,2),(3,4),(5,6))');

圆类型

圆类型表示二维平面中的一个圆,由圆心坐标和半径组成。PostgreSQL支持以下圆类型:

  • circle:由圆心坐标和半径组成的圆

这些类型可以存储圆,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    c circle
);

INSERT INTO example (c) VALUES ('< (1,2),3 >');

时间类型

PostgreSQL支持各种时间类型,包括日期、时间和时间戳。下面是一些常见的时间类型及其有效值范围。

日期类型

日期类型表示一个日期,由年、月和日组成。PostgreSQL支持以下日期类型:

  • date:日期类型,范围为0001-01-01到5874897-12-31

这些类型可以存储日期,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    d date
);

INSERT INTO example (d) VALUES ('2022-01-01');

时间类型

时间类型表示一天中的时间,由小时、分钟和秒组成。PostgreSQL支持以下时间类型:

  • time:时间类型,范围为00:00:00到24:00:00
  • time with time zone:带时区的时间类型,范围为00:00:00到24:00:00

这些类型可以存储时间,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    t time,
    tz time with time zone
);

INSERT INTO example (t, tz) VALUES ('12:34:56', '12:34:56+08');

时间戳类型

时间戳类型表示日期和时间的组合,由年、月、日、小时、分钟和秒组成。PostgreSQL支持以下时间戳类型:

  • timestamp:时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59
  • timestamp with time zone:带时区的时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59

这些类型可以存储日期和时间,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    ts timestamp,
    tsz timestamp with time zone
);

INSERT INTO example (ts, tsz) VALUES ('2022-01-01 12:34:56', '2022-01-01 12:34:56+08');

日期类型

PostgreSQL支持各种日期类型,包括日期、时间和时间戳。下面是一些常见的日期类型及其有效值范围。

日期类型

日期类型表示一个日期,由年、月和日组成。PostgreSQL支持以下日期类型:

  • date:日期类型,范围为0001-01-01到5874897-12-31

这些类型可以存储日期,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    d date
);

INSERT INTO example (d) VALUES ('2022-01-01');

时间类型

时间类型表示一天中的时间,由小时、分钟和秒组成。PostgreSQL支持以下时间类型:

  • time:时间类型,范围为00:00:00到24:00:00
  • time with time zone:带时区的时间类型,范围为00:00:00到24:00:00

这些类型可以存储时间,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    t time,
    tz time with time zone
);

INSERT INTO example (t, tz) VALUES ('12:34:56', '12:34:56+08');

时间戳类型

时间戳类型表示日期和时间的组合,由年、月、日、小时、分钟和秒组成。PostgreSQL支持以下时间戳类型:

  • timestamp:时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59
  • timestamp with time zone:带时区的时间戳类型,范围为0001-01-01 00:00:00到294276-12-31 23:59:59

这些类型可以存储日期和时间,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    ts timestamp,
    tsz timestamp with time zone
);

INSERT INTO example (ts, tsz) VALUES ('2022-01-01 12:34:56', '2022-01-01 12:34:56+08');

布尔类型

PostgreSQL支持布尔类型,表示真或假。以下是布尔类型的有效值:

  • true:真
  • false:假

这些类型可以存储布尔值,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    b boolean
);

INSERT INTO example (b) VALUES (true);

货币类型

PostgreSQL支持货币类型,表示货币值。以下是货币类型的有效值:

  • money:货币类型,范围为-92233720368547758.08到+92233720368547758.07

这些类型可以存储货币值,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    m money
);

INSERT INTO example (m) VALUES ('$1234.56');

JSON类型

PostgreSQL支持JSON类型,可以存储JSON格式的数据。以下是JSON类型的有效值:

  • json:JSON类型,存储JSON格式的数据
  • jsonb:二进制JSON类型,存储JSON格式的数据

这些类型可以存储JSON格式的数据,例如:

CREATE TABLE example (
    id serial PRIMARY KEY,
    j json,
    jb jsonb
);

INSERT INTO example (j, jb) VALUES ('{"name": "John", "age": 30}', '{"name": "John", "age": 30}');

总结

本教程介绍了PostgreSQL中可用的各种数据类型,包括数值、字符串、几何、时间、日期、布尔、货币和json类型。熟悉这些数据类型及其有效值范围可以帮助您更好地使用PostgreSQL。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    12

    文章

    3856

    浏览量

    84660
  • 数值
    +关注

    关注

    0

    文章

    79

    浏览量

    14290
  • 数据类型
    +关注

    关注

    0

    文章

    227

    浏览量

    13496
  • postgresql
    +关注

    关注

    0

    文章

    19

    浏览量

    201
收藏 人收藏

    评论

    相关推荐

    GaussDB 数据类型介绍

    GaussDB 数据库 GaussDB 是华为基于 openGauss 自研生态推出的云化企业级分布式关系型数据库,它支持多种数据类型,包括数值、字符、日期等。在使用 GaussDB 时,可能需要
    的头像 发表于 06-05 16:40 1273次阅读
    GaussDB <b class='flag-5'>数据类型</b>介绍

    labview各种数据类型及转换解析

    评点:本讲义详细介绍了LabVIEW的一些常用数据类型,如String、Numeric、Boolean等,以及它们直接该如何转换等技巧。[hide] [/hide]
    发表于 11-16 10:25

    Labview各种数据类型

    Labview各种数据类型
    发表于 12-11 11:27

    超实用的读写ini文件VI,支持各种数据类型

    支持各种数据类型的读写ini文件
    发表于 02-18 09:58

    Python中常用的数据类型

    字符串在Python,加了引号的字符都被认为是字符串,其声明有三种方式,分别是:单引号、双引号和三引号;Python的字符串有两种数据类型,分别是str类型和unicode
    发表于 04-19 15:14

    FPGA的VHDL语言的数据类型和运算符

    VHDL 和其他高级语言一样,具有多种数据类型。对大多数数据类型的定义两者是一致的(例如整数型),但是也有一些数据类型是 VHDL 所独有的。表 2-2 所示为 VHDL 支持的数据类型
    发表于 09-10 10:09

    1.2FreeRTOS数据类型

    1.2FreeRTOS数据类型2017.2.1书zzwFreeRTOS 主要自定义了以下四种数据类型:TickType_t如果用户使能了宏定义configUSE_16_BIT_TICKS,那么
    发表于 07-22 23:27

    如何获取F28335各种数据类型所占的字节数?

    如何获取F28335各种数据类型所占的字节数?
    发表于 10-22 06:59

    嵌入式开发的C语言代码数据类型

    在嵌入式开发的C语言代码,经常可以看到类似uint8_t、uint16_t、uint32_t、uint64_t这种数据类型,在教材却从来没见过。实际上这些
    发表于 12-15 07:43

    C语言各种数据类型的内存映像

      C语言各种数据类型的内存映像(32位平台): 0 signed char   #include stdio.hint main(){    char min = 17;    char max
    的头像 发表于 07-06 14:49 817次阅读

    type( ) 函数查询数据类型是什么

    常用的3种数据类型: Python数据类型第一种:字符串(str)。 Python数据类型第二种:整数(int)。 Python数据类型第三种:浮点数(float)。
    的头像 发表于 02-23 14:59 1576次阅读

    什么是数据类型转换

    常用的3种数据类型:1、Python数据类型第一种:字符串(str)。 2、Python数据类型第二种:整数(int)。 3、Python数据类型第三种:浮点数(float)。
    的头像 发表于 02-23 15:21 578次阅读

    Verilog最常用的2种数据类型

    Verilog 最常用的 2 种数据类型就是线网(wire)与寄存器(reg),其余类型可以理解为这两种数据类型的扩展或辅助。
    的头像 发表于 05-29 16:27 1213次阅读
    Verilog最常用的2<b class='flag-5'>种数据类型</b>

    Redis的数据类型有哪些

    用的一种数据类型,普通的key- value 存储都可以归为此类。其中Value既可以是数字也可以是字符串。使用场景:常规key-value缓存应用。常规计数: 微博数, 粉丝数。 2、Hash:Hash 是一个键值(
    的头像 发表于 10-09 10:51 403次阅读

    redis的五种数据类型

    Redis是一种高性能的内存数据库,常用于缓存、任务队列、分布式锁等场景。它提供了多种数据类型来满足各种不同的需求,包括字符串(string)、哈希(hash)、列表(list)、集合(set
    的头像 发表于 11-16 11:06 345次阅读