Summary: in this tutorial, you will learn about PostgreSQL data types including Boolean, character, number, temporal, special types and array.
PostgreSQL supports the following data types:
Boolean data type
A Boolean data type can hold one of two possible values: true or false. In case the value is unknown, the
NULL value is used.
bool keyword when you declare a column that has Boolean data type.
When you insert data into a Boolean column, PostgreSQL will convert it into the Boolean value e.g., 1, yes, y, t, true are converted to true, and 0, no, n false, f are converted to false.
When you select data from a Boolean column, PostgreSQL display
t for true,
f for false and space character for NULL.
Character data types
PostgreSQL provides three character data types: char(n), varchar(n), and text
char(n)is the fixed-length character with blank padded. If you insert a string that is shorter than the length of the column, PostgreSQL will pad spaces. If you insert a string that is longer than the length of the column, PostgreSQL will issue an error.
varchar(n)is the variable-length character string. You can store up to
ncharacters with variable-length character strings. PostgreSQL does not pad spaces when the stored string is shorter than the length of the column.
textis variable-length character strings that you do not need to specify the length in the type declaration. Theoretically, a text is an unlimited length character string.
Number data types
PostgreSQL provides two distinct types of numbers:
- floating-point numbers
There are three kinds of integers:
- Small integer (
smallint) is 2-byte signed integer that has a range of (-32768,32767)
- Integer (
int) is 4-byte integer that has a range of (-214783648, -214783647)
- Serial is the same as integer except that PostgreSQL populate value into the column automatically. This is similar to
AUTO_INCREMENTattribute in other database management systems.
There three main types of floating-point numbers:
float(n)is a floating-point number whose precision, at least, n, up to a maximum of 8 bytes.
float8is a double-precision (8-byte) floating-point number.
numeric(p,s)is a real number with p digits with s number after the decimal point. The numeric(p,) is the exact number.
Temporal data types
The temporal data types store date and time-related data. There are five main temporal data types in PostgreSQL:
datestores date data
timestores time data
timestampstores data and time
intervalstores the difference in timestamps
timestamptzstore both timestamp and timezone data. The
timestamptzis a PostgreSQL’s extension to the temporal data type.
Special data types
Besides the primitive data types, PostgreSQL also provides several special data types related to geometric and network.
box– a rectangular box.
line– a set of points.
point– a geometric pair of numbers.
lseg– a line segment.
polygon– a closed geometric.
inet– an IP4 address.
In PostgreSQL, you can store an array of strings, an array of integers, etc., in a column of a table by using an array. The array comes to handy in some situations e.g., storing days of the week, months of the year, etc.
In this tutorial, we have introduced you to the PostgreSQL data types so that you can use them to create tables in the next tutorial.