Ðлава 8. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
- СодеÑжание
- 8.1. ЧиÑловÑе ÑипÑ
- 8.2. ÐенежнÑе ÑипÑ
- 8.3. СимволÑнÑе ÑипÑ
- 8.4. ÐвоиÑнÑе ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
- 8.3. СимволÑнÑе ÑипÑ
- 8.5. Ð¢Ð¸Ð¿Ñ Ð´Ð°ÑÑ/вÑемени
- 8.6. ÐогиÑеÑкий Ñип
- 8.7. Ð¢Ð¸Ð¿Ñ Ð¿ÐµÑеÑиÑлений
- 8.8. ÐеомеÑÑиÑеÑкие ÑипÑ
- 8.8.1. ТоÑки
- 8.8.2. ÐÑÑмÑе
- 8.8.3. ÐÑÑезки
- 8.8.4. ÐÑÑмоÑголÑники
- 8.8.5. ÐÑÑи
- 8.8.6. ÐногоÑголÑники
- 8.8.7. ÐкÑÑжноÑÑи
- 8.8.2. ÐÑÑмÑе
- 8.8.1. ТоÑки
- 8.9. ТипÑ, опиÑÑваÑÑие ÑеÑевÑе адÑеÑа
- 8.9.1. inet
- 8.9.2. cidr
- 8.9.3. РазлиÑÐ¸Ñ inet и cidr
- 8.9.4. macaddr
- 8.9.2. cidr
- 8.9.1. inet
- 8.10. ÐиÑовÑе ÑÑÑоки
- 8.11. ТипÑ, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑекÑÑового поиÑка
- 8.12. Тип UUID
- 8.13. Тип XML
- 8.14. Ð¢Ð¸Ð¿Ñ 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.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. Тип pg_lsn
- 8.20. ÐÑевдоÑипÑ
- 8.19. Тип pg_lsn
PostgreSQL пÑедоÑÑавлÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑм богаÑÑй аÑÑоÑÑÐ¸Ð¼ÐµÐ½Ñ Ð²ÑÑÑоеннÑÑ Ñипов даннÑÑ . ÐÑоме Ñого, полÑзоваÑели могÑÑ ÑоздаваÑÑ Ñвои ÑÐ¸Ð¿Ñ Ð² PostgreSQL, иÑполÑзÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE TYPE.
ТаблиÑа 8-1 ÑодеÑÐ¶Ð¸Ñ Ð²Ñе вÑÑÑоеннÑе ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð±Ñего полÑзованиÑ. Ðногие из алÑÑеÑнаÑивнÑÑ Ð¸Ð¼Ñн, пÑиведÑннÑÑ Ð² колонке "ÐÑевдонимÑ", иÑполÑзÑÑÑÑÑ Ð²Ð½ÑÑÑи PostgreSQL по иÑÑоÑиÑеÑким пÑиÑинам. Ð ÑÑÐ¾Ñ ÑпиÑок не вклÑÑÐµÐ½Ñ Ð½ÐµÐºÐ¾ÑоÑÑе ÑÑÑаÑевÑие ÑÐ¸Ð¿Ñ Ð¸ ÑÐ¸Ð¿Ñ Ð´Ð»Ñ Ð²Ð½ÑÑÑеннего пÑименениÑ.
ТаблиÑа 8-1. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
| ÐÐ¼Ñ | ÐÑÐµÐ²Ð´Ð¾Ð½Ð¸Ð¼Ñ | ÐпиÑание |
|---|---|---|
| bigint | int8 | знаковое Ñелое из 8 Ð±Ð°Ð¹Ñ |
| bigserial | serial8 | воÑÑмибайÑное Ñелое Ñ Ð°Ð²ÑоÑвелиÑением |
| bit [ (n) ] | биÑÐ¾Ð²Ð°Ñ ÑÑÑока ÑикÑиÑованной Ð´Ð»Ð¸Ð½Ñ | |
| bit varying [ (n) ] | varbit | биÑÐ¾Ð²Ð°Ñ ÑÑÑока пеÑеменной Ð´Ð»Ð¸Ð½Ñ |
| boolean | bool | логиÑеÑкое знаÑение (true/false) |
| box | пÑÑмоÑголÑник в плоÑкоÑÑи | |
| bytea | двоиÑнÑе даннÑе ("маÑÑив байÑ") | |
| character [ (n) ] | char [ (n) ] | ÑимволÑÐ½Ð°Ñ ÑÑÑока ÑикÑиÑованной Ð´Ð»Ð¸Ð½Ñ |
| character varying [ (n) ] | varchar [ (n) ] | ÑимволÑÐ½Ð°Ñ ÑÑÑока пеÑеменной Ð´Ð»Ð¸Ð½Ñ |
| cidr | ÑеÑевой адÑÐµÑ IPv4 или IPv6 | |
| circle | кÑÑг в плоÑкоÑÑи | |
| date | календаÑÐ½Ð°Ñ Ð´Ð°Ñа (год, меÑÑÑ, денÑ) | |
| double precision | float8 | ÑиÑло двойной ÑоÑноÑÑи Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой (8 байÑ) |
| inet | адÑÐµÑ Ñзла IPv4 или IPv6 | |
| integer | int, int4 | знаковое ÑеÑÑÑÑÑ Ð±Ð°Ð¹Ñное Ñелое |
| interval [ Ð¿Ð¾Ð»Ñ ] [ (p) ] | инÑеÑвал вÑемени | |
| json | ÑекÑÑовÑе даннÑе JSON | |
| jsonb | двоиÑнÑе даннÑе JSON, ÑазобÑаннÑе | |
| line | пÑÑÐ¼Ð°Ñ Ð² плоÑкоÑÑи | |
| lseg | оÑÑезок в плоÑкоÑÑи | |
| macaddr | MAC-адÑÐµÑ | |
| money | Ð´ÐµÐ½ÐµÐ¶Ð½Ð°Ñ ÑÑмма | |
| numeric [ (p, s) ] | decimal [ (p, s) ] | веÑеÑÑвенное ÑиÑло заданной ÑоÑноÑÑи |
| path | геомеÑÑиÑеÑкий пÑÑÑ Ð² плоÑкоÑÑи | |
| pg_lsn | ÐоÑледоваÑелÑнÑй Ð½Ð¾Ð¼ÐµÑ Ð² жÑÑнале PostgreSQL | |
| point | геомеÑÑиÑеÑÐºÐ°Ñ ÑоÑка в плоÑкоÑÑи | |
| polygon | замкнÑÑÑй геомеÑÑиÑеÑкий пÑÑÑ Ð² плоÑкоÑÑи | |
| real | float4 | ÑиÑло одинаÑной ÑоÑноÑÑи Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой (4 байÑа) |
| smallint | int2 | знаковое двÑÑ Ð±Ð°Ð¹Ñное Ñелое |
| smallserial | serial2 | двÑÑ Ð±Ð°Ð¹Ñное Ñелое Ñ Ð°Ð²ÑоÑвелиÑением |
| serial | serial4 | ÑеÑÑÑÑÑ Ð±Ð°Ð¹Ñное Ñелое Ñ Ð°Ð²ÑоÑвелиÑением |
| text | ÑимволÑÐ½Ð°Ñ ÑÑÑока пеÑеменной Ð´Ð»Ð¸Ð½Ñ | |
| time [ (p) ] [ without time zone ] | вÑÐµÐ¼Ñ ÑÑÑок (без ÑаÑового поÑÑа) | |
| time [ (p) ] with time zone | timetz | вÑÐµÐ¼Ñ ÑÑÑок Ñ ÑÑÑÑом ÑаÑового поÑÑа |
| timestamp [ (p) ] [ without time zone ] | даÑа и вÑÐµÐ¼Ñ (без ÑаÑового поÑÑа) | |
| timestamp [ (p) ] with time zone | 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, напÑÐ¸Ð¼ÐµÑ Ð³ÐµÐ¾Ð¼ÐµÑÑиÑеÑкие пÑÑи, и еÑÑÑ ÑипÑ, коÑоÑÑе могÑÑ Ð¸Ð¼ÐµÑÑ ÑазнÑе ÑоÑмаÑÑ, напÑимеÑ, даÑа и вÑемÑ. ÐекоÑоÑÑе ÑÑнкÑии ввода и вÑвода не ÑвлÑÑÑÑÑ Ð² ÑоÑноÑÑи обÑаÑнÑми дÑÑг к дÑÑгÑ, Ñо еÑÑÑ ÑезÑлÑÑÐ°Ñ ÑÑнкÑии вÑвода Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑовпадаÑÑ Ñо Ð²Ñ Ð¾Ð´Ð½Ñм знаÑением из-за поÑеÑи ÑоÑноÑÑи.
| ÐÑед. | ÐаÑало | След. |
| ÐапÑоÑÑ WITH (ÐбÑие ÑаблиÑнÑе вÑÑажениÑ) | УÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑÑе | ЧиÑловÑе ÑÐ¸Ð¿Ñ |