Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db_lectures / 03. Типы данных PostgreSQL.docx
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
60.86 Кб
Скачать

8.8. Геометрические типы

Геометрические типы данных представлены двухмерными простанственными объектами. Table8-19 показывает доступные вPostgreSQLтипы данных. Наиболее фундаментальный тип - точка, является основой для всех остальных типов.

point16 байт Точка на плоскости (x,y)

line32 байта Бесконечная линия (не полностью реализованная) ((x1,y1),(x2,y2))

lseg32 байта Конечный сегмент линии (отрезок) ((x1,y1),(x2,y2))

box32 байта Четырёхугольник ((x1,y1),(x2,y2))

path16+16nбайт Закрытый путь (похож на полигон) ((x1,y1),...)

path16+16nбайт Открытый путь [(x1,y1),...]

polygon40+16nбайт Полигон (похож на закрытый путь) ((x1,y1),...)

circle24 байт Круг <(x,y),r> (центральнся точка и радиус)

8.9. Типы сетевых адресов

PostgreSQLпредлагает типы данных для хранения адресовIPv4,IPv6 иMAC, как показано вTable8-20. Для хранения сетевых адресов вместо обычных текстовых типов данных, более лучшим является использование этих типов, потому что эти типы предоставляют проверку вводимых значений на ошибки, а также специализированные операторы и функции (см.Section9.12).

cidr7 или 19 байтIPv4 иIPv6 сети

inet7 или 19 байтIPv4 иIPv6 узлы и сети

macaddr6 байтMACадреса

При сортировке типов данных inetиcidr, адресаIPv4 всегда будут находится перед адресамиIPv6, включая адресаIPv4 инкапсулированные или отображённые в адресаIPv6, такие как ::10.2.3.4 или ::ffff:10.4.3.2.

8.10. Типы битовых строк

Битовые строки — это строки которые состоят из единиц и нулей. Они могут использоваться для хранения визуальных битовых масок. В SQL существует два битовых типа: bit(n) и bit varying(n), где n является положительным целым числом.

Тип данных bit должен точно соответствовать длине n; попытка записи более короткого или более длинного значения битовой строки приведёт к ошибке. Данные типа bit varying имеют переменную длину, максимальное значение которой n; более длинные строки будут отвергнуты. Написание bit без длины, эквивалентно bit(1), в то время как bit varying без указания длины означает неограниченную длину.

8.11. Типы текстового поиска

PostgreSQLпредоставляет два типа данных, которые разработаны для поддержки полнотекстового поиска. Поиск производится с помощью коллекции документов на обычном языке, в которых ищутся те документы, которые лучшим образом совпадают с запросом. Типtsvectorпредставляет собой документ в оптимизированной для поиска форме, а типtsqueryпредставляет собой некий текстовый запрос.

8.11.1. Tsvector

Значение tsvectorпредставляет собой сортированный список разных лексем, которые являются словами в нормализованном виде, для объединения разных вариантов одного и того же слова (подробности см. вChapter12). Сортировка и удаление дублирующих значений выполняются автоматически при вводе, как показано в данном примере:

8.11.2. Tsquery

Любое значение tsqueryхранит лексемы, которые предназначены для поиска и комбинируют их, используя логические операторы & (И), | (ИЛИ) и ! (НЕ). Для группировки операторов можно использовать круглые скобки

8.12. Тип uuid

Тип данных uuidхранит универсальные уникальные идентификаторы (UUID) как определеноRFC4122,ISO/IEC9834-8:2005 и смежными стандартами. (Некоторые системы называют этот тип данных как глобальный уникальный идентификатор илиGUID.) Этот 128-битный идентификатор, генерируется с помощью алгоритма, призванного обеспечить максимально возможную уникальность генерируемого идентификатора от других генерируемых идентификаторов, использующих этот же алгоритм. Таким образом, для распределённых систем эти идентификаторы предоставляют более лучшую гарантию уникальности, чем те генераторы последовательностей, которые уникальны только внутри одной база дынных.