Программирование >>  Программирование баз данных 

1 ... 8 9 10 [ 11 ] 12 13 14 ... 346


Продолжение табл. 1.2

Имя типа данных

Класс

Размер в байтах

Характер данных

NVarChar Unicode

Ntext Unicode

Binary Binary

VarBinary Binary

Image Binary

Таблица Другой

Sql variant Другой

С перемен- Символьные данные в кодировке Unicode переменной длиной ной длины. Значения данных с длиной короче

заданной не дополняются пробелами. Максимальное заданное значение длины может составлять 4 ООО символов, но для обозначения длины можно использовать ключевое слово max, что фактически позволяет определять столбцы с символьными данными, имеющими чрезвычайно большой объем (до 2 байтов данных)

Как и тип данных text, этот тип данных является устаревшим и поддерживается в версии SQL Server 2005 исключительно для обеспечения совместимости с предыдущими версиями. В данном случае следует использовать тип данных nvarchar (max) - символьные данные в кодировке Unicode переменной длины

Двоичные данные фиксированной длины с максимальной длиной 8 ООО байтов

Двоичные данные переменной длины с максимальной указанной длиной 8 ООО байтов, но для обозначения длины можно использовать ключевое слово max, что фактически позволяет определять столбцы типа LOB, имеющие очень большой объем (до 231 байтов данных)

Этот тип данных является устаревшим и поддерживается в версии SQL Server 2005 исключительно для обеспечения совместимости с предыдущими версиями. В данном случае следует использовать тип данных varbinary (max)

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

Особый Тип данных sql variant может рассматриваться как приближенный аналог типа данных variant языка VB и некоторых типов данных С++. По существу данные типа sql variant представляют собой контейнер, который обеспечивает хранение большинства других типов данных SQL Server. Из этого следует, что тип данных sql variant может использоваться, если необходимо представить в одном столбце или функции нескольких разных типов данных. Но, в отличие от типа данных Variant языка VB, при использовании типа данных sql variant языка T-SQL требуется явно приводить эти данные к более определенному типу

С переменной длиной

С переменной длиной

С переменной длиной

С переменной длиной

Особый



Окончание табл. 1.2

Имя типа данных

Класс

PfP Характер данных в байтах

Символ

С перемен- Определяет символьное поле как содержащее ной длиной данные XML. Тип данных xml обеспечивает проверку данных по схеме XML и применение специальных функций, предназначенных для обработки кода XML

Большинство типов данных, представленных в таблице, имеют эквивалентные им типы данных в других языках программирования. Например, тип данных int в СУБД SQL Server эквивалентен типу данных Long в языке Visual Basic, а также эквивалентен типу данных int в версиях языка С++, применяемых в большинстве комбинаций операционных систем и компиляторов.

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

Вообще говоря, типы данных SQL Server применяются в основном так лее, как и в большинстве других современных языков программирования. Использование операции сложения к числам приводит к получению qMbi, а после применения операции сложения к строкам происходит их конкатенация. При совместном использовании или присваивании переменным или полям данных с др)тими типами выполняются преобразования типов, причем большинство таких преобразований осуществляется неявно (или автоматически). Большинство других типов может быть преобразовано явно. (Должно быть конкретно указано, в какой тип следует преобразовать рассматриваемое значение.) Есть и такие типы данных, межд} которыми вообще невозможно выполнить преобразование. На рис. 1.2 приведена таблица, в которой показаны все возможные варианты преобразования данных из одного типа в другой.

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

Данные null

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



Исходный тип

Результи-

to с

рующий тип

>

> с

binary

varbinary

char

varchar

nchar

nvarchar

datetime

smalldatetime

decimal

numeric

float

real

bigint

int(INT4)

smallint(INT2)

tinyint(INTl)

money

smallmoney

timestamp

®

image

ntext

text

sql variant


Явное преобразование

Неявное преобразование

О Преобразование не допускается

ic Требует применения функции CAST для предотвращения потери точности или масштаба, которая может возникнуть при неявном преобразовании

О Неявные преобразования между типами данных XML поддерживаются, только если исходный тип или результирующий тип представляют собой нетипизированные данные xml. В противном случае преобразование должно быть явным

Рис. 1.2. Возможные варианты преобразования данных из одного типа в другой

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

Для представления таких неопределенных данных используется специальное NULL-значение. Как и в отношении любого неопределенного значения, исчерпывающая формулировка понятия NULL-значения отсутствует. Причина этого обусловлена



1 ... 8 9 10 [ 11 ] 12 13 14 ... 346

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