• PostgreSql 数据类型


    数值类型

    数值类型由 2 字节、4 字节或 8 字节的整数以及 4 字节或 8 字节的浮点数和可选精度的十进制数组成。

    名字 存储长度 描述 范围
    smallint 2 字节 小范围整数 -32768 到 +32767
    integer 4 字节 常用的整数 -2147483648 到 +2147483647
    bigint 8 字节 大范围整数 -9223372036854775808 到 +9223372036854775807
    decimal 可变长 用户指定的精度,精确 小数点前 131072 位;小数点后 16383 位
    numeric 可变长 用户指定的精度,精确 小数点前 131072 位;小数点后 16383 位
    real 4 字节 可变精度,不精确 6 位十进制数字精度
    double precision 8 字节 可变精度,不精确 15 位十进制数字精度
    smallserial 2 字节 自增的小范围整数 1 到 32767
    serial 4 字节 自增整数 1 到 2147483647
    bigserial 8 字节 自增的大范围整数 1 到 9223372036854775807

    货币类型

    money 类型存储带有固定小数精度的货币金额。

    numeric、int 和 bigint 类型的值可以转换为 money,不建议使用浮点数来处理处理货币类型,因为存在舍入错误的可能性。

    名字 存储长度 描述 范围
    money 8字节 货币金额 -92233720368547758.08 到 +92233720368547758.07

    字符类型

    序号 描述
    1 character varying(n), varchar(n)变长,有长度限制
    2 character(n), char(n) 定长,不足补空白
    3 text 变长,无长度限制

    日期/时间类型

    名字 存储空间 描述 最低值 最高值 分辨率
    timestamp [ (p) ] [ without time zone ] 8 字节 日期和时间(无时区) 4713 BC 294276 AD 1 毫秒 / 14 位
    timestamp [ (p) ] with time zone 8 字节 日期和时间,有时区 4713 BC 294276 AD 1 毫秒 / 14 位
    date 4 字节 只用于日期 4713 BC 5874897 AD 1 天
    time [ (p) ] [ without time zone ] 8 字节 只用于一日内时间 00:00:00 24:00:00 1 毫秒 / 14 位
    time [ (p) ] with time zone 12 字节 只用于一日内时间,带时区 00:00:00+1459 24:00:00-1459 1 毫秒 / 14 位
    interval [ fields ] [ (p) ] 12 字节 时间间隔 -178000000 年 178000000 年 1 毫秒 / 14 位

    布尔类型

    PostgreSQL 支持标准的 boolean 数据类型。

    boolean 有"true"(真)或"false"(假)两个状态, 第三种"unknown"(未知)状态,用 NULL 表示。

    名称 存储格式 描述
    boolean 1 字节 true/false

    枚举类型

    枚举类型是一个包含静态和值的有序集合的数据类型。

    PostgtesSQL中的枚举类型类似于 C 语言中的 enum 类型。

    与其他类型不同的是枚举类型需要使用 CREATE TYPE 命令创建。

    CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');

    创建一周中的几天,如下所示:

    CREATE TYPE week AS ENUM ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');

    JSON 类型

    json 数据类型可以用来存储 JSON(JavaScript Object Notation)数据, 这样的数据也可以存储为 text,但是 json 数据类型更有利于检查每个存储的数值是可用的 JSON 值。

    对象标识符类型

    PostgreSQL 在内部使用对象标识符(OID)作为各种系统表的主键。

    同时,系统不会给用户创建的表增加一个 OID 系统字段(除非在建表时声明了WITH OIDS 或者配置参数default_with_oids设置为开启)。oid 类型代表一个对象标识符。除此以外 oid 还有几个别名:regproc, regprocedure, regoper, regoperator, regclass, regtype, regconfig, 和regdictionary。

    名字 引用 描述 数值例子
    oid 任意 数字化的对象标识符 564182
    regproc pg_proc 函数名字 sum
    regprocedure pg_proc 带参数类型的函数 sum(int4)
    regoper pg_operator 操作符名 +
    regoperator pg_operator 带参数类型的操作符 *(integer,integer) 或 -(NONE,integer)
    regclass pg_class 关系名 pg_type
    regtype pg_type 数据类型名 integer
    regconfig pg_ts_config 文本搜索配置 english
    regdictionary pg_ts_dict 文本搜索字典 simple

    伪类型

    PostgreSQL类型系统包含一系列特殊用途的条目, 它们按照类别来说叫做伪类型。伪类型不能作为字段的数据类型, 但是它可以用于声明一个函数的参数或者结果类型。 伪类型在一个函数不只是简单地接受并返回某种SQL 数据类型的情况下很有用。

    名字 描述
    any 表示一个函数接受任何输入数据类型。
    anyelement 表示一个函数接受任何数据类型。
    anyarray 表示一个函数接受任意数组数据类型。
    anynonarray 表示一个函数接受任意非数组数据类型。
    anyenum 表示一个函数接受任意枚举数据类型。
    anyrange 表示一个函数接受任意范围数据类型。
    cstring 表示一个函数接受或者返回一个空结尾的 C 字符串。
    internal 表示一个函数接受或者返回一种服务器内部的数据类型。
    language_handler 一个过程语言调用处理器声明为返回language_handler。
    fdw_handler 一个外部数据封装器声明为返回fdw_handler。
    record 标识一个函数返回一个未声明的行类型。
    trigger 一个触发器函数声明为返回trigger。
    void 表示一个函数不返回数值。
    opaque 一个已经过时的类型,以前用于所有上面这些用途。

    转载地址:https://m.runoob.com/postgresql/postgresql-data-type.html

  • 相关阅读:
    牛客(47)求1+2+3+...+n
    牛客(48)不用加减乘除做加法
    【推荐】可编程的热键 AutoHotkey
    【Web】js 简单动画,犯了低级错误
    【分享】JDK8u241 win x64度盘下载
    【Web】开始学Web开发!
    【数组】深析 “数组名称”
    【基础向】浅析 "多(二)维数组" 的三种引用方法
    【一个小错误】通过数组指针引用数组成员
    【网络通信教程】windows 下的 socket API 编程(TCP协议)
  • 原文地址:https://www.cnblogs.com/xx2017/p/15162820.html
Copyright © 2020-2023  润新知