Типове данни на PostgreSQL: Символ - Числови - Двоична - Булево

Съдържание:

Anonim

PostgreSQL предлага богат набор от естествени типове данни за потребителите. Потребителите могат да добавят нови типове с помощта на командата CREATE TYPE. Освен това прави заявките по-опростени и по-четливи.

Типове данни в PostgreSQL

PostgreSQL поддържа следните типове данни:

  • Видове текст
  • Числови типове
  • Дати и времена
  • XML
  • JSON
  • Булево
  • Битове
  • Двоични данни
  • Мрежа
  • Масиви
  • Създайте своя тип данни
  • Булево
  • Временно
  • UUID
  • Масив
  • JSON
  • Специални типове данни за съхраняване на мрежов адрес и геометрични данни.

Нека проучим подробно типовете данни на PostgreSQL

  • Типове данни за знаци
  • Числови типове данни
  • Бинарни типове данни
  • Тип мрежов адрес
  • Тип за търсене на текст
  • Типове данни за дата / час
  • Булев тип
  • Геометрични типове данни
  • Изброени типове
  • Тип на обхвата
  • UUID тип
  • XML тип
  • Тип JSON
  • Псевдотипове

Типове данни за знаци

PostgreSQL поддържа типове данни за символи за съхраняване на текстови стойности. PostgreSQL изгражда типове данни от символи от същите вътрешни структури. PostgreSQL предлага три типа символни данни: CHAR (n), VARCHAR (n) и TEXT.

Име Описание
varchar (n) Позволява ви да декларирате променлива дължина с ограничение
Char (n) Фиксирана дължина, празна подплата
Текст Use може да използва този тип данни, за да декларира променлива с неограничена дължина

Числови типове данни

PostgreSQL поддържа два различни типа числа:

  • Цели числа
  • Числа с плаваща запетая
Име Размер на магазина Обхват
smallint 2 байта -32768 до +32767
цяло число 4 байта -2147483648 до +2147483647
bigint 8 байта -9223372036854775808 до 9223372036854775807
десетична променлива Ако сте го декларирали като десетичен тип данни, варира от 131072 цифри преди десетичната запетая до 16383 цифри след десетичната запетая
числови променлива Ако го декларирате като число, можете да включите число до 131072 цифри преди десетичната запетая до 16383 цифри след десетичната запетая
истински 4 байта Точност до 6 десетични цифри
двойно 8 байта Точност на 15 десетични цифри

Бинарни типове данни

Двоичен низ е последователност от октети или байтове. Бинарните типове данни Postgres се разделят по два начина.

  • Двоичните низове позволяват съхраняване на коефициенти на стойност нула
  • Непечатни октети

Символните низове не позволяват нулеви октети, а също така забраняват всякакви други октетни стойности и последователности, които са невалидни според правилата за кодиране на набора от символи на базата данни.

Име Размер на съхранението Описание
Байт 1 до 4 байта плюс размера на двоичния низ Двоичен низ с променлива дължина

Тип мрежов адрес

Много приложения съхраняват информация за мрежата като IP адрес на потребители или

сензори. PostgreSQL има три собствени типа, които ви помагат да оптимизирате мрежовите данни.

Име Размер Описание
сайдер 7 или 19 бай IPV4 и IPv6 мрежи
Инет 7 или 19 байта IPV4 и IPV5 хост и мрежи
macaddr 6 байта MAC адреси

Използването на типове мрежови адреси има следните предимства

  1. Спестяване на място за съхранение
  2. Проверка на грешката при въвеждане
  3. Функции като търсене на данни по подмрежа

Тип за търсене на текст

PostgreSQL предоставя два типа данни, които са предназначени да поддържат пълнотекстово търсене. Пълнотекстовото търсене е търсене в колекция от документи на естествен език, за да се търсят тези, които най-добре отговарят на заявка.

  • Търсене на текст в Tsvector Типовете променливи PostgreSQL представляват документ във форма, оптимизирана за търсене на текст
  • Текстовото търсене на типа заявка съхранява ключовите думи, които трябва да бъдат търсени

Типове данни за дата / час

PostgreSQL клеймото предлага микросекундна точност вместо втора точност. Освен това имате възможност да съхранявате с часови пояс или без. PostgreSQL ще преобразува клеймото с часовата зона в UTC при въвеждане и ще го съхрани.

Въвеждането на дата и час се приема в различен формат, включително традиционни Postgres, ISO 8601. Съвместим с SQL и др.

PostgreSQL поддържа поръчки за ден / месец / година. Поддържаните формати са DMY, MDY, YMD

Временни типове данни

Име Размер Обхват Резолюция
Клеймо за време без часова зона 8 байта 4713 пр. Н. Е. До 294276 г. сл. Н. Е 1 микросекунда / 14 цифри
Клеймо с часовата зона 8 байта 4713 пр. Н. Е. До 294276 г. сл. Н. Е 1 микросекунда / 14 цифри
дата 4 байта 4713 пр. Н. Е. До 294276 г. сл. Н. Е Един ден
Време без часова зона 8 байта 00:00:00 до 24:00:00 1 микросекунда / 14 цифри
Време с часовата зона 12 байта 00:00:00 + 1459 до 24: 00: 00-1459 1 микросекунда / 14 цифри
Интервал 12 байта -178000000 до 178000000 години 1 микросекунда / 14 цифри

Примери:

Вход Описание
2025-09-07 ISO 8601, 7 септември с произволен стил на датата (препоръчителен формат)
7 септември 2025 г. 7 септември с всякакъв стил дата
7.9.2025 7 септември с MDY, 9 юли с DMY
9/7/25 7 септември 2025 г. с MDY
2025-септември-7 7 септември с всякакъв стил дата
Септември-7-2018 7 септември с всякакъв стил дата
7 септември-25 7 септември 2025 г. с YMD
20250907 ISO 8601,7 септември 20225 във всеки режим
2025.250 година и ден от годината, в случая 7 септември 2025 г.
J25250 Юлианска среща

Време / Време с въвеждане на часова зона

Вход Описание
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 ч Същото като 11:19
23:19 същото като 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, същото като 23:19 EST
23:19 EST часова зона, посочена като EST, същото като 23:19 EST

Булев тип

Може да съдържа булев тип данни

  • Вярно
  • Невярно
  • нула

стойности.

Ползвате булев или булева дума за обявяване на колона с Булев тип данни.

Когато вмъквате стойности в логическа колона, Postgre преобразува стойности като

  • Да
  • у
  • 1
  • т
  • вярно

в 1.

Докато ценности като

  • Не
  • н
  • 0
  • F
  • Невярно

се преобразуват в 0

Докато избирате данни, стойностите отново се преобразуват обратно в yes, true, y и т.н.

Геометрични типове данни

Геометричните типове данни представляват двумерни пространствени обекти. Те помагат за извършване на операции като ротации, мащабиране, превод и т.н.

Име Размер на съхранението Представителство Описание
Точка 16 байта Точка на равнина (х, у)
Линия 32 байта Безкрайна линия ((xl.yl). (x2.y2))
Lseg 32 байта Краен сегмент от права ((xl.yl). (x2.y2))
Кутия 32 байта Правоъгълна кутия ((xl.yl). (x2.y2))
Път 16n + 16n байта Затворете и отворете пътя ((xl.yl), ...)
Многоъгълник 40 + 16n байта Многоъгълник [(xl.yl)….]
Кръг 24 байта Кръг <(xy) .r> (централна точка и радиус)

Изброени типове

Изброеният тип данни PostgreSQL е полезен за представяне на рядко променяща се информация като код на държава или идентификатор на клон. Типът на изброените данни е представен в таблица с външни ключове, за да се осигури целостта на данните.

Пример:

Цветът на косата е доста статичен в демографската база данни

CREATE TYPE hair_color AS ENUM('brown','black','red','grey','blond')

Тип на обхвата

Много бизнес приложения изискват данни в диапазони. Обикновено се дефинират две колони (пример: начална дата, крайна дата) за справяне с диапазони. Това е едновременно неефективно и трудно за поддържане.

Postgre е изградил типове диапазони, както следва

  • int4range - Показване на обхват на цяло число
  • int8range - Показване на диапазон от bigint
  • numrange - Показва числовия диапазон
  • tstrange - Помага ви да показвате клеймо за време без часова зона
  • странно - Позволява ви да покажете клеймо с часовата зона
  • период от време - диапазон от дата

UUID тип

Универсално уникалните идентификатори (UUID) е 128-битово количество, което се генерира от алгоритъм. Много е малко вероятно същият идентификатор да бъде генериран от друго лице в света, използвайки същия алгоритъм. Ето защо за разпределените системи тези идентификатори са идеален избор, тъй като предлагат уникалност в рамките на една база данни. UUID се записва като група шестнадесетични цифри с малки букви, с различни групи, разделени с тирета.

