какие типы данных могут быть в базе данных

Типы данных SQL

Область применения: Access 2013, Office 2013

Типы данных SQL ядра СУБД Microsoft Access состоят из 13 первичных типов данных, определяемых обработчиком баз данных Microsoft Jet и несколькими допустимыми синонимами, подходящими для этих типов данных.

В приведенной ниже таблице перечислены первичные типы данных. Синонимы определены в Зарезервированных словах SQL ядра СУБД Microsoft Access.

1 байт на каждый символ

В поле этого типа может храниться любой тип данных. Нет перевода данных (например, в текст). То, как данные входят в двоичное поле, определяет, как они будут выглядеть в качестве выходных.

Значения «Да» и «Нет» и поля, содержащие только одно из двух значений.

Целое число от 0 до 255.

Масштаб целого числа от 922 337 203 685 477,5808 до 922 337 203 685 477,5807.

DATETIME (см. DOUBLE)

Значение даты и времени между годами от 100 до 9999.

Уникальный идентификационный номер, используемый с удаленными вызовами процедур.

Значение с плавающей запятой одинарной точности с диапазоном от –3,402823E38 до –1,401298E-45 для отрицательных значений, от 1,401298E-45 до 3,402823E38 для положительных значений, а также 0.

Значение с плавающей запятой двойной точности с диапазоном от –1,79769313486232E308 до –4,94065645841247E-324 для отрицательных значений, от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений, а также 0.

Короткое целое число в диапазоне от –32 768 до 32 767 (см. примечания).

Длинное целое число в диапазоне от –2 147 483 648 до 2 147 483 647 (см. примечания).

Тип точных числовых данных, содержащих значения от 1028 – 1 до –1028 – 1. Можно задать два параметра: precision (в диапазоне от 1 до 28) и scale (в диапазоне от 0 до заданного значения параметра precision). По умолчанию значения параметров precision и scale равны 18 и 0, соответственно.

2 байта на каждый символ (см. «Примечания»)

Значение от 0 до 2,14 гигабайт.

В соответствии с требованием

Значение от 0 до 2,14 гигабайт. Используется для объектов OLE.

2 байта на каждый символ (см. «Примечания»)

Значение от 0 до 255 символов.

Источник

Типы данных для баз данных Access для настольных компьютеров

При создании таблиц в Access необходимо выбрать тип данных для каждого столбца данных. Тип данных «Короткий текст» является популярным вариантом, так как позволяет вводить практически любой символ (букву, символ или число). Однако тщательный выбор типов данных поможет вам воспользоваться дополнительными возможностями Access (такими как проверка данных и функции) и повысить точность данных, которые вы хотите хранить. В таблице ниже приведены типы данных, доступные в классических базах данных Access (ACCDB и MDB).

Полный список свойств полей, доступных для каждого типа данных см. в статье Введение в использование типов данных и свойств полей.

В таблице ниже перечислены типы данных, доступные в классических базах данных в Access 2013 и более поздних версиях.

Краткий текст (ранее назывался «Текст»)

Буквенно-цифровые данные (имена, названия и т. д.)

Длинный текст (ранее назывался «Поле MEMO»)

Большие объемы буквенно-цифровых данных: предложения и абзацы. Дополнительные сведения о типе данных «Длинный текст» см. в статье Длинный текст (ранее — тип данных «Поле MEMO»).

До 1 гигабайта (ГБ), но в элементах управления отображаются только первые 64 000 символов.

1, 2, 4, 8 или 16 байт.

Дополнительные сведения см. в статье Использование типа данных bigint.

Значения даты и времени.

Значения даты и времени.

Строка кодировки из 42 байтов

Дополнительные сведения см. в типе данных «Дата/время».

Денежные данные, хранящиеся с точностью до 4 десятичных знаков после запятой.

Уникальное значение, создаваемое Access для каждой новой записи.

4 байта (16 байт для кода репликации).

Изображения, графики или другие объекты ActiveX из другого приложения Windows.

Адрес ссылки на документ или файл в Интернете, интрасети, локальной сети или на локальном компьютере.

До 8192 (каждая часть типа данных «Гиперссылка» может содержать до 2048 знаков).

