Усі поширені типи колонок PostgreSQL, згруповані за родинами: цілі числа, десяткові, текст, час, булеві значення та UUID, JSON, мережеві адреси, складені типи і типи розширень. Кожен рядок показує, що зберігає тип і коли його обирати.
У PostgreSQL десятки типів, але щоденне проєктування схеми обходиться ключовим набором. Повторювані вибори: integer чи numeric для чисел, varchar чи text для рядків (зазвичай достатньо text), timestamp чи timestamptz (для всього реального світу обирайте timestamptz) та json чи jsonb (обирайте jsonb — він двійковий і підтримує індекси). Обирайте найконкретніший тип, який ще пасує; база даних контролюватиме це за вас.
Довідкова таблиця · 46 записи
Типи даних PostgreSQLExplained
46 of 46 rows
Цілі числа
2-байтове ціле число від -32768 до 32767.
Рідко; лише коли треба зекономити місце.
4-байтове ціле, приблизно плюс/мінус 2 мільярди.
Типова колонка для цілих чисел.
8-байтове ціле, приблизно плюс/мінус 9 квінтильйонів.
Дуже великі лічильники або зовнішні ідентифікатори.
4-байтове ціле з автовростанням.
Застарілі автономерні ключі; від PG 10 рекомендована заміна — GENERATED AS IDENTITY.
2-байтовий і 8-байтовий варіанти serial.
Автонумерація, узгоджена з колонкою smallint або bigint.
Ціле число, яке таблиця генерує за вас (GENERATED ALWAYS AS IDENTITY).
Сучасний serial; стандарт SQL і захищеніший від ручних вставок.
Десяткові та з плаваючою крапкою
Точні десяткові з довільною точністю.
Гроші та все, де неприпустимі похибки заокруглення.
4-байтове число одинарної точності з плаваючою крапкою.
Наближені наукові значення, де точність не критична.
8-байтове число подвійної точності з плаваючою крапкою.
Геопросторові значення, статистика та ознаки для ML.
Грошова сума з фіксованою локаллю.
Рідко; numeric із кодом валюти на стороні застосунку переносиміший.
Текст
Текст фіксованої довжини, доповнений пробілами.
Коди відомої ширини; рідко потрібно.
Текст змінної довжини з необов'язковим лімітом.
Обмежені рядки, як-от імена користувачів або електронна пошта.
Текст змінної довжини без обмеження довжини.
Універсальна рядкова колонка; жодного штрафу продуктивності проти varchar.
Час
Календарна дата без часу доби.
Дні народження та терміни виконання.
Час доби з часовим поясом або без нього.
Щоденні нагадування або години роботи.
Дата й час без часового поясу.
Застарілі схеми; у нових роботах уникайте.
Дата й час, збережені як UTC, показані в зоні клієнта.
Типовий вибір для будь-якого реального моменту; обирайте замість timestamp.