[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-postgresql-kakie-osnovnye-tipy-dannykh-podderzhivaet-postgresql":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},929,"kakie-osnovnye-tipy-dannykh-podderzhivaet-postgresql",28,"postgresql","PostgreSQL","🐘","Какие основные типы данных поддерживает PostgreSQL?","PostgreSQL обладает одной из самых богатых систем типов данных среди всех СУБД, включая числовые, строковые, временные, а также специализированные типы вроде UUID, JSONB и массивов.\n\n### Числовые типы\n\n| Тип | Размер | Диапазон |\n|---|---|---|\n| `smallint` | 2 байта | -32768 до +32767 |\n| `integer` | 4 байта | -2147483648 до +2147483647 |\n| `bigint` | 8 байт | -9223372036854775808 до +9223372036854775807 |\n| `decimal\u002Fnumeric` | переменный | до 131072 цифр до точки, до 16383 после |\n| `real` | 4 байта | 6 значащих цифр |\n| `double precision` | 8 байт | 15 значащих цифр |\n\nДля финансовых расчётов всегда используют `numeric` — он обеспечивает точные вычисления без ошибок округления, в отличие от `real` и `double precision`.\n\n### Символьные типы\n\n- `char(n)` — строка фиксированной длины, дополняется пробелами\n- `varchar(n)` — строка переменной длины с ограничением\n- `text` — строка произвольной длины (без ограничения)\n\nВ PostgreSQL `varchar` без указания длины и `text` абсолютно идентичны по производительности. Рекомендуется использовать `text`, а ограничения длины делать через `CHECK`-constraints.\n\n### Дата и время\n\n- `date` — только дата (4 байта)\n- `time` — только время (8 байт)\n- `timestamp` — дата и время без часового пояса\n- `timestamptz` (`timestamp with time zone`) — дата и время с часовым поясом\n- `interval` — интервал времени\n\n```sql\n-- Рекомендуется всегда использовать timestamptz\nCREATE TABLE transactions (\n    id bigserial PRIMARY KEY,\n    amount numeric(15, 2) NOT NULL,\n    created_at timestamptz DEFAULT now()\n);\n```\n\n### Прочие типы\n\n- `boolean` — `true`, `false`, `null`\n- `uuid` — 128-битный универсальный уникальный идентификатор; для генерации используется `gen_random_uuid()` (с PostgreSQL 13) или расширение `uuid-ossp`\n- `json` \u002F `jsonb` — хранение JSON-данных (текстовое и бинарное представление)\n- Массивы — любой тип данных может быть массивом: `integer[]`, `text[]`\n- Serial типы — `serial`, `bigserial`, `smallserial` (автоинкрементные псевдотипы)\n\nНачиная с PostgreSQL 10 рекомендуется использовать стандартный `GENERATED ALWAYS AS IDENTITY` вместо `serial`.\n\n```sql\nCREATE TABLE clients (\n    id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,\n    name text NOT NULL\n);\n```\n\n> **На собеседовании:** ключевые моменты — `numeric` для денег (не `double`), `timestamptz` вместо `timestamp`, `text` вместо `varchar`, и `GENERATED ALWAYS AS IDENTITY` вместо `serial`. Это показывает знание лучших практик, а не просто перечисление типов.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"Какие основные типы данных поддерживает PostgreSQL? — Gymterview","PostgreSQL обладает одной из самых богатых систем типов данных среди всех СУБД, включая числовые, строковые, временные, а также специализированные типы вроде UU","PostgreSQL обладает одной из самых богатых систем типов данных среди всех СУБД, включая числовые, строковые, временные, ",[7,13],"PostgreSQL обладает одной из самых богатых систем типов данных среди всех СУБД, включая числовые, строковые, временные, а также специализированные типы вроде UUID, JSONB и массивов.",true]