Вы можете вложите файлы, например рисунки, документы, электронные таблицы или диаграммы. Каждое поле вложения может содержать неограниченное количество вложений для каждой записи в пределах размера файла базы данных. Обратите внимание, что тип данных «Вложение» не доступен в форматах файлов MDB.

Вы можете создать выражение, использующее данные из одного или более полей. Выражения могут возвращать данные разных типов. Тип данных «Вычисляемый» недоступен в файлах формата MDB.

Зависит от типа данных свойства «Тип результата». Результат с типом данных «Краткий текст» может содержать до 243 знаков. Значения типа «Полный текст», «Число», «Логический» и «Дата/время» должны соответствовать своим типам данных.

Запись «Мастер подстановок» в столбце «Тип данных» в Конструкторе фактически не является типом данных. При выборе этой записи запускается мастер, помогающий определить простое или сложное поле подстановки. Простое поле подстановки использует содержимое другой таблицы или списка значений для проверки правильности содержимого единственного значения в строке. Сложное поле подстановки позволяет хранить несколько значений одного типа данных в каждой строке.

Зависит от типа данных поля подстановки.

В таблице ниже представлены типы данных, доступные в классических базах данных в Access 2010 и Access 2007.

Буквенно-цифровые данные (имена, названия и т. д.)

Большие объемы буквенно-цифровых данных: предложения и абзацы.

До 1 гигабайта (ГБ), но в элементах управления отображаются только первые 64 000 символов.

1, 2, 4, 8 или 16 байт.

Значения даты и времени.

Денежные данные, хранящиеся с точностью до 4 десятичных знаков после запятой.

Уникальное значение, создаваемое Access для каждой новой записи.

4 байта (16 байт для кода репликации).

Изображения, графики или другие объекты ActiveX из другого приложения Windows.

Адрес ссылки на документ или файл в Интернете, интрасети, локальной сети или на локальном компьютере.

До 8192 (каждая часть типа данных «Гиперссылка» может содержать до 2048 знаков).

Вы можете вложите файлы, например рисунки, документы, электронные таблицы или диаграммы. Каждое поле вложения может содержать неограниченное количество вложений для каждой записи в пределах размера файла базы данных. Обратите внимание, что тип данных «Вложение» не доступен в форматах файлов MDB.

Вы можете создать выражение, использующее данные из одного или более полей. Выражения могут возвращать данные разных типов. Тип данных «Вычисляемый» недоступен в файлах формата MDB.

Примечание: тип данных «Вычисляемый» отсутствует в Access 2007.

Зависит от типа данных свойства «Тип результата». Результат с типом данных «Краткий текст» может содержать до 243 знаков. Значения типа «Полный текст», «Число», «Логический» и «Дата/время» должны соответствовать своим типам данных.

Запись «Мастер подстановок» в столбце «Тип данных» в Конструкторе фактически не является типом данных. При выборе этой записи запускается мастер, помогающий определить простое или сложное поле подстановки. Простое поле подстановки использует содержимое другой таблицы или списка значений для проверки правильности содержимого единственного значения в строке. Сложное поле подстановки позволяет хранить несколько значений одного типа данных в каждой строке.

Источник

Типы данных SQL

Типы данных SQL

Типы данных SQL разделяются на три группы:
строковые;
с плавающей точкой (дробные числа);
целые числа, дата и время.

Типы данных MySQL

Типы данных MySQL разделяются на следующие типы:

Типы данных Oracle

Типы данных Oracle разделяются на следующие группы:

ANSI SQL стандарт распознает только текст и число, в то время как большинство коммерческих программ используют другие специальные типы, такие как DATЕ и TIME — фактически почти стандартные типы. Некоторые пакеты также поддерживают такие типы, как, например, MONEY и BINARY. Типы данных, распознаваемые с помощью ANSI, состоят из строк символов и различных типов чисел, которые могут классифицироваться как точные числа и приблизительные числа.

CHARACTER(length) определяет спецификацию строк символов, где length задает длину строк заданного типа. Значения этого типа должны быть заключены в одиночные кавычки. Большинство реализаций поддерживают строки переменной длины для типов данных VARCHAR и LONG VARCHAR (или просто LONG).

