探索PostgreSQL的数据类型世界

发表时间: 2023-04-06 21:13

PostgreSQL 数据类型

PostgreSQL数据库支持各种数据类型,以及它与其他数据库的差异。通过以下比较信息,大家会发现,PostgreSQL 数据库支持的数据类型要远比其他数据库多。

Postgre SQL 数据库数据类型

PostgreSQL支持的数据类型分类

1, PostgreSQL 布尔类型

PostgreSQL支持SQL标准的boolean数据类型,与MySQL的BOOL、BOOLEAN类型相同,使用一字节存储空间

2,PostgreSQL 数值类型

整数类型有2字节的smallint、4字节的int、8字节的bigint,十进制精确类型有numeric,浮点类型有real和double precision。还有8字节的货币(money)类型。

无MYSQL的unsigned整数类型类型,也无MYSQL 1字节长的tinyint整数类型和3字节长的mediumint 整数类型

3,PostgreSQL 字符类型

有varchar(n)、char(n)、text 三种类型

PostgreSQL 中的varchar(n) 最大可以存储1GB, 而MySQL中的varchar(n) 最大只能是64KB。PostgreSQL 中的text 类型相当于MySQL中的LONGTEXT类型

4,PostgreSQL 二进制数据类型

只有一种bytea

对应MySQL的 BLOB 和 LONGBLOB 类型

5,PostgreSQL 位串类型

位串就是一串1和0的字符串,有bit(n)、bit varying(n) 两种

其他数据库没有此类型

6,PostgreSQL 日期和时间

有date、time、timestam,而time和times-tamp 又分是否包含时区的两种类型

在PostgreSQL中,可以精确到秒以下,如毫秒。而MySQL 5.5 之前的版本最多只能精确到秒,其日期时间的范围也与MySQL差异较大

7,PostgreSQL 枚举类型

枚举类型是一种包含了一系列有序静态值集合的数据类型,等于某些编程语言中的enum类型。

PostgreSQL使用枚举类型前需要先使用CREATE TYPE 创建这个类型;MySQL也有枚举类型(ENUM)

8,PostgreSQL 几何类型

包括了点(point)、直线(line)、线段(lseg)、路径(path)、多边形(polygon)、圆(cycle)等类型

PostgreSQL 特有的类型,其他数据库一般没有此类型,可以认为是一种数据库内置的自定义类型

9,PostgreSQL 网络地址类型

有cidr、inet、macaddr 三种类型

PostgreSQL 特有的类型,其他数据库一般没有此类型,可以认为是一种数据库内置的自定义类型

10,PostgreSQL 数据类型

可以存储一个数据

PostgreSQL 特有的类型,,其他数据库一般没有此类型

11,PostgreSQL 复合类型

可以把已有的简单类型组合成用户自定义的类型,就如C 语言中的结构体一样

对应其他数据库的自定义类型

12,PostgreSQL xml 类型

可以存储XML 数据的类型

13,PostgreSQL json 类型

可以存储json类型的数据

14,PostgreSQL range 类型

范围类型,可以存储范围数据

15,PostgreSQL 对象标识符类型

PostgreSQL内部标识符对象的类型,如oid 类型、regproc 类型、regclass 类型等

16,PostgreSQL 伪类型

伪类型不能作为字段的数据类型,但是它可以用于声明一个函数的参数或者结果类型。有any、anyarray、anyelement、cstring、internal、language_handler、record、trigger、void、opaque

17,PostgreSQL 其他类型

一些不好分类的类型都放到这里,如UUID类型、pg_lsn 类型

通过上面的说明,相信大家对PostgreSQL 数据类型已经有了一个总体的认识。