Глава 8. Типы данных
Содержание
- 8.1. Числовые типы
- 8.2. Денежные типы
- 8.3. Символьные типы
- 8.4. Двоичные типы данных
- 8.5. Типы даты/времени
- 8.6. Логический тип
- 8.7. Типы перечислений
- 8.8. Геометрические типы
- 8.9. Типы, описывающие сетевые адреса
- 8.10. Битовые строки
- 8.11. Типы, предназначенные для текстового поиска
- 8.12. Тип UUID
- 8.13. Тип XML
- 8.14. Типы JSON
- 8.15. Массивы
- 8.16. Составные типы
- 8.17. Диапазонные типы
- 8.17.1. Встроенные диапазонные и мультидиапазонные типы
- 8.17.2. Примеры
- 8.17.3. Включение и исключение границ
- 8.17.4. Неограниченные (бесконечные) диапазоны
- 8.17.5. Ввод/вывод диапазонов
- 8.17.6. Конструирование диапазонов и мультидиапазонов
- 8.17.7. Типы дискретных диапазонов
- 8.17.8. Определение новых диапазонных типов
- 8.17.9. Индексация
- 8.17.10. Ограничения для диапазонов
- 8.18. Типы доменов
- 8.19. Идентификаторы объектов
- 8.20. Тип
pg_lsn
- 8.21. Псевдотипы
Postgres Pro предоставляет пользователям богатый ассортимент встроенных типов данных. Кроме того, пользователи могут создавать свои типы в Postgres Pro, используя команду CREATE TYPE.
Таблица 8.1 содержит все встроенные типы данных общего пользования. Многие из альтернативных имён, приведённых в столбце «Псевдонимы», используются внутри Postgres Pro по историческим причинам. В этот список не включены некоторые устаревшие типы и типы для внутреннего применения.
Таблица 8.1. Типы данных
Имя | Псевдонимы | Описание |
---|---|---|
bigint | int8 | знаковое целое из 8 байт |
bigserial | serial8 | восьмибайтное целое с автоувеличением |
bit [ ( | битовая строка фиксированной длины | |
bit varying [ ( | varbit [ ( | битовая строка переменной длины |
boolean | bool | логическое значение (true/false) |
box | прямоугольник в плоскости | |
bytea | двоичные данные («массив байт») | |
character [ ( | char [ ( | символьная строка фиксированной длины |
character varying [ ( | varchar [ ( | символьная строка переменной длины |
cidr | сетевой адрес IPv4 или IPv6 | |
circle | круг в плоскости | |
date | календарная дата (год, месяц, день) | |
double precision | float8 | число двойной точности с плавающей точкой (8 байт) |
inet | адрес узла IPv4 или IPv6 | |
integer | int , int4 | знаковое четырёхбайтное целое |
interval [ | интервал времени | |
json | текстовые данные JSON | |
jsonb | двоичные данные JSON, разобранные | |
line | прямая в плоскости | |
lseg | отрезок в плоскости | |
macaddr | MAC-адрес | |
macaddr8 | адрес MAC (Media Access Control) (в формате EUI-64) | |
money | денежная сумма | |
numeric [ ( | decimal [ ( | вещественное число заданной точности |
path | геометрический путь в плоскости | |
pg_lsn | последовательный номер в журнале Postgres Pro | |
pg_snapshot | снимок идентификатора транзакций | |
point | геометрическая точка в плоскости | |
polygon | замкнутый геометрический путь в плоскости | |
real | float4 | число одинарной точности с плавающей точкой (4 байта) |
smallint | int2 | знаковое двухбайтное целое |
smallserial | serial2 | двухбайтное целое с автоувеличением |
serial | serial4 | четырёхбайтное целое с автоувеличением |
text | символьная строка переменной длины | |
time [ ( | время суток (без часового пояса) | |
time [ ( | timetz | время суток с учётом часового пояса |
timestamp [ ( | дата и время (без часового пояса) | |
timestamp [ ( | timestamptz | дата и время с учётом часового пояса |
tsquery | запрос текстового поиска | |
tsvector | документ для текстового поиска | |
txid_snapshot | снимок идентификаторов транзакций для пользовательского уровня (устаревший тип; см. pg_snapshot ) | |
uuid | универсальный уникальный идентификатор | |
xml | XML-данные |
Совместимость
В стандарте SQL описаны следующие типы (или их имена): bigint
, bit
, bit varying
, boolean
, char
, character varying
, character
, varchar
, date
, double precision
, integer
, interval
, numeric
, decimal
, real
, smallint
, time
(с часовым поясом и без), timestamp
(с часовым поясом и без), xml
.
Каждый тип данных имеет внутреннее представление, скрытое функциями ввода и вывода. При этом многие встроенные типы стандартны и имеют очевидные внешние форматы. Однако есть типы, уникальные для Postgres Pro, например геометрические пути, и есть типы, которые могут иметь разные форматы, например, дата и время. Некоторые функции ввода и вывода не являются в точности обратными друг к другу, то есть результат функции вывода может не совпадать со входным значением из-за потери точности.
Part VII. Internals
This part contains assorted information that might be of use to Postgres Pro developers.
Table of Contents
- 48. Overview of Postgres Pro Internals
- 49. System Catalogs
- 49.1. Overview
- 49.2.
pg_aggregate
- 49.3.
pg_am
- 49.4.
pg_amop
- 49.5.
pg_amproc
- 49.6.
pg_attrdef
- 49.7.
pg_attribute
- 49.8.
pg_authid
- 49.9.
pg_auth_members
- 49.10.
pg_cast
- 49.11.
pg_class
- 49.12.
pg_collation
- 49.13.
pg_constraint
- 49.14.
pg_conversion
- 49.15.
pg_database
- 49.16.
pg_db_role_setting
- 49.17.
pg_default_acl
- 49.18.
pg_depend
- 49.19.
pg_description
- 49.20.
pg_enum
- 49.21.
pg_event_trigger
- 49.22.
pg_extension
- 49.23.
pg_foreign_data_wrapper
- 49.24.
pg_foreign_server
- 49.25.
pg_foreign_table
- 49.26.
pg_index
- 49.27.
pg_inherits
- 49.28.
pg_language
- 49.29.
pg_largeobject
- 49.30.
pg_largeobject_metadata
- 49.31.
pg_namespace
- 49.32.
pg_opclass
- 49.33.
pg_operator
- 49.34.
pg_opfamily
- 49.35.
pg_pltemplate
- 49.36.
pg_policy
- 49.37.
pg_proc
- 49.38.
pg_range
- 49.39.
pg_replication_origin
- 49.40.
pg_rewrite
- 49.41.
pg_seclabel
- 49.42.
pg_shdepend
- 49.43.
pg_shdescription
- 49.44.
pg_shseclabel
- 49.45.
pg_statistic
- 49.46.
pg_tablespace
- 49.47.
pg_transform
- 49.48.
pg_trigger
- 49.49.
pg_ts_config
- 49.50.
pg_ts_config_map
- 49.51.
pg_ts_dict
- 49.52.
pg_ts_parser
- 49.53.
pg_ts_template
- 49.54.
pg_type
- 49.55.
pg_user_mapping
- 49.56. System Views
- 49.57.
pg_available_extensions
- 49.58.
pg_available_extension_versions
- 49.59.
pg_cursors
- 49.60.
pg_file_settings
- 49.61.
pg_group
- 49.62.
pg_indexes
- 49.63.
pg_locks
- 49.64.
pg_matviews
- 49.65.
pg_policies
- 49.66.
pg_prepared_statements
- 49.67.
pg_prepared_xacts
- 49.68.
pg_replication_origin_status
- 49.69.
pg_replication_slots
- 49.70.
pg_roles
- 49.71.
pg_rules
- 49.72.
pg_seclabels
- 49.73.
pg_settings
- 49.74.
pg_shadow
- 49.75.
pg_stats
- 49.76.
pg_tables
- 49.77.
pg_timezone_abbrevs
- 49.78.
pg_timezone_names
- 49.79.
pg_user
- 49.80.
pg_user_mappings
- 49.81.
pg_views
- 50. Frontend/Backend Protocol
- 51. Postgres Pro Coding Conventions
- 52. Native Language Support
- 53. Writing A Procedural Language Handler
- 54. Writing A Foreign Data Wrapper
- 55. Writing A Table Sampling Method
- 56. Writing A Custom Scan Provider
- 57. Genetic Query Optimizer
- 58. Index Access Method Interface Definition
- 59. GiST Indexes
- 60. SP-GiST Indexes
- 61. GIN Indexes
- 62. BRIN Indexes
- 63. Database Physical Storage
- 64. BKI Backend Interface
- 65. How the Planner Uses Statistics