IPv6
IPv6 stores a validated IPv6 address. Display uses lowercase hexadecimal and compressed groups of zeros. Ordering compares address values rather than their text spellings.
Syntax
text
IPv6Invalid addresses raise TYPE_MISMATCH. Casting to BLOB exposes the 16 network-order bytes. An IPv4-mapped IPv6 address compares equal to its IPv4 counterpart.
A top-level column permits SQL NULL unless it declares NOT NULL. Use the inet and cidr types when the value must also retain a subnet prefix.
Examples
Normalizing an address
sql
SELECT CAST('2001:DB8:0:0:0:0:0:1' AS IPv6)
FORMAT csv;text
"2001:db8::1"Comparing IPv4-mapped addresses
sql
SELECT CAST('127.0.0.1' AS IPv4)
= CAST('::ffff:127.0.0.1' AS IPv6)
FORMAT csv;text
1Storing client addresses
sql
CREATE TABLE clients(id UInt32, ip IPv6);
INSERT INTO clients VALUES (1, '2001:db8::1'), (2, '2001:db8::2');sql
SELECT id, ip
FROM clients
ORDER BY ip
FORMAT csv;text
1,"2001:db8::1"
2,"2001:db8::2"See IP address functions for address and subnet operations.