文章目录

  • 类型介绍
  • 布尔类型
  • 数值类型
  • 整数类型
  • 精确的小数类型
  • 枚举类型
  • 枚举类型说明


类型介绍

布尔类型、数值类型、字符类型、二进制数据类型、位串类型、日期和时间类型、枚举类型、几何类型、网络地址类型、数组类型、复合类型、xml类型、json类型、range类型、对象标识符类型、伪类型、其他类型。

布尔类型

boolean类型的状态true,false。如果是 unknown 未知状态,用NUll表示。

数值类型

数值类型列表

类型名称

存储空间

描述

范围

smallint

2字节

小范围整数

-215~215-1

int或integer

4字节

最常用的整数

-231~231-1

bigint

8字节

大范围的函数

-263~263-1

numeric或decimal

变长

用户声明的指定的精度,精确

无限制

real

4字节

变精度,不精确

6位十进制数字精度

double precision

8字节

变精度,不精确

15位十进制数字精度

serial

4字节

自增整数

1~2的31次方-1

bigserial

8字节

大范围的自增函数

1~2的63次方-1

整数类型

分为三种:smallint、int、bigint。
数据库建表及mybatis逆向生成model时,int和integer和int4是等效的、smallint和int2是等效的、bigint和int8是等效的。
int8逆向生成后是javaType会是java.lang.Long、int4是Integer、int2是Short。

精确的小数类型

分为:numeric、numeric(m,n)、numeric(m)。
适用于货币金额和其他要求精确计算的场合,不过在算术运算上要比整数类型和浮点数类型慢很多。
语法:NUMERIC (precision, scale)
其中,精度precision必须为正数,标度scale可以为零或正数。

枚举类型

与MySQL中不同,在PostgreSQL中要使用枚举类型需要先使用CREATETYPE创建一个枚举类型。见下面的例子。
先建一个“week” 的枚举类型,

CREATE TYPE week AS ENUM
('Sun', 'Mon', 'Tues','Wed', 'Thur', 'Fri', 'Sat');

然后在建表的时候给字段加上字段类型 week:

CREATE TABLE duty (person text, weekday week) ;

在psql中可以使用“\dT” 命令查看枚举类型的定义:

\dT + week

枚举类型说明

  1. 在枚举类型中,值的顺序是创建枚举类型时定义的顺序。
    比如上面中建的 week ,最小值是Sun,最大值是Sat。
  2. 每个枚举类型都是独立的,不能与其他枚举类型混用。
  3. 一个枚举值在磁盘上占4字节。
  4. 枚举类型的值是大小写敏感的