В то время, как поле типа CHAR всегда может распределить память для максимального числа символов, которое может сохраняться в поле, поле VARCHAR при любом количестве символов может распределить только определенное количество памяти, чтобы сохранить фактическое содержание поля, хотя SQL может установить некоторое дополнительное пространство памяти, чтобы следить за текущей длиной поля. Поле VARCHAR может быть любой длины, включая реализационно-определяемый максимум. Этот максимум может меняться от 254 до 2048 символов для VARCHAR и до 16000 символов для LONG. LONG обычно используется для текста пояснительного характера или для данных, которые не могут легко сжиматься в простые значения полей; VARCHAR может использоваться для любой текстовой строки, чья длина может меняться.

Извлечение и модифицирование полей VARCHAR — более сложный, и, следовательно, более медленный процесс, чем извлечение и модифицирование полей CHAR. Кроме того, некоторое количество памяти VARCHAR, остается всегда неиспользованной для гарантии вмещения всей длины строки. При использовании таких типов следует предусматривать возможность полей к объединению с другими полями.

Точные числовые типы — это числа, с десятичной точкой или без десятичной точки, которые могут представляться в виде [+|-] [. ] и специфицироваться как:

DECIMAL(precision [, scale]) — аргумент размера имеет две части: точность и масштаб. Масштаб не может превышать точность. Точность указывает сколько значащих цифр имеет число. Масштаб указывает максимальное число цифр справа от десятичной точки. Масштаб = нулю делает поле эквивалентом целого числа.

NUMERIC(precision [, scale]) — такое же как DECIMAL за исключением того, что максимальное десятичное не может превышать аргумента точности

INTEGER — число без десятичной точки. Эквивалентно DECIMAL, но без цифр справа от десятичной точки, т.е. с масштабом равным 0. Аргумент размера не используется (он автоматически устанавливается в реализационно-зависимое значение).

SMALLINT — такое же как INTEGER, за исключением того, что, в зависимости от реализации, размер по умолчанию может ( или не может ) быть меньше чем INTEGER.

Приблизительные числовые типы — это числа в показательной (экспоненциальной по основанию 10) записи, представляемые как Е и специфицирущиеся следующим образом:

FLOAT[(precision)] — число с плавающей запятой. Аргумент размера состоит из одного числа, определяющего минимальную точность.

REAL — такое же как FLOAT, за исключением того, что никакого аргумента размера не используется. Точность устанавливается реализационно-зависимой по умолчанию.

DOUBLE PRECISION — такое же как REAL, за исключением того, что реализационно-определяемая точность для DOUBLE PRECISION должна превышать реализационно-определяемую точность REAL.

Типы данных Access

Типы данных Access разделяются на следующие группы:

Типы данных SQL Server

Типы данных, используемые в SQL Server:

Типы данных PostgreSQL

База данных PostgreSQL поддерживает большинство типов данных SQL2003 плюс огромный набор типов для хранения пространственных и геометрических данных. PostgreSQL может похвастаться богатым набором операторов и функций, специально предназначенных для геометрических типов данных. Сюда входят такие средства, как поворот, поиск пересечений и масштабирование. В PostgreSQL также есть поддержка дополнительных версий существующих типов данных, которые характерны тем, что занимают меньше места на диске, чем соответствующие исходные версии. Например, в PostgreSQL предлагается несколько вариантов типа INTEGER для хранения больших и небольших чисел, соответственно занимающих больше или меньше места.

Вы должны войти, чтобы оставить комментарий.

Источник

Введение в использование типов данных и свойств полей

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

В этой статье

Общие сведения

Иногда типы данных могут показаться неочевидными, например в поле с типом данных «Текст» могут храниться данные, состоящие из текста и чисел. Но в поле с типом данных «Число» могут храниться только числовые данные. Поэтому вам нужно знать, какие свойства используются для каждого типа данных.

Тип данных поля определяет много других важных характеристик поля, в частности:

форматы, которые можно использовать в поле;

максимальный размер значения в поле;

способ использования поля в выражениях;

возможность индексирования поля.

В зависимости от способа создания нового поля тип данных поля может быть задан заранее или его можно выбрать. Например, если при создании поля в режиме таблицы вы:

