Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть II.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.56 Mб
Скачать

Типы данных

В стандарте SQL1 был описан лишь минимальный набор типов данных, которые можно использовать для представления информации в реляционной базе данных. Они поддерживаются во всех коммерческих СУБД. Стандарт SQL2 добавил в этот список строки переменной длины, значения даты и времени и др. Современные СУБД позволяют обрабатывать данные самых разнообразных типов, среди которых наиболее распространенными являются:

  • Целые числа. В столбцах, имеющих этот тип данных, обычно хранятся данные о ценах, количествах, возрасте сотрудников и т.д. Целочисленные столбцы часто используются также для хранения идентификаторов, таких как идентификатор клиента, служащего или заказа.

  • Десятичные числа. В столбцах данного типа хранятся числа, имеющие дробную часть, но которые необходимо вычислять точно, например курсы валют и проценты. Кроме того, в таких столбцах часто хранятся денежные величины.

  • Числа с плавающей запятой. Столбцы этого типа используются для хранения величин, которые можно вычислять приблизительно, например значения весов и расстояний. Числа с плавающей запятой могут представлять больший диапазон значений, чем десятичные числа, однако при вычислениях возможны погрешности округления.

  • Строки символов постоянной длины. В столбцах, имеющих этот тип данных, обычно хранятся имена людей и компаний, адреса и тп.

  • Строки символов переменной длины. Столбцы этого типа позволяют хранить строки символов, длина которых изменяется в некотором диапазоне. В стандарте SQL1 были определены только строки постоянной длины, которые проще обрабатывать, но они требуют больше места для хранения.

  • Денежные величины. Во многих СУБД поддерживается тип данных MONEY или CURRENCY, который обычно хранится в виде десятичного числа или числа с плавающей запятой. Наличие отдельного типа данных для представления денежных величин позволяет правильно форматировать их при выводе на экран.

  • Дата и время. Поддержка значений даты/времени также широко распространена в различных СУБД, хотя способы ее реализации довольно сильно отличаются друг от друга. Как правило, над значениями этого типа данных можно выполнять различные операции. Стандарт SQL2 включает определение типов данных DАТЕ, ТIМЕ, ТIМЕSТАМР и INTERVAL, а также поддержку часовых поясов и возможность указания точности представления времени (например, десятые или сотые доли секунды)

  • Булевы величины. Некоторые СУБД явным образом поддерживают логические значения (true или false), а другие СУБД разрешают выполнять в инструкциях SQL логические операции (сравнение, логическое И/ИЛИ и др.) над данными

  • Длинный текст. Многие СУБД поддерживают столбцы, в которых хранятся длинные текстовые строки (обычно длиной до 32000 или 65000 символов, а в некоторых случаях и больше). Это позволяет хранить в базе данных целые документы. Как правило, СУБД запрещает использовать эти столбцы в интерактивных запросах.

  • Неструктурированные потоки байтов. Современные СУБД позволяют хранить и извлекать неструктурированные потоки байтов переменной длины. Столбцы, имеющие этот тип данных, обычно используются для хранения графических и видеоизображений, исполняемых файлов и других неструктурированных данных. К примеру, тип данных IMAGE в SQL Server позволяет хранить потоки данных размером до 2 миллиардов байтов.

  • Азиатские символы. В последнее время все больше поставщиков СУБд стали вюiючать в свои продукты поддержку строк переменной и постоянной длины, содержащих символы азиатских алфавитов. Однако над такими строками, как правило, нельзя выполнять операции поиска и сортировки.

В таблице перечислены типы данных, определенные в стандарте ANSI/ISO.

Тип данных

Описание

CHAR(длина)

CHARACTER(длина)

Строки символов постоянной длины

VARCHAR(длина)

CHAR VARYING(длина)

CHARACTER VARYING(длина)

Строки символов переменной длины

INTEGER

INT

Целые числа

SMALLINT

Малые целые числа

NUMERIC(точность, степень)

DECIMAL(точность, степень)

DEC(точность, степень)

Десятичные числа

FLOAT(точность)

Числа с плавающей запятой

REAL

Числа с плавающей запятой низкой точности

DOUBLE PRECISION

Числа с плавающей запятой высокой точности

DATE

Дата

TIME(точность)

Время

TIMESTAMP(точность)

Дата и время

INTERVAL

Временной интервал

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]