Типы данных PostgreSQL
Типы данных
В этом документе обсуждаются типы данных PostgreSQL. При создании таблицы для каждого столбца вы указываете тип данных, т. Е. Какой тип данных вы хотите сохранить.
Это дает несколько преимуществ:
Согласованность: столбец может хранить значения одного типа. Таким образом, когда вы выбираете столбец с целочисленным типом, вы уверены, что результат будет иметь только целое число.
Проверка: в столбце могут храниться различные типы значений. Таким образом, если тип столбца целочисленный, вы не можете хранить там строку.
Компактность: поскольку столбец может хранить значения одного типа, он хранится в компактном виде.
Производительность: поскольку в столбце тип является однородным, сохраненные значения можно быстро обработать, что повышает производительность.
Широкий набор типов данных доступен в PostgreSQL. Кроме того, пользователи могут создавать свои собственные типы данных с помощью команды «CREATE TYPE».
В оставшейся части документа мы обсудили каждый из типов данных PostgreSQL, основанный на версии PostgreSQL 9.1.
Категория - Числовые типы
название | Описание | Размер хранилища | Спектр |
---|---|---|---|
SMALLINT | Хранит целые числа, маленький ассортимент. | 2 байта | От -32768 до +32767 |
целое число | Хранит целые числа. Используйте это, когда вы хотите хранить типичные целые числа. | 4 байта | От -2147483648 до +2147483647 |
BIGINT | Магазины целых чисел, большой ассортимент. | 8 байт | От -9223372036854775808 до 9223372036854775807 |
десятичный | указанная пользователем точность, точная | переменная | до 131072 цифр перед десятичной точкой; до 16383 цифр после запятой. |
числовой | указанная пользователем точность, точная | переменная | до 131072 цифр перед десятичной точкой; до 16383 цифр после запятой. |
реальный | переменная точность, неточная | 4 байта | Точность 6 десятичных цифр. |
двойная точность | переменная точность, неточная | 8 байт | Точность 15 десятичных цифр |
последовательный | автоматическое увеличение числа | 4 байта | 1 до 2147483647 |
bigserial | большое автоинкрементное целое число | 8 байт | 1 до 9223372036854775807 |
Категория - Денежные типы
название | Описание | Размер хранилища | Спектр |
---|---|---|---|
Деньги | сумма в валюте | 8 байт | От -92233720368547758.08 до +92233720368547758.07 |
Категория - Типы персонажей
название | Описание |
---|---|
различные символы (n), varchar (n) | переменная длина с ограничением |
символ (n), символ (n) | фиксированная длина, с подкладкой |
текст | переменная неограниченная длина |
Категория - двоичные типы данных
название | Описание | Размер хранилища |
---|---|---|
BYTEA | двоичная строка переменной длины | 1 или 4 байта плюс фактическая двоичная строка |
Категория - Дата / Время Типы
название | Описание | Размер хранилища | Низкая стоимость | Высокое значение | разрешение |
---|---|---|---|---|---|
отметка времени [(p)] [без часового пояса] | дата и время (без часового пояса) | 8 байт | 4713 г. до н.э. | 294276 н.э. | 1 микросекунда / 14 цифр |
отметка времени [(p)] с часовым поясом | дата и время с часовым поясом | 8 байт | 4713 г. до н.э. | 294276 н.э. | 1 микросекунда / 14 цифр |
Дата | дата (без времени суток) | 4 байта | 4713 г. до н.э. | 5874897 н.э. | 1 день |
время [(p)] [без часового пояса] | время суток (без даты) | 8 байт | 00:00:00 | 24:00:00 | 1 микросекунда / 14 цифр |
время [(p)] с часовым поясом | только время суток, с часовым поясом | 12 байт | 00: 00: 00 + 1459 | 24: 00: 00-1459 | 1 микросекунда / 14 цифр |
интервал [поля] [(p)] | 12 байт | интервал времени | -178000000 лет | 178000000 лет | 1 микросекунда / 14 цифр |
Категория - логический тип
название | Описание | Размер хранилища |
---|---|---|
логический | состояние истинного или ложного | 1 байт |
Категория - перечислимый тип
В отличие от других типов, перечисляемые типы необходимо создавать с помощью команды CREATE TYPE. Этот тип используется для хранения статического упорядоченного набора значений, например направлений компаса, то есть СЕВЕР, ЮГ, ВОСТОК и ЗАПАД или дни недели.
Код:
CREATE TYPE mood AS ENUM ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
После создания они могут использоваться как любые другие типы.
Категория - Геометрический Тип
Он представляет собой двумерные объекты, относящиеся к пространству.
название | Описание | Размер хранилища | Представление |
---|---|---|---|
точка | Точка на плоскости | 16 байт | (Х, у) |
линия | Бесконечная линия (не полностью реализована) | 32 байта | ((X1, y1), (х2, у2)) |
LSEG | Конечный отрезок | 32 байта | ((X1, y1), (х2, у2)) |
коробка | Прямоугольная коробка | 32 байта | ((X1, y1), (х2, у2)) |
дорожка | Закрытый путь (похож на полигон) | 16 + 16n байт | ((X1, y1), ...) |
дорожка | Открытый путь | 16 + 16n байт | [(X1, y1), ...] |
многоугольник | Полигон (похож на замкнутый путь) | 40 + 16n байт | ((X1, y1), ...) |
круг | круг | 24 байта | <(x, y), r> (центральная точка и радиус) |
Категория - тип сетевого адреса
Эти типы данных хранят адреса IPv4, IPv6 и MAC.
название | Описание | Размер хранилища |
---|---|---|
CIDR | Сети IPv4 и IPv6 | 7 или 19 байт |
инет | IPv4 и IPv6 хосты и сети | 7 или 19 байт |
MacAddr | MAC-адреса | 6 байт |
Категория - тип битовой строки
Типы битовых строк используются для хранения битовых масок. Они либо 0, либо 1. Существуют два типа битов - bit (n) и bitinging (n), где n - положительное целое число.
Категория - Тип текстового поиска
Используется для полнотекстового поиска. Для этого есть два типа данных:
tsvector : это отсортированный список отдельных слов, которые были нормализованы для объединения различных вариантов одного и того же слова и называются «лексемами».
tsquery : значение tsquery хранит лексемы, которые необходимо найти, и объединяет их в честь логических операторов & (AND), | (Или) и! (НЕ). Круглые скобки могут быть использованы для принудительной группировки операторов.
Категория - Тип UUID
UUID (универсальные уникальные идентификаторы) записывается в виде последовательности шестнадцатеричных цифр в нижнем регистре, в нескольких группах, разделенных дефисами, а именно в группе из 8 цифр, за которой следуют три группы из 4 цифр, за которыми следует группа из 12 цифр, всего из 32 цифр, представляющих 128 бит. Примером UUID является
550e8400-e29b-41d4-a716-446655440000
Категория - тип XML
Тип данных xml может использоваться для хранения данных XML. Для хранения данных XML сначала создайте значения XML с помощью функции xmlparse.
Код:
XMLPARSE (DOCUMENT '<?xml version="1.0"?><tutorial><title>PostgreSQL Tutorial </title><topics>...</topics></tutorial>')
XMLPARSE (CONTENT 'xyz<foo>bar</foo><bar>foo</bar>')
Категория - Тип массива
В PostgreSQL можно определить столбец таблицы как многомерный массив переменной длины. Могут быть созданы массивы любого встроенного или определенного пользователем базового типа, типа enum или составного типа. Но массивы доменов пока не поддерживаются.
Декларация массивов
Код:
CREATE TABLE monhly_savings (
name text,
saving_per_quarter integer[],
scheme text[][]);
Вставка значений
Код:
INSERT INTO monhly_savings
VALUES ('Bidhan',
'{20000, 14600, 23500, 13250}',
'{{"FD", "MF"}, {"FD", "Property"}}');
Доступ к массивам
Код:
SELECT name FROM monhly_savings WHERE saving_per_quarter[2] > saving_per_quarter[4];
Таким образом, вышеуказанная команда выберет людей, чьи сбережения больше во втором квартале, чем в четвертом квартале.
Категория - Составные типы
Этот тип представляет список имен полей и их типов данных, то есть структуру строки или записи таблицы.
Категория - Типы идентификаторов объектов
Идентификаторы объектов (OID) используются внутри PostgreSQL в качестве первичных ключей для различных системных таблиц.
название | Описание | Рекомендации | Пример значения |
---|---|---|---|
подъязычная | числовой идентификатор объекта | любой | 564182 |
regproc | имя функции | pg_proc | сумма |
regprocedure | функция с типами аргументов | pg_proc | сумма (int4) |
regoper | имя оператора | pg_operator | + |
regoperator | оператор с типами аргументов | pg_operator | * (целое число, целое число) или - (НЕТ, целое число) |
regclass | имя отношения | pg_class | pg_type |
regtype | имя типа данных | pg_type | целое число |
regconfig | конфигурация текстового поиска | pg_ts_config | английский |
regdictionary | словарь текстового поиска | pg_ts_dict | просто |
Категория - псевдо-типы
название | Описание |
---|---|
любой | Обозначает, что функция принимает любой тип входных данных. |
anyarray | Обозначает, что функция принимает любой тип данных массива |
anyelement | Обозначает, что функция принимает любой тип данных |
anyenum | Обозначает, что функция принимает любой тип данных enum |
anynonarray | Обозначает, что функция принимает любой тип данных, отличный от массива. |
CString | Обозначает, что функция принимает или возвращает строку C с нулевым символом в конце |
внутренний | Обозначает, что функция принимает или возвращает внутренний тип данных сервера. |
language_handler | Обработчик вызова процедурного языка объявляется как возвращающий language_handler. |
fdw_handler | Обработчик обёртки сторонних данных объявляется как возвращающий fdw_handler. |
запись | Обозначает функцию, возвращающую неопределенный тип строки. |
спусковой крючок | Объявлена триггерная функция для возврата триггера. |
недействительным | Обозначает, что функция не возвращает значения. |
непрозрачный | Устаревшее имя типа, которое раньше служило всем вышеуказанным целям. |
Предыдущий: PostgreSQL Connector и API
Далее: Создать базу данных
Новый контент: Composer: менеджер зависимостей для PHP , R программирования