используете существующее поле из другой таблицы, типы данных уже определены в ней или в шаблоне;

вводите данные в пустом столбце (или поле), Access назначает полю тип данных, исходя из вводимых значений, или вы можете назначить тип данных и формат для поля;

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

Когда какой тип данных использовать?

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

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

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

Основные типы

Короткие буквенно-цифровые значения, например фамилия или почтовый адрес. Помните, что начиная с версии Access 2013, текстовый тип данных переименован в Краткий текст.

Числовой, Большое число

Числовые значения, например расстояния. Помните, что для денежных значений есть отдельный тип данных.

Значения «Да» и «Нет», а также поля, содержащие только одно из двух значений.

Date/Time, Date/Time Extended

Дата/время: значения даты и времени для лет от 100 до 9999.

Дата/время с расширением: значения даты и времени для лет с 1 по 9999.

Текст или сочетание текста и чисел, которые отформатированы с помощью элементов управления цветом и шрифтом.

Результаты вычисления. Вычисление может ссылаться на другие поля в той же таблице. Вычисления создаются с помощью построителя выражений. Вычисляемые поля впервые появились в Access 2010.

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

Текст или сочетание текста и чисел, сохраненное как текст и используемое в качестве адреса гиперссылки.

Длинные блоки текста. Типичный пример использования поля MEMO — подробное описание продукта. Помните, что начиная с версии Access 2013, тип данных MEMO переименован в «Длинный текст».

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

У полей подстановки есть дополнительный набор свойств, которые находятся на вкладке Подстановка в области Свойства поля.

Примечание: В файлах формата MDB недоступны вложения и вычисляемые данные.

Числовой

Числа без дополнительного форматирования (точно в том виде, в котором хранятся).

Обычные денежные значения.

Обычные денежные значения в формате ЕС.

Числовые данные с десятичными знаками.

Значения в процентах.

Дата и время

Краткий формат даты

Дата в кратком формате. Зависит от региональных параметров даты и времени. Например, 14.03.2001 для России.

Средний формат даты

Дата в среднем формате. Например, 03-апр-09 для России.

Длинный формат даты

Дата в длинном формате. Зависит от региональных параметров даты и времени. Например, 14 марта 2001 г. для России.

Время только в 12-часовом формате, который будет соответствовать изменениям в региональных параметрах даты и времени.

Средний формат времени

Время в 12-часовом формате, после которого указываются символы AM (до полудня) или PM (после полудня).

Время только в 24-часовом формате, который будет соответствовать изменениям в региональных параметрах даты и времени.

Логический

Объект OLE Объекты OLE, например документы Word.

Свойство «Размер поля»

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

Для числовых и денежных полей свойство Размер поля особенно важно, поскольку определяет диапазон значений поля. Например, одноразрядное числовое поле может содержать только целые числа в диапазоне от 0 до 255.

Свойство Размер поля определяет также, сколько места на диске занимает каждое значение числового поля. В зависимости от размера поля число может занимать 1, 2, 4, 8, 12 или 16 байт.

Примечание: В полях MEMO и текстовых полях возможны значения переменных размеров. Для этих типов данных свойство Размер поля задает максимальный размер доступного пространства для одного значения.

Дополнительные сведения о свойствах полей и той роли, которую они выполняют для различных типов данных, см. в разделе Справочные сведения о типах данных. Ознакомьтесь также со статьей Задание размера поля.

Типы данных в связях и соединениях

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

Объединение — это SQL, которая объединяет данные из двух источников в одну запись в запросе набор записей на основе значений в указанном поле, которые есть у них общие. Присоединиться может быть внутреннее соединение, левое внешнее соединение или правое внешнее соединение.

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

При использовании связи или соединения поля с типом данных «Счетчик» совместимы с полями числового типа, если для свойства Размер поля последних задано значение Длинное целое.

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

Справочные сведения о типах данных

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

Источник

Подробно о типах данных

Правильный выбор типов данных — важный этап проектирования таблиц

