Типы данных PostgreSQL
PostgreSQL поддерживает широкий спектр типов данных, разделенных на несколько групп.
1. Числовые типы
| Имя | Размер | Описание | Диапазон |
|---|---|---|---|
smallint | 2 байта | целое число малого диапазона | от -32768 до +32767 |
integer | 4 байта | типичный выбор для целых чисел | от -2147483648 до +2147483647 |
bigint | 8 байт | целое число большого диапазона | от -9223372036854775808 до +9223372036854775807 |
decimal / numeric | переменный | заданная пользователем точность, точный | до 131072 цифр перед запятой; до 16383 цифр после |
real | 4 байта | переменная точность, неточный | точность 6 десятичных цифр |
double precision | 8 байт | переменная точность, неточный | точность 15 десятичных цифр |
smallserial | 2 байта | маленькое автоинкрементное целое | от 1 до 32767 |
serial | 4 байта | автоинкрементное целое | от 1 до 2147483647 |
bigserial | 8 байт | большое автоинкрементное целое | от 1 до 9223372036854775807 |
2. Символьные типы
| Имя | Описание |
|---|---|
character(n) / char(n) | фиксированная длина, дополняется пробелами |
character varying(n) / varchar(n) | переменная длина с ограничением |
text | переменная длина без ограничения |
Примечание: В PostgreSQL нет разницы в производительности между этими тремя типами.
3. Типы даты/времени
| Имя | Размер | Описание |
|---|---|---|
timestamp | 8 байт | дата и время (без часового пояса) |
timestamp with time zone | 8 байт | дата и время, с часовым поясом |
date | 4 байта | дата (без времени) |
time | 8 байт | время дня (без даты) |
interval | 16 байт | временной интервал |
4. Логический тип
Тип boolean может иметь состояния true, false или «неизвестно» (представлено NULL).