PostgreSQL的数据类型有哪些?

数据类型分类

分类名称说明与其他数据库的对比
布尔类型PG支持SQL标准的boolean数据类型与MySQL中的bool、boolean类型相同,占用1字节存储空间
数值类型整数类型有2字节的smallint、4字节的int、8字节的bigint;精确类型的小数有numeric;非精确类型的浮点小数有real和double precision;还有8字节的货币(money)类型无MySQL中的unsigned整数类型,也无MySQL中1字节长的mediumint整数类型
字符类型有varchar(n)、char(n)、text3中类型PG中的varchar(n)最大可以存储1GB,而MySQL中的varchar(n)最大只能是64KB。PG中的text类型相当于MySQL中的longtext类型
二进制数据类型只有一种bytea类型对应MySQL中的blob和longblob类型
位串类型位串就是一串由1和0组成的字符串,有bit(n)、bit varying(n)两种类型MySQL也支持此类型。不过PG可以支持更长的bit位,最长可以支持83886080个bit位
日期和时间类型有date、time、timestamp,而time和timestamp又根据是否包括时区分为两种类型在PG中,可以精确到秒以下,如毫秒,而MySQL5.6也可以精确到毫秒,不过日期时间的范围与MySQL差异比较大
枚举类型枚举类型是一个包含一系列有序静态值的集合的数据类型,相当于某些编程语言中的enum类型PG使用枚举类型前需要先使用CREATE TYPE语句来创建该类型;MySQL中也有枚举类型(enum)
几何类型包括点(point)、直线(line)、线段(lseg)、路径(path)、多边形(polygon)、圆(cycle)等类型PG中特有的类型,其他数据库一般没有此类型,可以认为是一种数据库内置的自定义类型
网络地址类型有cidr、inet、macaddr3种类型PG中特有的类型,其他数据库一般没有此类型,可以认为是一种数据库内置的自定义类型
数组类型可以存储一个数组PG中特有的类型,其他数据库一般没有此类型
复合类型可以把已有的简单类型组合成用户自定义的类型,如C语言中的结构体一样对应其他数据库的自定义类型
xml类型可以存储XML数据的类型N/A
JSON/JSONB类型可以存储JSON数据的类型N/A
range类型范围类型,可以存储范围数据其他数据库中无此类型
对象标识符类型PG内部标识对象的类型,如oid类型、regproc类型、regclass类型等N/A
伪类型伪类型不能作为字段的数据类型,但是它可以用于声明函数的参数或者结果的类型。有any、anyarray、anyelement、cstring、internal、language_handler、record、trigger、void、opaque等10种类型N/A
其他类型一些不易分类的类型都放到这里,如UUID类型、pg_lsn类型等N/A

为了提高SQL的兼容性,部分数据类型还有很多别名:

  • interger类型:可以用int、int4表示
  • smallint类型:可以用int2表示
  • char carying(n)可以用varchar(n)表示
  • numeric(m,n)可以用decimal(m,n)表示

数据类型的输入与转换

简单数据类型,如数字和字符串,使用一般方法输入即可:
image

复杂数据类型,可以按照“类型名”加上单引号括起来的类型值格式来输入:
image
image

PG支持用标准SQL的数据类型转换函数CAST来进行数据类型转换:
image

PG还支持一种更简捷的类型转换方式,即双冒号方式:
image

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值