微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL一数据类型

特征

  • 函数:通过函数,可以在数据库服务器端执行指令程序。

  • 索引用户可以自定义索引方法,或使用内置的 B 树,哈希表与 GiST 索引。

  • 触发器:触发器是由sql语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。 多版本并发控制:Postgresql使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。

  • 规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

  • 数据类型包括文本、任意精度的数值数组、JSON 数据、枚举类型、XML 数据

    等。

  • 全文检索:通过 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

  • Nosql:JSON,JSONB,XML,HStore 原生支持,至 Nosql 数据库的外部数据包装器。

  • 数据仓库:能平滑迁移至同属 Postgresql 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。

命令

数据类型

数值

  • 整数:smallint 2字节, integer 4字节, bigint 8字节

  • 浮点数

    • 精确:decimal ,numeric

    • 不精确:real 4字节, double precision 8字节

  • 自增整数:smallserial 2字节, serial 4字节, bigserial 8字节(等于MysqL的AUTO_INCREMENT)

货币类型

money:8字节,存储带有固定小数精度的货币金额,numeric、int 和 bigint 类型的值可以转换为 money

字符

  • char

  • varchar

  • text,无长度限制

时间日期

  • timestamp

  • date

  • time

  • interval ,时间间隔

布尔类型

boolean,有三个值:true , false , NULL(未知)

枚举

枚举类型是一个包含静态和值的有序集合的数据类型,枚举类型需要使用 CREATE TYPE 命令创建

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

几何类型

几何数据类型表示二维的平面物体,最基本的类型:点。它是其它类型的基础。

  • point,点 16字节,(x,y)

  • line,直线 32字节,((x1,y1),(x2,y2))

  • lseg,线段 32字节, ((x1,y1),(x2,y2))

  • Box,矩形 32字节, ((x1,y1),(x2,y2))

  • path,闭合路径(与多边形类似) 16+16n 字节,((x1,y1),...)

  • path,开放路径 16+16n 字节, [(x1,y1),...]

  • polygon,多边形(与闭合路径类似) 40+16n 字节, ((x1,y1),...)

  • circle,圆 24字节,<(x,y),r> (圆心和半径)

网络地址

存储 IPv4 、IPv6 、MAC 地址的数据类型。

用这些数据类型存储网络地址比用纯文本类型好, 因为这些类型提供输入错误检查和特殊的操作和功能

  • cidr,IPv4 或 IPv6网络

  • inet,IPv4 或 IPv6主机和网络

  • macaddr,MAC地址

XML类型

xml 数据类型可以用于存储XML数据。 将 XML 数据存到 text 类型中的优势在于它能够为结构良好性来检查输入值, 并且还支持函数对其进行类型安全性检查,使用这个数据类型,编译时必须使用 configure --with-libxml

创建XML

使用函数 xmlparse: 来从字符数据产生 xml 类型的值:

XMLPARSE (DOCUMENT '<?xml version="1.0"?><book><title>Manual</title><chapter>...</chapter></book>')
XMLPARSE (CONTENT 'abc<foo>bar</foo><bar>foo</bar>')

JSON类型

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

数组类型

数组类型可以是任何基本类型或用户定义类型,枚举类型或复合类型

创建或修改表时,integer[],text[][] ,一维数组和二维数组,也可以使用 ARRAY 关键字:

integer ARRAY[4]

复合类型

复合类型表示一行或者一条记录的结构; 它实际上只是一个字段名和它们的数据类型的列表。Postgresql 允许像简单数据类型那样使用复合类型。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