GBase 8c V3.0.0数据类型——网络地址函数和操作符(cidr和inet函数)

函数abbrev、host、text主要是为了提供可选的显示格式。

  1. abbrev(inet)

描述:缩写显示格式文本。

返回类型:text

示例:

 gbase=# SELECT abbrev(inet '10.1.0.0/16') AS RESULT;

   result    

-------------

 10.1.0.0/16

(1 row)

  1. abbrev(cidr)

描述:缩写显示格式文本。

返回类型:text

示例:

 gbase=# SELECT abbrev(cidr '10.1.0.0/16') AS RESULT;

 result  

---------

 10.1/16

(1 row)

  1. broadcast(inet)

描述:网络广播地址。

返回类型:inet

示例:

 gbase=# SELECT broadcast('192.168.1.5/24') AS RESULT;

      result      

------------------

 192.168.1.255/24

(1 row)

  1. family(inet)

描述:抽取地址族,4为IPv4,6为IPv6。

返回类型:int

示例:

 gbase=# SELECT family('127.0.0.1') AS RESULT;

 result

--------

      4

(1 row)

  1. host(inet)

描述:将主机地址类型抽出为文本。

返回类型:text

示例:

 gbase=# SELECT host('192.168.1.5/24') AS RESULT;

   result    

-------------

 192.168.1.5

(1 row)

  1. hostmask(inet)

描述:为网络构造主机掩码。

返回类型:inet

示例:

 gbase=# SELECT hostmask('192.168.23.20/30') AS RESULT;

 result  

---------

 0.0.0.3

(1 row)

  1. masklen(inet)

描述:抽取子网掩码长度。

返回类型:int

示例:

 gbase=# SELECT masklen('192.168.1.5/24') AS RESULT;

 result

--------

     24

(1 row)

  1. netmask(inet)

描述:为网络构造子网掩码。

返回类型:inet

示例:

 gbase=# SELECT netmask('192.168.1.5/24') AS RESULT;

    result     

---------------

 255.255.255.0

(1 row)

  1. network(inet)

描述:抽取地址的网络部分。

返回类型:cidr

示例:

 gbase=# SELECT network('192.168.1.5/24') AS RESULT;

     result     

----------------

 192.168.1.0/24

(1 row)

  1. set_masklen(inet, int)

描述:为inet数值设置子网掩码长度。

返回类型:inet

示例:

 gbase=# SELECT set_masklen('192.168.1.5/24', 16) AS RESULT;

     result     

----------------

 192.168.1.5/16

(1 row)

  1. set_masklen(cidr, int)

描述:为cidr数值设置子网掩码长度。

返回类型:cidr

示例:

 gbase=# SELECT set_masklen('192.168.1.0/24'::cidr, 16) AS RESULT;

     result     

----------------

 192.168.0.0/16

(1 row)

  1. text(inet)

描述:把IP地址和掩码长度抽取为文本。

返回类型:text

示例:

 gbase=# SELECT text(inet '192.168.1.5') AS RESULT;

     result     

----------------

 192.168.1.5/32

(1 row)

任何cidr值都能以显式或者隐式的方式转换为inet值,因此上述能够操作inet值的函数也同样能够操作cidr值。inet值也可以转换为cidr值,此时inet子网掩码右侧的所有位都将转换为零,以创建一个有效的cidr值。另外,用户还可以使用常规的类型转换语法将一个文本字符串转换为inet或cidr值。例如:inet(expression)或colname::cidr。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值