Ðлава 8. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
СодеÑжание
- 8.1. ЧиÑловÑе ÑипÑ
- 8.2. ÐенежнÑе ÑипÑ
- 8.3. СимволÑнÑе ÑипÑ
- 8.4. ÐвоиÑнÑе ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
- 8.3. СимволÑнÑе ÑипÑ
- 8.5. Ð¢Ð¸Ð¿Ñ Ð´Ð°ÑÑ/вÑемени
- 8.6. ÐогиÑеÑкий Ñип
- 8.7. Ð¢Ð¸Ð¿Ñ Ð¿ÐµÑеÑиÑлений
- 8.8. ÐеомеÑÑиÑеÑкие ÑипÑ
- 8.9. ТипÑ, опиÑÑваÑÑие ÑеÑевÑе адÑеÑа
- 8.10. ÐиÑовÑе ÑÑÑоки
- 8.11. ТипÑ, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑекÑÑового поиÑка
- 8.12. Тип UUID
- 8.13. Тип XML
- 8.14. Ð¢Ð¸Ð¿Ñ JSON
- 8.14.1. СинÑакÑÐ¸Ñ Ð²Ð²Ð¾Ð´Ð¸Ð¼ÑÑ
и вÑводимÑÑ
знаÑений JSON
- 8.14.2. ÐÑÑекÑÐ¸Ð²Ð½Ð°Ñ Ð¾ÑганизаÑÐ¸Ñ Ð´Ð¾ÐºÑменÑов JSON
- 8.14.3. ÐÑовеÑки на Ð²Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ðµ и ÑÑÑеÑÑвование
jsonb- 8.14.4. ÐндекÑаÑиÑ
jsonb- 8.14.5. ТÑанÑÑоÑмаÑии
- 8.14.2. ÐÑÑекÑÐ¸Ð²Ð½Ð°Ñ Ð¾ÑганизаÑÐ¸Ñ Ð´Ð¾ÐºÑменÑов JSON
- 8.14.1. СинÑакÑÐ¸Ñ Ð²Ð²Ð¾Ð´Ð¸Ð¼ÑÑ
и вÑводимÑÑ
знаÑений JSON
- 8.15. ÐаÑÑивÑ
- 8.15.1. ÐбÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñипов маÑÑивов
- 8.15.2. Ðвод знаÑÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива
- 8.15.3. ÐбÑаÑение к маÑÑивам
- 8.15.4. Ðзменение маÑÑивов
- 8.15.5. ÐоиÑк знаÑений в маÑÑиваÑ
- 8.15.6. СинÑакÑÐ¸Ñ Ð²Ð²Ð¾Ð´Ð¸Ð¼ÑÑ Ð¸ вÑводимÑÑ Ð·Ð½Ð°Ñений маÑÑива
- 8.15.2. Ðвод знаÑÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива
- 8.15.1. ÐбÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñипов маÑÑивов
- 8.16. СоÑÑавнÑе ÑипÑ
- 8.16.1. ÐбÑÑвление ÑоÑÑавнÑÑ
Ñипов
- 8.16.2. ÐонÑÑÑÑиÑование ÑоÑÑавнÑÑ Ð·Ð½Ð°Ñений
- 8.16.3. ÐбÑаÑение к ÑоÑÑавнÑм Ñипам
- 8.16.4. Ðзменение ÑоÑÑавнÑÑ Ñипов
- 8.16.5. ÐÑполÑзование ÑоÑÑавнÑÑ Ñипов в запÑоÑаÑ
- 8.16.6. СинÑакÑÐ¸Ñ Ð²Ð²Ð¾Ð´Ð¸Ð¼ÑÑ Ð¸ вÑводимÑÑ Ð·Ð½Ð°Ñений ÑоÑÑавного Ñипа
- 8.16.2. ÐонÑÑÑÑиÑование ÑоÑÑавнÑÑ Ð·Ð½Ð°Ñений
- 8.16.1. ÐбÑÑвление ÑоÑÑавнÑÑ
Ñипов
- 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.17.2. ÐÑимеÑÑ
- 8.17.1. ÐÑÑÑоеннÑе диапазоннÑе ÑипÑ
- 8.18. Ð¢Ð¸Ð¿Ñ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð²
- 8.19. ÐденÑиÑикаÑоÑÑ Ð¾Ð±ÑекÑов
- 8.20. Тип pg_lsn
- 8.21. ÐÑевдоÑипÑ
- 8.19. ÐденÑиÑикаÑоÑÑ Ð¾Ð±ÑекÑов
PostgreSQL пÑедоÑÑавлÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑм богаÑÑй аÑÑоÑÑÐ¸Ð¼ÐµÐ½Ñ Ð²ÑÑÑоеннÑÑ Ñипов даннÑÑ . ÐÑоме Ñого, полÑзоваÑели могÑÑ ÑоздаваÑÑ Ñвои ÑÐ¸Ð¿Ñ Ð² PostgreSQL, иÑполÑзÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE TYPE.
ТаблиÑа 8.1 ÑодеÑÐ¶Ð¸Ñ Ð²Ñе вÑÑÑоеннÑе ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð±Ñего полÑзованиÑ. Ðногие из алÑÑеÑнаÑивнÑÑ Ð¸Ð¼Ñн, пÑиведÑннÑÑ Ð² ÑÑолбÑе «ÐÑевдонимÑ», иÑполÑзÑÑÑÑÑ Ð²Ð½ÑÑÑи PostgreSQL по иÑÑоÑиÑеÑким пÑиÑинам. Ð ÑÑÐ¾Ñ ÑпиÑок не вклÑÑÐµÐ½Ñ Ð½ÐµÐºÐ¾ÑоÑÑе ÑÑÑаÑевÑие ÑÐ¸Ð¿Ñ Ð¸ ÑÐ¸Ð¿Ñ Ð´Ð»Ñ Ð²Ð½ÑÑÑеннего пÑименениÑ.
ТаблиÑа 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 |  | поÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð² жÑÑнале PostgreSQL |
point |  | геомеÑÑиÑеÑÐºÐ°Ñ ÑоÑка в плоÑкоÑÑи |
polygon |  | замкнÑÑÑй геомеÑÑиÑеÑкий пÑÑÑ Ð² плоÑкоÑÑи |
real | float4 | ÑиÑло одинаÑной ÑоÑноÑÑи Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой (4 байÑа) |
smallint | int2 | знаковое двÑÑ Ð±Ð°Ð¹Ñное Ñелое |
smallserial | serial2 | двÑÑ Ð±Ð°Ð¹Ñное Ñелое Ñ Ð°Ð²ÑоÑвелиÑением |
serial | serial4 | ÑеÑÑÑÑÑ Ð±Ð°Ð¹Ñное Ñелое Ñ Ð°Ð²ÑоÑвелиÑением |
text |  | ÑимволÑÐ½Ð°Ñ ÑÑÑока пеÑеменной Ð´Ð»Ð¸Ð½Ñ |
time [ ( |  | вÑÐµÐ¼Ñ ÑÑÑок (без ÑаÑового поÑÑа) |
time [ ( | timetz | вÑÐµÐ¼Ñ ÑÑÑок Ñ ÑÑÑÑом ÑаÑового поÑÑа |
timestamp [ ( |  | даÑа и вÑÐµÐ¼Ñ (без ÑаÑового поÑÑа) |
timestamp [ ( | timestamptz | даÑа и вÑÐµÐ¼Ñ Ñ ÑÑÑÑом ÑаÑового поÑÑа |
tsquery |  | запÑÐ¾Ñ ÑекÑÑового поиÑка |
tsvector |  | докÑÐ¼ÐµÐ½Ñ Ð´Ð»Ñ ÑекÑÑового поиÑка |
txid_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.
ÐаждÑй Ñип даннÑÑ Ð¸Ð¼ÐµÐµÑ Ð²Ð½ÑÑÑеннее пÑедÑÑавление, ÑкÑÑÑое ÑÑнкÑиÑми ввода и вÑвода. ÐÑи ÑÑом многие вÑÑÑоеннÑе ÑÐ¸Ð¿Ñ ÑÑандаÑÑÐ½Ñ Ð¸ имеÑÑ Ð¾ÑевиднÑе внеÑние ÑоÑмаÑÑ. Ðднако еÑÑÑ ÑипÑ, ÑникалÑнÑе Ð´Ð»Ñ PostgreSQL, напÑÐ¸Ð¼ÐµÑ Ð³ÐµÐ¾Ð¼ÐµÑÑиÑеÑкие пÑÑи, и еÑÑÑ ÑипÑ, коÑоÑÑе могÑÑ Ð¸Ð¼ÐµÑÑ ÑазнÑе ÑоÑмаÑÑ, напÑимеÑ, даÑа и вÑемÑ. ÐекоÑоÑÑе ÑÑнкÑии ввода и вÑвода не ÑвлÑÑÑÑÑ Ð² ÑоÑноÑÑи обÑаÑнÑми дÑÑг к дÑÑгÑ, Ñо еÑÑÑ ÑезÑлÑÑÐ°Ñ ÑÑнкÑии вÑвода Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑовпадаÑÑ Ñо Ð²Ñ Ð¾Ð´Ð½Ñм знаÑением из-за поÑеÑи ÑоÑноÑÑи.