PostgreSQL-Network Address类型操作和函数
2022/9/13 2:25:43
本文主要是介绍PostgreSQL-Network Address类型操作和函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、操作
inet << inet → boolean
子网是否严格包含在子网中?此运算符和接下来的四个运算符测试子网包含。他们只考虑两个地址的网络部分(忽略网络掩码右侧的任何位)并确定一个网络是否与另一个网络相同或属于另一个网络。
例子:
select inet '192.168.1.5' << inet '192.168.1/24'; select inet '192.168.0.5' << inet '192.168.1/24'; select inet '192.168.1/24' << inet '192.168.1/24';
inet <<= inet → boolean
子网是否包含或等于子网?
select inet '192.168.1/24' <<= inet '192.168.1/24';
inet >> inet → boolean
子网是否严格包含子网?
select inet '192.168.1/24' >> inet '192.168.1.5';
inet >>= inet → boolean
子网是否包含或等于子网?
select inet '192.168.1/24' >>= inet '192.168.1/24'; select inet '192.168.1/24' >> inet '192.168.1/24';
inet && inet → boolean
任一子网是否包含或等于另一个子网?
select inet '192.168.1/24' && inet '192.168.1.80/28'; SELECT inet '192.168.1/24' && inet '192.168.2.0/28';
-
inet → inet
按位计算 NOT。select ~ inet '192.168.1.6';
inet & inet → inet
计算按位与。
select inet '192.168.1.6' & inet '0.0.0.255';
inet | inet → inet
计算按位或。
select inet '192.168.1.6' | inet '0.0.0.255';
inet + bigint → inet
向地址添加偏移量。
select inet '192.168.1.6' + 25;
bigint + inet → inet
向地址添加偏移量。
select 200 + inet '::ffff:fff0:1';
inet - bigint → inet
从地址中减去偏移量。
SELECT inet '192.168.1.43' - 36;
inet - inet → bigint
计算两个地址的差。
SELECT inet '192.168.1.43' - inet '192.168.1.19'; select inet '::1' - inet '::ffff:1';
二、函数
broadcast ( inet ) → inet
计算地址网络的广播地址。
select broadcast(inet '192.168.1.5/24') ;
family ( inet ) → integer
返回地址的系列:4 表示 IPv4,6 表示 IPv6。
select family(inet '::1');
host ( inet ) → text
以文本形式返回 IP 地址,忽略网络掩码。
select host(inet '192.168.1.0/24');
hostmask ( inet ) → inet
计算地址网络的主机掩码。
select hostmask(inet '192.168.23.20/30');
inet_merge ( inet, inet ) → cidr
计算包含两个给定网络的最小网络。
select inet_merge(inet '192.168.1.5/24', inet '192.168.2.5/24') ;
inet_same_family ( inet, inet ) → boolean
测试地址是否属于同一个 IP 系列。
select inet_same_family(inet '192.168.1.5/24', inet '::1');
masklen ( inet ) → integer
返回网络掩码长度(以位为单位)。
select masklen(inet '192.168.1.5/24');
netmask ( inet ) → inet
计算地址网络的网络掩码。
select netmask(inet '192.168.1.5/24');
network ( inet ) → cidr
返回地址的网络部分,将网络掩码右侧的内容归零。(这相当于将值转换为 cidr。)
select network(inet '192.168.1.5/24');
set_masklen ( inet, integer ) → inet
设置 inet 值的网络掩码长度。地址部分不变。
select set_masklen(inet '192.168.1.5/24', 16);
set_masklen ( cidr, integer ) → cidr
设置 cidr 值的网络掩码长度。新网络掩码右侧的地址位设置为零。
select set_masklen(cidr '192.168.1.0/24', 16);
text ( inet ) → text
以文本形式返回未缩写的 IP 地址和网络掩码长度。(这与显式转换为文本具有相同的结果。)
select text(inet '192.168.1.5');
abbrev ( inet ) → text
创建一个作为文本的缩写显示格式。(结果与 inet 输出函数产生的结果相同;它只是与显式转换为文本的结果相比“缩写”,由于历史原因,它永远不会显示网络掩码部分。)
select abbrev(inet '10.1.0.0/32');
abbrev ( cidr ) → text
创建一个作为文本的缩写显示格式。
select abbrev(cidr '10.1.0.0/16');
trunc ( macaddr ) → macaddr
将地址的最后 3 个字节设置为零。剩余的前缀可以与特定的制造商相关联(使用 PostgreSQL 中未包含的数据)。
select trunc(macaddr '12:34:56:78:90:ab');
trunc ( macaddr8 ) → macaddr8
将地址的最后 5 个字节设置为零。剩余的前缀可以与特定的制造商相关联(使用 PostgreSQL 中未包含的数据)。
select trunc(macaddr8 '12:34:56:78:90:ab:cd:ef') ;
macaddr8_set7bit ( macaddr8 ) → macaddr8
将地址的第 7 位设置为 1,创建所谓的修改后的 EUI-64,以包含在 IPv6 地址中。
select macaddr8_set7bit(macaddr8 '00:34:56:ab:cd:ef');
这篇关于PostgreSQL-Network Address类型操作和函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-05快速清空 PostgreSQL 数据库中的所有表格,让你的数据库重新焕然一新!
- 2024-01-04在PostgreSQL中创建角色:判断角色是否存在并创建
- 2023-05-16PostgreSQL一站式插件推荐 -- pg_enterprise_views
- 2022-11-22PostgreSQL 实时位置跟踪
- 2022-11-22如何将PostgreSQL插件移植到openGauss
- 2022-11-11PostgreSQL:修改数据库用户的密码
- 2022-11-06Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务
- 2022-10-27Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务
- 2022-10-11PostgreSql安装(Windows10版本)
- 2022-09-11PostgreSQL-运算符和函数3