PostgreSQL Data Types

PostgreSQL - Data Type

  • PostgreSQL - Data Type
    • Numeric Types
    • Monetary Types
    • Character Types
    • Date/Time Types
    • Boolean Type
    • Enumerated Type
    • Geomertic Type
    • Network Address Type
    • Bit String Type
    • UUID Type
    • XML Type
    • JSON Type

Numeric Types

Name Storage Size Description Range
smallint 2 bytes small-range integer -32768 to +32767
integer 4 bytes typical choice forinteger -2147483648 to +2147483647
bigint 8 bytes large-range integer -9223372036854775808 to 9223372036854775807
decimal variable user-specified precision, exact up to 131072 digits before the decimal point; up to 16383 digits after the decimal point
numeric variable user-specified precision,exact up to 131072 digits before the decimal point; up to 16383 digits after the decimal point
real 4 bytes variable-precision, inexact 6 decimal digits precision
double precision 8 bytes variable-precision, inexact 15 decimal digits precision
smallserial 2 bytes small autoincrementing integer 1 to 32767
serial 4 bytes autoincrementing integer 1 to 2147483647
bigserial 8 bytes large autoincrementing integer 1 to 9223372036854775807

Monetary Types

Name Storage Size Description Range
money 8 bytes currency amount -92233720368547758.08 to +92233720368547758.07

Character Types

Name Storage Size Description
bytea 1 or 4 bytes plus the actual binary string variable-length binary string

Date/Time Types

Name Storage Size Description Low Value High Value
timestamp[(p)][without time zone] bytes both date and time (no time zeon) 4713 BC 294276 AD
timestamp[(p)] with time zone 8 bytes both date and time, with time zone 4713 BC 294276 AD
date 4 bytes date (no time of day) 4713 BC 5874897
time[(p)][without time zone] 8 byte ime of day (no date) 00:00:00 24:00:00
time[(p)] with time zone 12 bytes times of day only, with time zone 00:00:00+1459 24:00:00-1459
interval[fields][(p)] 12 bytes time interval -178000000 years 178000000 years

Boolean Type

Name Storage Size Description
boolean 1 byte state of true or false

Enumerated Type

Enumerated (enum) types are data types that comprise a static, ordered set of values. They are equivalent to the enum types supported in a number of programming languages.

Unlike other types, Enumerated Types need to be created using CREATE TYPE command. This type is used to store a static, ordered set of values. For example compass directions, i.e., NORTH, SOUTH, EAST, and WEST or days of the week as shown below −

CREATE TYPE week AS ENUM ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');

Enumerated, once created, can be used like any other types.

Geomertic Type

Name Storage Size Repersentation Description
point 16 bytes Point on a plane (x, y)
line 32 bytes Infinite line (not fully implemented) ((x1,y1),(x2,y2))
lseg 32 bytes Finite line segment ((x1,y1),(x2,t2))
box 32 bytes Rectangular box ((x1,y1),(x2,y2))
path 16+16n bytes Closed path(similar to polygon) ((x1,y1),...)
path 16+16n bytes Open path [(x1,t1),...]
polygon 40+16n bytes Polygon (similar to closed path) ((x1,y1),...)
circle 24 bytes Circle <(x,y),r>(center point and radius)

Network Address Type

Name Storage Size Description
cidr 7 or 19 bytes IPv4 and IPv6 networks
inet 7 or 19 bytes IPv4 and IPv6 hosts and networks
macaddr 6 bytes MAC address

Bit String Type

Bit String Types are used to store bit masks. They are either 0 or 1. There are two SQL bit types: bit(n) and bit varying(n), where n is a positive integer.

UUID Type

A UUID (Universally Unique Identifiers) is written as a sequence of lower-case hexadecimal digits, in several groups separated by hyphens, specifically a group of eight digits, followed by three groups of four digits, followed by a group of 12 digits, for a total of 32 digits representing the 128 bits.

An example of a UUID is − 550e8400-e29b-41d4-a716-446655440000

XML Type

The XML data type can be used to store XML data. For storing XML data, first you have to create XML values using the function xmlparse as follows −

XMLPARSE (DOCUMENT '

PostgreSQL Tutorial 
   ...
')

XMLPARSE (CONTENT 'xyzbarfoo')

JSON Type

The json data type can be used to store JSON (JavaScript Object Notation) data. Such data can also be stored as text, but the json data type has the advantage of checking that each stored value is a valid JSON value. There are also related support functions available, which can be used directly to handle JSON data type as follows.

Example Example Result
array_to_json('{{1,5},{99,100}}'::int[]) [[1,5],[99,100]]
row_to_json(row(1,'foo')) {"f1":1,"f2":"foo"}

你可能感兴趣的:(PostgreSQL Data Types)