В следующих выпусках рубрики «T-SQL для начинающих» будет рассказано о применении синтаксиса T-SQL для построения таблиц. Но прежде чем начинать строить таблицы, необходимо поговорить о типах данных. Для каждого столбца таблицы должен быть определен некоторый тип данных, например, целые (integer) или символьные (character). Это позволяет системе в последующем контролировать данные, которые будут помещаться в этот столбец. В предлагаемой статье автор рассматривает предусмотренные в системе типы данных и рассказывает о том, как создавать собственные типы данных. Подобные дополнительные типы данных следует создать до того как начнется построение таблиц, ведь при создании таблиц могут понадобиться ссылки на эти типы данных. Определяемые пользователями типы данных позволят существенно усилить контроль над данными и повысить их целостность, особенно в проектах, в которых с базами данных параллельно работают несколько разработчиков.

Столбцам необходимы типы данных

При создании таблицы необходимо указать тип данных для каждого столбца. Любые данные, помещаемые в столбец, должны отвечать этому типу данных. В некоторых случаях следует указывать и допустимую длину данных в столбце. В листинге 1 приведен оператор SQL, который создает таблицу авторов Authors в базе данных публикаций Pubs, спользуя только предусмотренные в системе типы данных.

Большинство столбцов в этой таблице являются текстовыми полями. Номер телефона, обозначение штата и почтовый индекс всегда имеют постоянную длину, поэтому соответствующие им столбцы phone, state и ZIP удобнее объявить символьными (char). Имя автора, его адрес и город, где он живет, могут различаться по длине, поэтому для них предпочтительнее использовать тип символьных данных переменной длины (varchar). Столбец contract с информацией о наличии контракта с автором, в котором данные представляются в форме да/нет, целесообразно отнести к двоичному типу данных bit, у которого имеется два возможных значения — 0 и 1. Теперь остановимся подробнее на системных типах данных.

Типы данных, предусмотренные в системе

В версии SQL Server 6.0 определено 19 типов данных, а в версии SQL Server 7.0 добавлено еще 4 типа для удобства работы с закодированными с помощью Unicode данными, а также для поддержки приложений, основанных на использовании хранилищ данных. Каждый тип данных имеет ряд разновидностей, отличающихся возможным набором значений. Знание этих значений облегчит выбор подходящего типа данных.

Символьные данные

Символьные данные типа char предсавляют собой один из наиболее распространенных типов данных. К этому типу относятся такие символьные данные, как имена или адреса. В версии SQL Server 6.5 длина любого столбца с символьными данными ограничивалась 255 знаками. Если же информация оказывалась длиннее, к примеру, если в столбец предполагалось вводить свободный комментарий по поводу контракта, то тогда следовало использовать текстовый тип данных (text). В SQL Server 7.0 это ограничение отменено, так что символьное поле может содержать до 8000 байтов. Верхняя граница обусловлена размером страницы памяти, поскольку ни одна запись не может располагаться в памяти на нескольких страницах. В тех случаях, когда для столбца определен тип данных char, данные следует помещать в одинарных кавычках, как показано в следующем примере:

Как отмечалось в статье «Работа с символьными данными», помещенной в майском номере журнала, можно выбрать символьный тип данных либо фиксированной длины, char, либо переменной длины, varchar. Фиксированный размер оказывается предпочтительным в тех случаях, когда данные имеют одинаковую или сходную длину, например, при вводе идентификатора автора (часто в этом качестве используют индивидуальный номер системы социальной безопасности, что, кстати, является плохим примером для подражания). В большинстве ситуаций применение переменной длины данных не приводит к сколько-нибудь заметному увеличению времени обработки. В то же время фамилия автора может быть очень длинной, так что использование типа varchar оказывается вполне оправданным. Применительно к подавляющему большинству фамилий фиксированная длина поля означает потерю значительного объема памяти, поэтому лучше использовать тип данных varchar. При выборе того или иного типа данных всегда следует искать компромисс с учетом двух аспектов: с одной стороны, потери полезного объема памяти при использовании данных фиксированной длины, а с другой стороны, увеличения времени обработки в случае применения данных переменной длины.

