Учебное пособие Санкт-Петербург «бхв-петербург»


SELECT 0.1::real * 10 = 1.0::real



Pdf көрінісі
бет39/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   35   36   37   38   39   40   41   42   ...   256
sql osnovi yazika

SELECT 0.1::real * 10 = 1.0::real;
?column?
----------
f
(1 строка)
В дополнение к обычным числам эти типы данных поддерживают и специальные
значения Infinity (бесконечность), −Infinity (отрицательная бесконечность) и NaN (не
число).
PostgreSQL поддерживает также тип данных float, определенный в стандарте SQL.
В объявлении типа может использоваться параметр: float(p). Если его значение
лежит в диапазоне от 1 до 24, то это будет равносильно использованию типа real,
а если же значение лежит в диапазоне от 25 до 53, то это будет равносильно исполь-
зованию типа double precision. Если же при объявлении типа параметр не исполь-
зуется, то это также будет равносильно использованию типа double precision.
Последним из числовых типов является тип serial. Однако он фактически реализо-
ван не как настоящий тип, а просто как удобная замена целой группы SQL-команд.
Тип serial удобен в тех случаях, когда требуется в какой-либо столбец вставлять
уникальные целые значения, например, значения суррогатного первичного ключа.
Синтаксис для создания столбца типа serial таков:
CREATE TABLE имя-таблицы ( имя-столбца serial );
Эта команда эквивалентна следующей группе команд:
CREATE SEQUENCE имя-таблицы_имя-столбца_seq;
CREATE TABLE имя-таблицы
(
имя-столбца integer NOT NULL
DEFAULT nextval( 'имя-таблицы_имя-столбца_seq' )
);
ALTER SEQUENCE имя-таблицы_имя-столбца_seq
OWNED BY имя-таблицы.имя-столбца;
53


Глава 4. Типы данных СУБД PostgreSQL
Для пояснения вышеприведенных команд нам придется немного забежать впе-
ред. Одним из видов объектов в базе данных являются так называемые последова-
тельности. Это, по сути, генераторы уникальных целых чисел. Для работы с этими
последовательностями-генераторами используются специальные функции. Одна из
них — это функция nextval, которая как раз и получает очередное число из последо-
вательности, имя которой указано в качестве параметра функции. В команде CREATE
TABLE ключевое слово DEFAULT предписывает, чтобы СУБД использовала в качестве
значения по умолчанию то значение, которое формирует функция nextval. Поэтому
если в команде вставки строки в таблицу INSERT INTO не будет передано значение
для поля типа serial, то СУБД обратится к услугам этой функции. В том случае, ко-
гда в таблице поле типа serial является суррогатным первичным ключом, тогда нет
необходимости указывать явное значение для вставки в это поле.
В заключение скажем, что кроме типа serial существуют еще два аналогичных
типа: bigserial и smallserial. Им фактически, за кадром, соответствуют типы
bigint и smallint. Поэтому при выборе конкретного последовательного типа нуж-
но учитывать предполагаемое число строк в таблице и частоту удаления и вставки
строк, поскольку даже для небольшой таблицы может потребоваться большой диа-
пазон, если операции удаления и вставки строк выполняются часто.


Достарыңызбен бөлісу:
1   ...   35   36   37   38   39   40   41   42   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет