PostgreSQL数据库支持各种数据类型,以及它与其他数据库的差异。通过以下比较信息,大家会发现,PostgreSQL 数据库支持的数据类型要远比其他数据库多。
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 数据类型已经有了一个总体的认识。