postgresql中的ltree类型使用方法_PostgreSQL

来源:脚本之家  责任编辑:小易  

与Oracle中类似,%TYPE是用来获取一个已定义变量的类型的。这样可以方便的定义出于已有变量或字段同类型的变量。例如:do language plpgsql$declare v1 character varying(100);定义变量v1类型为变长字串declare v2 v1%type;定义变量v2与v1同类型,即变长字串beginv2:='Hello World!';给v2变量赋值raise notice '%',v2;显示出v2的内容end$;www.zgxue.com防采集请勿采集本网。

postgresql有很多比较妖的数据类型,ltree算一个。

去附近的学校问电脑老师

简介

ltree是Postgresql的一个扩展类型 http://www.sai.msu.su/~megera..,在解决树形结构的数据存储上使用。

psql里 查看所有库:\\l 查看所有表:\\dt 查看某个表的结构:\\d 表名 如果表位于你的自定义模式中,要把模式名加入“搜索路径”。具体来说就是编辑postgres的配置文件:<数据目录>\\postgres.conf

查看是否安装了插件

直接用建表语句: create table(segment_id number,segment_key.);

你好,JSONB 同时属于 JSON(JavaScript Object Notation)数据类型,jsonb 和 json 的输入数据几乎完全通用,最大的差别体现在效率上,json 存储的数据几乎和输入数据一样,存储的是未解析的数据

select * from pg_extension where extname = 'ltree';

We can also access arbitrary rectangular slices of an array,or subarrays.An array slice is denoted by writing lower-bound:upper-bound for one or array dimensions.For example,

定义

字段的格式为:L1.L2.L3.L4.L5.L6.....

标签是一系列字母数字字符和下划线A-Za-z0-9_, 标签长度必须小于256个字节。标签路径是由点分隔的零个或多个标签的序列,例如L1.L2.L3,表示从分层树的根到特定节点的路径。 标签路径的长度必须小于65Kb,但最好保持在2Kb以下。

查询

创建临时表:

create table tmp.ltree_table(name varchar, path ltree);

写入测试数据

insert into tmp.ltree_table values ('小明','北京.东城.小明');insert into tmp.ltree_table values ('小刚','北京.西城.小刚');insert into tmp.ltree_table values ('小红','北京.南城.小红');insert into tmp.ltree_table values ('小小明','北京.东城.小明.小小明');insert into tmp.ltree_table values ('小明明','北京.东城.小明.小明明');insert into tmp.ltree_table values ('小小红','北京.东城.小红.小小红');insert into tmp.ltree_table values ('小红红','北京.东城.小红.小红红');

查询写入的数据

 小明   | 北京.东城.小明

 小刚   | 北京.西城.小刚

 小红   | 北京.南城.小红

 小小明 | 北京.东城.小明.小小明

 小明明 | 北京.东城.小明.小明明

 小小红 | 北京.南城.小红.小小红

 小红红 | 北京.南城.小红.小红红

结构树如下:

查询所有的人和他的孩子的对应关系:

select c.name, s.name from tmp.ltree_table s join (select path ,name from tmp.ltree_table ) c on s.path <@ c.path and s.name <> c.name;

 小明 | 小小明

 小明 | 小明明

 小红 | 小小红

 小红 | 小红红

查询覆盖的所有的区域:

select subltree(path,1,2) from tmp.ltree_table;

 东城

 西城

 南城

 东城

 东城

 南城

 南城

查询所有南城的人:

select distinct s.name from tmp.ltree_table s where subltree(s.path,1,2) = '南城';

 小小红

 小红红

 小红

查询路径长度:

select s.name,nlevel(s.path) from tmp.ltree_table s;

 小明   |      3

 小刚   |      3

 小红   |      3

 小小明 |      4

 小明明 |      4

 小小红 |      4

 小红红 |      4

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对真格学网的支持。

postgresql是一个开源的关系数据库管理系统(像大家熟知的Oracle,SQL Server,DB2,MySQL等,都是数据库管理系统),免费且功能强大。Postgresql可以用来帮助我们管理存储的数据,进行数据分析内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • postgresql中slony-i同步复制部署教程
  • postgresql 创建表分区
  • postgresql数据库中跨库访问解决方案
  • ubuntu postgresql安装和配置的介绍
  • postgresql教程(十八):客户端命令(2)
  • postgresql教程(二):模式schema详解
  • postgresql分页数据重复问题的深入理解
  • postgresql教程(十三):数据库管理详解
  • linux centos 7源码编译安装postgresql9.5
  • postgresql更新表时时间戳不会自动更新的解决方法
  • postgresql通常在IT中有什么作用
  • PostgreSQL 中 %TYPE是什么意思,如何使用
  • postgresql中视图和表的区别和联系是什么
  • postgresql 中,geometry类型字段怎样插入操作
  • postgresql中怎么把一列变成多列,一定要用postgresql来写
  • 如何查看postgresql中的表结构
  • postgreSQL中如何添加这个功能表?
  • 如何使用postgresql中json功能
  • 请教关于postgresql过程中,使用二维数组的问题
  • postgresql里边的数组怎么操作
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页postgresqlpostgresql中slony-i同步复制部署教程postgresql 创建表分区postgresql数据库中跨库访问解决方案ubuntu postgresql安装和配置的介绍postgresql教程(十八):客户端命令(2)postgresql教程(二):模式schema详解postgresql分页数据重复问题的深入理解postgresql教程(十三):数据库管理详解linux centos 7源码编译安装postgresql9.5postgresql更新表时时间戳不会自动更新的解决方法postgresql 角色与用户管理介绍windows下postgresql数据库的下载windows下postgresql安装图解15个postgresql数据库实用命令分postgresql中的oid和xid 说明windows postgresql 安装图文教程postgresql alter语句常用操作小postgresql 安装和简单使用postgresql 创建表分区postgresql新手入门教程postgresql教程(二十):pl/pgsql过程语言windows下postgresql安装图解postgresql教程(十五):系统表详解ubuntu中卸载postgresql出错的解决方法postgresql中调用存储过程并返回数据集实postgresql教程(十一):服务器配置sqlite教程(七):数据类型详解postgresql存储过程用法实战详解postgresql实战之启动恢复读取checkpoint在ubuntu中安装postgresql数据库的步骤详
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved