3.1 数据类型介绍

3.1.1 数据类型的分类

分类名称
说明
与其他数据库对比

布尔类型

boolean

同mysql中的bool、boolean,占用1字节

数值类型

smallint:2字节整数 int:4字节整数 bigint:8字节整数 numeric:精确类型的小数 real、double precision:非精确类型浮点数 money:8字节货币

无Mysql中的unsigned整数类型 无mysql中的tinyint 1字节整数类型 无mysql中的mediumint 3字节整数类型

二进制数据类型

bytea

同mysql中的blob、longblob

位串类型

值为由0或1组成的字符串 有bit(n)与bit varying(n)两种类型

mysql也支持该类型,但postgreSQL支持更长的bit位,最长可支持83886080

日期和时间类型

date time timestamp 其中time和timestamp又根据是否包含时区分为两种类型

postgreSQL可以精确到秒以下,比如毫秒;但范围与Mysql相比差距较大

枚举类型

postgreSQL需要先使用CREATE TYPE语句来创建该类,Mysql中使用enum

几何类型

point:点 line:直线 lseg:线段 path:路径 polygon:多边形 cycle:圆 等等

postgreSQL特有类型

网络地址类型

cidr inet macaddr

postgreSQL特有类型

数组类型

可以存储一个数组

postgreSQL特有类型

复合类型

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

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

xml类型

可以存储xml数据的类型

json/jsonb类型

可以存储json类型

range类型

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

postgreSQL特有类型

对象标识符类型

postgreSQL内部标识对象的类型: oid regproc regclass

伪类型

不能作为字段类型,但可以声明函数的参数或者结果类型: any、anyarray、anyelement、cstring、internal、language_handler、record、trigger、void、opaque等

其他类型

一些不容易分类的类型都放在这里,比如:UUID、pg_lsn等

3.1.2 数据类型的输入与转换

  1. 简单数据类型:

    1. 数字:直接输入

    2. 字符串:添加引号

  2. 复杂类型:

    1. 可以通过类型名 '值'

    所有类型都可以使用这个方式

  3. 类型转换函数:CAST(值 as 类型)

  4. 类型转换便捷:值::类型

最后更新于