PostgreSQL има собствен тип UUID данни, който консумира 16 байта съхранение ... UUID е идеален тип данни за първични ключове.

Пример:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre също така приема алтернативни форми на UUID входове като всички главни букви, без тирета, скоби и т.н.

XML тип

PostgreSQL ви позволява да съхранявате XML данни в тип данни, но това не е нищо повече от разширение на текстов тип данни. Но предимството е, че той проверява дали входният XML е добре оформен.

Пример:

XMLPARSE (DOCUMENT 'Data Type')

Тип JSON

За съхранение на JSON данни PostgreSQL предлага 2 типа данни

  1. JSON
  2. JSONB
json Jsonb
Просто разширение на текстов тип данни с валидиране JSON Двоично представяне на JSON данните
Вмъкването е бързо, но извличането на данни е относително бавно. Вмъкването е бавно, но изберете (извличането на данни е бързо)
Запазва въведените данни точно така, както е, включително празното пространство. Поддържа индексиране. Може да оптимизира празното пространство, за да направи извличането по-бързо.
Преработка при извличане на данни Не се изисква преработка при извличане на данни

Най-широко използваният тип данни JSON използва us jsonb, освен ако няма някаква специализирана необходимост да се използва тип данни JSON.

Пример:

CREATE TABLE employee (id integer NOT NULL,age integer NOT NULL,data jsonb);
INSERT INTO employee VALUES (1, 35, '{"name": "Tom Price", "tags": ["Motivated", "SelfLearner"], "onboareded": true}');

Псевдотипове

PostgreSQL има много специални записи, които се наричат ​​псевдотипове. Не можете да използвате псевдотипове като типове колони PostgreSQL. Те се използват за деклариране или аргумент на функция или тип връщане.

Всеки от наличните псевдотипове е полезен в ситуации, когато документите за поведение на дадена функция не съответстват на просто вземане или връщане на стойност на определен тип SQL данни.

Име Описание
Всякакви Функцията приема всички видове входни данни.
Масив Функцията приема всеки тип данни от масив.
Всеки елемент Функцията приема всеки тип данни.
Всяко преброяване Функцията приема всеки тип данни на enum.
Nonarray Функцията приема всеки тип данни без масив.
Cstring Функцията приема или връща C-низ с край до нула.
Вътрешен Вътрешната функция приема или връща вътрешен тип данни на сървъра.
Език_ръчник Декларирано е, че връща обработващия език.
Запис Намерете функция, която връща неуточнен тип ред.
Задействане Функция за задействане се използва за връщане на задействане.

Важно е потребителят, който използва тази функция, да се увери, че функцията ще се държи безопасно, когато псевдо-тип се използва като тип аргумент.

Най-добри практики при използване на типове данни

  • Използвайте тип данни „текст“, освен ако не искате да ограничите въвеждането
  • Никога не използвайте „char“.
  • Целите числа използват "int." Използвайте bigint само когато имате наистина големи числа
  • Използвайте "числови" почти винаги
  • Използвайте float в PostgreSQL, ако имате IEEE 754 източник на данни

Обобщение

  • PostgreSQL предлага богат набор от естествени типове данни за потребителите
  • PostgreSQL поддържа типове данни за символи за съхраняване на текстови стойности
  • PostgreSQL поддържа два различни типа числа: 1. Цели числа, 2. Числа с плаваща запетая
  • Двоичен низ е последователност от байтове или октети
  • PostgreSQL има тип мрежов адрес, който ви помага да оптимизирате съхранението на мрежови данни
  • Търсене на текст PostgreSQL структурите с данни са предназначени да поддържат пълнотекстово търсене
  • Дата / час PSQL типовете данни позволяват информация за дата и час в различни формати
  • Булевите типове полета Postgres могат да съдържат три стойности 1. True 2. False 3. Null
  • Геометричните типове данни PostgreSQL представляват двумерни пространствени обекти
  • Изброените типове данни в PostgreSQL са полезни за представяне на рядко променяща се информация като код на държава или идентификатор на клон
  • Универсално уникалните идентификатори (UUID) е 128-битово количество, което се генерира от алгоритъм
  • PostgreSQL има много специални записи, които се наричат ​​псевдотипове
  • Най-добрата практика е да използвате тип данни "текст", освен ако не искате да ограничите въвеждането