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

Типы, определяемые пользователем

Эта категория типов данных связана с объектными расширениями языка SQL. Структурные типы (Structured Types). Соответствующие возможности SQL:1999 позволяют определять долговременно хранимые, именованные типы данных 4), включающие один или более атрибутов любого из допустимых в SQL типа данных 5), в том числе другие структурные типы, типы коллекций, строчные типы и т. д. Стандарт SQL не накладывает ограничений на сложность получаемой в результате структуры данных, однако не запрещает устанавливать такие ограничения в реализации. Дополнительные механизмы определяемых пользователями методов, функций и процедур позволяют определить поведенческие аспекты структурного типа.

Индивидуальные типы (Distinct Types). Можно определить долговременно хранимый, именованный тип данных, опираясь на единственный предопределенный тип. Например, можно определить индивидуальный тип данных PRICE, опираясь на тип DECIMAL (5, 2). Тогда значения типа PRICE представляются точно так же, как значения типа DECIMAL (5, 2). Однако в SQL:1999 индивидуальный тип не наследует от своего опорного типа набор операций над значениями. Например, чтобы сложить два значения типа PRICE требуется явно сообщить системе, что с этими значениями нужно обращаться как со значениями типа DECIMAL (5, 2). Другая возможность состоит в явном определении методов, функций и процедур, связанных с данным индивидуальным типом. Похоже, что в будущих версиях стандарта появятся и другие, более удобные возможности.

Ссылочные типы

Эта категория типов данных связана с объектными расширениями языка SQL. Обеспечивается механизм конструирования типов ( ссылочных типов ), которые могут использоваться в качестве типов столбцов некоторого вида таблиц ( типизированных таблиц ). Фактически значениями ссылочного типа являются строки соответствующей типизированной таблицы. Более точно, каждой строке типизированной таблицы приписывается уникальное значение (нечто вроде первичного ключа, назначаемого системой или приложением), которое может использоваться в методах, определенных для табличного типа, для уникальной идентификации строк соответствующей таблицы. Эти уникальные значения называются ссылочными значениями, а их тип – ссылочным типом. Ссылочный тип может содержать только те значения, которые действительно ссылаются на экземпляры указанного типа (т. е. на строки соответствующей типизированной таблицы ).

Типы данных PostgreSql 8.4.2

8.1. Числовые типы

Числовые типы представлены двух, четырёх и восьми байтовыми целыми числами, четырёх и восьми байтовыми числами с плавающей точкой и числами с выбираемой точностью (количеством знаков после точки). В Table 8-2 перечислены доступные типы.

Имя Размер хранения Описание Диапазон

smallint 2 байта целые числа малого диапазона от -32768 до +32767

integer 4 байта обычные целые числа от -2147483648 до +2147483647

bigint 8 байт целые числа большого диапазона от -9223372036854775808 до 9223372036854775807

decimal переменный числа с точностью, указываемой пользователем, точное число без ограничений

numeric переменный числа с точностью, указываемой пользователем, точное число без ограничений

real 4 байта переменная точность, неточное число точность 6 десятичных разрядов

double precision 8 байт переменная точность, неточное число точность 15 десятичных разрядов

serial 4 байта целое число с автоувеличением от 1 до 2147483647

bigserial 8 байт большое целое число с автоувеличением от 1 до 9223372036854775807