SQL Server 7.0 поддерживает набор символов Unicode. В связи с этим, чтобы воспользоваться всеми преимуществами, предоставляемыми расширенными возможностями Unicode, необходимо было ввести дополнительный тип данных.Если вам захочется использовать символьные данные Unicode, то следует указать тип данных Nchar или, если это информация переменной длины, то Nvarchar. При вводе данных Unicode их следует заключать в одиночные кавычки, причем непосредственно перед ними необходимо поставить заглавную латинскую букву N. Если в рассмотренном ранее примере имя автора отнесено к типу данных Unicode, то предыдущий оператор обновления примет следующий вид:

Ограничение максимальной длины информации при работе с типом данных Unicode составляет 4000 знаков. Это объясняется тем, что для хранения каждого символа Unicode требуется два байта памяти. Поэтому на стандартную страницу памяти размером 8К можно поместить в два раза меньше символов Unicode, чем при использовании обычных символов.

Целые

Точные числовые данные

Если приложение таково, что необходимо получать из базы данных числовое значение в строго указанном формате, то для этого следует выбрать один из точных числовых типов данных. Существуют два точных числовых типа данных: десятичный (decimal) и числовой (numeric), которые по существу совпадают друг с другом. Для них можно задать требуемые точность p и масштаб s в формате decimal (p,s). Точность представляет собой число значащих символов по обе стороны от десятичной запятой, а масштаб — количество символов справа от нее. Например, число 123,4567 можно хранить в столбце, для которого тип данных задан в виде (7,4). Если число, которое должно быть помещено в столбец с точным числовым типом данных, содержит больше десятичных знаков, чем указано в типе данных, то такое число округляется до требуемой точности. Числовые типы данных могут использовать для хранения значений от 2 до 17 байтов.

Приближенные числовые данные

Некоторые числа нельзя точно представить в десятичном виде с ограниченным числом знаков, например, одну треть или число пи. Для записи таких чисел используются действительный (real) или плавающий (float) типы данных. Данные действительного типа хранятся с точностью от 1 до 7 знаков. Плавающий формат, который иногда называют еще форматом двойной точности, может хранить числа, содержащие от 8 до 15 значащих цифр. Действительный и плавающий типы данных применяются в научных приложениях для хранения чисел, не требующих точного двоичного выражения. Одна-две последние цифры могут не вполне точно сохраняться при преобразованиях в двоичный формат. Поэтому такие числа не следует использовать в операциях точного сравнения, применяемых для формулирования условий оборота WHERE.

Двоичные

Предположим, что в базе данных необходимо хранить двоичную информацию. В этой ситуации имеется выбор между двумя форматами представления: c фиксированной или переменной длиной. Данным фиксированной длины соответствует тип данных binary, а двоичным данным переменной длины соответствует тип данных varbinary.

Денежные

В SQL Server и дата и время хранятся в одном столбце, так что если с помощью функции GETDATE() запросить текущую дату, то при этом система сообщит и время. Для дат применяются два типа данных, datetime и smalldatetime. Тип данных smalldatetime охватывает период времени от 1 января 1900 года до 6 июня 2079 года и включает время с точностью до минуты. Такого диапазона достаточно для подавляющего большинства проектов. Тип данных datetime годен для использования до 31 декабря 9999 года (это следует учитывать при решении проблемы 10К года). Начало диапазона этого типа данных датируется 1 января 1753 года. Почему 1753? Это связано с переходом с юлианского на грегорианский календарь. Несмотря на то, что грегорианский календарь был предложен некоторое время назад, процесс его принятия продолжался в течение приблизительно 30 лет. На протяжении этого периода некоторые страны уже приняли грегорианский, а другие еще нет. Поэтому для того, чтобы дата воспринималась однозначно, надо знать географическое положение объекта. Кроме того, год начинался не 1 января, а 1 марта. Поэтому такая дата, как 15 января 1792 года, может интерпретироваться и как середина первого месяца 1492 года, и как середина 11-го месяца 1793 года. Создатели SQL Server решили не рисковать, и поэтому приняли решение не воспринимать даты, относящиеся к периоду времени до начала 1753 года. Следует отметить также, что тип данных datetime показывает тысячные доли секунды, хотя точность гарантируется только до 1/300 части секунды.

Тексты и образы

Специальные типы данных

