Программирование >>  Sql: полное руководство 

1 ... 20 21 22 [ 23 ] 24 25 26 ... 264


Имена столбцов

Если в инструкции задается имя столбца, СУБД сама определяет, в какой из указанных в этой же инструкции таблиц содержится данный столбец. Однако если в инструкцию требуется включить два столбца из различных таблиц, но с одинаковыми именами, необходимо указать полные имена столбцов, которые однозначно определяют их местонахождение. Полное имя столбца состоит из имени таблицы, содержащей столбец, и имени столбца {короткого имени), разделенных точкой. Например, полное имя столбца sales из таблицы salesreps имеет следующий вид:

SALESREPS.SALES

Если столбец находится в таблице, владельцем которой является другой пользователь, то в полном имени столбца следует указывать полное имя таблицы. Например, полное имя столбца вirth date в таблице birthdays, владельцем которой является пользователь sam, имеет следующий вид:

SAM.BIRTHDAYS.BIRTH DATE

Полное имя столбца можно использовать вместо короткого имени во всех инструкциях SQL; об исключениях говорится при описании конкретных инструкций.

Типы данных

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

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

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

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

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

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



Денежные величины Во многих СУБД поддерживается тип данных money или currency, который обычно хранится в виде десятичного числа или числа с плавающей запятой. Наличие отдельного типа данных для представления денежных величин позволяет правильно форматировать их при выводе на экран. Дата и время. Поддержка значений даты/времени также широко распространена в различных СУБД, хотя способы ее реализации довольно сильно отличаются друг от друга. Как правило, над значениями этого типа данных можно выполнять различные операции. Стандарт SQL2 включает определение типов данных date, time, timestamp и interval, а также поддержку часовых поясов и возможность указания точности представления времени (например, десятые или сотые доли секунды).

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

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

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

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

Таблица 5.4. Типы данных в SQL

Тип данных

Описание

char{длина) character{длина)

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

varchar(длина) char varying (длина) character varying(длина)

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

nchar(длина) national char(длина) national character(длина)

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

nchar varying (длина) national char varying(длина) national character varying(длина)

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

integer int

Целые числа



Тип данных

Описание

SMALLINT

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

BIT(длина)

Цепочки битов постоянной длины*

BIT VARYING(длина)

Цепочки битов переменной длины*

NUMERIC(точность

степень)

T>EClMAUmo4Hocmb, степень) Т)ЕС{точность, степень)

FLOAT(точность)

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

REAL

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

DOUBLE PRECISION

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

DATE

Дата*

TIME(точность)

Время

TIMESTAMP(точность)

Дата и время*

INTERVAL

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

* Типы данных, появившиеся в SQL2

Различия в поддержке типов данных в разных СУБД существенно препятствуют переносимости приложений, в которых используется SQL. Причины подобных различий следует искать в самом пути, по которому развивались реляционные базы данных. Вот типичная схема:

Поставщик СУБД добавил в свой продукт поддержку нового типа данных, который обеспечивает новые полезные возможности для определенной группы пользователей.

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

Если идея оказалась удачной, то по проществии нескольких лет рассматриваемый тип данных появляется в большинстве ведущих СУБД, став частью джентльменского набора базовых типов данных.

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

Поставщики СУБД начинают внедрять поддержку полученного стандартизированного типа данных, но поскольку они располагают обширной базой уже инсталлированных продуктов, то вынуждены сопровождать и старый вариант типа данных.

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



1 ... 20 21 22 [ 23 ] 24 25 26 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика