Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni e operatori per indirizzi di rete
PrecedenteFunzioni e operatori geometriciFunzioni e operatori per ricerca testoSuccessivo

9.12. Funzioni e operatori per indirizzi di rete

La tabella Tabella 9.33, «Operatori cidr e inet » mostra gli operatori disponibili per i tipi cidr e inet. Gli operatori <<, <<=, >> e >>= testano l'inclusione nella sottorete. Essi considerano solo la parte "rete" dei due indirizzi, ignorando qualsiasi parte "host", e determinano se una parte della rete è identica all'altra oppure è una sottorete dell'altra.

Tabella 9.33. Operatori cidr e inet

OperatoreDescrizioneEsempio
< è minore diinet '192.168.1.5' < inet '192.168.1.6'
<= è minore di o ugualeinet '192.168.1.5' <= inet '192.168.1.5'
= è ugualeinet '192.168.1.5' = inet '192.168.1.5'
>= è maggiore o ugualeinet '192.168.1.5' >= inet '192.168.1.5'
> è maggiore diinet '192.168.1.5' > inet '192.168.1.4'
<> non è ugualeinet '192.168.1.5' <> inet '192.168.1.4'
<< è contenuta all'interno diinet '192.168.1.5' << inet '192.168.1/24'
<<= è contenuta all'interno di o ugualeinet '192.168.1/24' <<= inet '192.168.1/24'
>> contieneinet '192.168.1/24' >> inet '192.168.1.5'
>>= contiene o è ugualeinet '192.168.1/24' >>= inet '192.168.1/24'
~ NOT a bit~ inet '192.168.1.6'
& AND a bitinet '192.168.1.6' & inet '0.0.0.255'
| OR a bitinet '192.168.1.6' | inet '0.0.0.255'
+ addizioneinet '192.168.1.6' + 25
- sottrazioneinet '192.168.1.43' - 36
- sottrazioneinet '192.168.1.43' - inet '192.168.1.19'

La tabella Tabella 9.34, «Funzioni cidr e inet» mostra le funzioni disponibili per l'uso con i tipi cidr e inet. Le funzioni host, text e abbrev sono intese principalmente per offrire un formato alternativo di visualizzazione.

Tabella 9.34. Funzioni cidr e inet

FunzioneTipi di ritornoDescrizioneEsempioRisultato
abbrev(inet)textformato di visualizzazione come testo abbreviatoabbrev(inet '10.1.0.0/16')10.1.0.0/16
abbrev(cidr)textformato di visualizzazione come testo abbreviatoabbrev(cidr '10.1.0.0/16')10.1/16
broadcast(inet)inetindirizzo di broadcast per la retebroadcast('192.168.1.5/24')192.168.1.255/24
family(inet)intestrae una famiglia di indirizzi; 4 per IPv4, 6 for IPv6family('::1')6
host(inet)textestrae l'indirizzo IP come testohost('192.168.1.5/24')192.168.1.5
hostmask(inet)inetcostruisce maschera di host per la retehostmask('192.168.23.20/30')0.0.0.3
masklen(inet)intestrazione lunghezza netmaskmasklen('192.168.1.5/24')24
netmask(inet)inetcostruisce netmask per la retenetmask('192.168.1.5/24')255.255.255.0
network(inet)cidrestrae la parte network di un indirizzonetwork('192.168.1.5/24')192.168.1.0/24
set_masklen(inet, int)inetimpostazione lunghezza netmask per valori inetset_masklen('192.168.1.5/24', 16)192.168.1.5/16
set_masklen(cidr, int)cidrimposta la lunghezza di netmask per valori cidrset_masklen('192.168.1.0/24'::cidr, 16)192.168.0.0/16
text(inet)textestrae l'indirizzo IP e lunghezza netmask come testotext(inet '192.168.1.5')192.168.1.5/32

Qualunque valore cidr può essere convertito implicitamente o esplicitamente a inet; per cui, le funzioni mostrate sopra che operano sugli inet lavorano anche con valori cidr. (Dove ci sono funzioni separate per inet e cidr, è perchè il comportamento dovrebbe essere differente per i due casi). Inoltre, è consentito convertire un valore inet a cidr. Quando ciò viene fatto, ogni bit alla destra della netmask viene tacitamente azzerato per creare un valore cidr valido. Inoltre, si può convertire un valore testo a inet o cidr utilizzando la normale sintassi di conversione: per esempio, inet(espressione) o colname::cidr.

La Tabella 9.35, «Funzioni macaddr» mostra le funzioni disponibili per l'uso con i tipi macaddr. La funzione trunc(macaddr) restituisce un indirizzo MAC con gli ultimi 3 byte impostati a zero. Questo può essere usato per associare il restante prefisso con un costruttore.

Tabella 9.35. Funzioni macaddr

FunzioneTipo restituitoDescrizioneEsempioRisultato
trunc(macaddr)macaddrimposta gli ultimi 3 byte a zerotrunc(macaddr '12:34:56:78:90:ab')12:34:56:00:00:00

Il tipo macaddr supporta anche gli operatori relazionali standard (>, <=, ecc.) per l'ordinamento lessicografico.

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni e operatori per indirizzi di rete
PrecedenteFunzioni e operatori geometriciFunzioni e operatori per ricerca testoSuccessivo