Некоторые типы данных трудно отнести к какой-либо категории. Один из таких типов — битовые данные (bit). Это целое число, которое может принимать только два значения — 0 и 1 (в одном байте можно хранить восемь подобных величин). Битовые значения часто применяются в качестве флагов, принимающих значения истина или ложь. Их можно использовать, например, для хранения сведений о том, заключен ли контракт с автором, или принадлежат ли его книги к бестселлерам, или для чего-либо аналогичного. Одно незначительнгое отличие версии SQL Server 7.0 состоит в том, что для столбцов с битовыми данными теперь разрешены и неопределенные значения, в то время как в версии SQL Server 6.5 допустимы были только значения 0 и 1.

Для внутренних целей в SQL Server используется тип данных метка времени (timestamp). Этот тип данных генерирует уникальное значение, которое обновляется каждый раз, когда модифицируется информация в строке таблицы. Метки времени являются внутренними значениями, поддерживаемыми в SQL Server. Они не соответствуют реальным датам и времени.

В SQL Server 7.0 введены два новых типа данных, которые более подробно будут рассмотрены в последующих публикациях. тип данных уникальный идентификатор (uniqueidentifier) позволяет присвоить столбцу уникальное в глобальном масштабе значение. Глобальная уникальность означает неповторимость не только в рамках конкретной базы данных или в пределах одного компьютера, но вообще везде. Этот тип данных играет важную роль при работе с хранилищами данных, когда информация собирается в него из множества разнообразных источников. Тип данных курсор (cursor) применяется для переменных курсора. Использование курсора — отдельная большая тема, которой автор собирается посвятить целую статью.

Определяемые пользователями типы данных

SQL Server позволяет пользователям определять собственные типы данных, которые являются комбинацией системных типов данных. Как правило, они базируются на системном типе данных определенной длины (имеются в виду числовые и символьные значения), для которого назначаются правила и значения по умолчанию. Например, можно определить тип данных Почтовый индекс как char(10), а тип данных Телефонный номер как char(14). Тогда тип данных Почтовый индекс будет гарантировать целостность форматов почтовых индексов во всех столбцах, для любого клиента, поставщика, служащего или контактного лица где угодно по всему миру.

Но в тех случаях, когда пользователь хочет создать тип данных, имея лишь набросок желаемого, SQL Server оказывается не слишком полезным. К примеру, нельзя создать новый тип данных, обладающий целым набором связанных с ним свойств, для таких понятий как широта или долгота для географических приложений. Ведь для него пришлось бы прибегнуть к методам сферической тригонометрии для вычисления расстояния между двумя точками. Возможно, когда-нибудь SQL Server станет настолько гибким, что сможет помочь и в таких ситуациях.

На данный момент добавлять новые типы данных можно с помощью SQL Server Enterprise Manager или из анализатора запросов Query Analyzer (в версии SQL Server 6.5 это производится из окна ISQL/w). Каждый тип данных, который добавляют пользователи, действует только в пределах конкретной базы данных. Если же необходимо создать тип данных для всех баз, то его следует поместить в базу данных моделей Model. С момента создания в этой базе данных новый тип данных будет доступен во всех остальных базах. Существует другой способ решения этой проблемы — написать сценарий или сгенерировать его с помощью утилиты генерации сценариев Generate SQL Script, входящей в состав SQL Server. Тогда этот сценарий можно будет запускать из любой базы данных. В Enterprise Manager следует дважды щелкнуть правой кнопкой мыши на названии базы данных, а затем последовательно выбрать из меню Все задачи (All tasks), Генерировать сценарий SQL (Generate SQL Script) и наконец, выбрать пункт создания сценария для всех типов данных.

В окне Enterprise Manager следует выбрать пункт Базы данных (Databases), выбрать конкретную базу из списка, а затем перейти к пункту Определяемые пользователем типы данных (User-Defined Data Types). Щелкните правой кнопкой мыши и выберите пункт Свойства новых определяемых пользователем типов данных (New User-defined Datatype Properties). После этого приступайте к определению типа данных.

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

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

Выберите правильный тип

Правильный подбор типов данных является частью проектирования таблицы. В SQL Server 6.5 очень трудно изменить свойства столбца после того, как он был создан. В версии SQL Server 7.0 это возможно, но проводить такую процедуру следует с крайней осторожностью.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *