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

3. Типы данных, используемые в sql-сервере

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

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

Рассмотрим подробней типы данных, используемые в SQL-сервере. Обратите внимание на колонку L P S представлен­ных ниже таблиц. Здесь отображается возможность корректи­ровки (■ - кор­ректировка допустима, □ - корректировка недопус­тима) значений Length, Precision и Scale в дизайнере таблиц ути­литы SQL Server Enterprise Manager. В таблице 8 представлены текстовые типы данных SQL сервер.

Таблица 8

Текстовые типы данных

Название

LPS

Описание

Char

■□□

Текстовый тип данных, при использо­вании ко­торого задается его размер­ность, причем для каждого символа выделяется один байт. Раз­мерность: до 8000 символов.

Nchar

■□□

Аналогичен типу данных Char, за ис­ключе­нием размерности. Размерность: до 4000 символов.

Varchar

■□□

Используется для хранения текстовой инфор­мации переменной длины. Размерность: до 8000 симво­лов.

Nvarchar

■□□

Аналогичен типу данных Varchar, за исключе­нием размерно­сти. Размерность, до 4000 символов.

При вводе данных текстового типа, в операторах языка SQL используются одинарные или двойные кавычки. В таб­лице 8 представлены типы данных, основным отличием кото­рых является их размерность. Так, например, после создания поля типа char(15) или nchar(15) при добавлении в него ин­формации будут автоматически добавляться несколько дополни­тельных пробелов для доведения размерности вводимых данных до 15 символов.

При этом для каждого символа SQL-сервер отводит один байт. C другой стороны, использование типов данных var­char(15) или nvarchar(15) позволяет определить только макси­мальную размерность поля, при внесении информации в эти поля будут записываться только данные без каких-либо дополнитель­ных символов; однако, при превышении этой размерности, вся лишняя информация будет утеряна. При указании типа данных для определенного поля с помощью ди­зайнера таблиц утилиты SQL Server Enterprise Manager размерность представленных тек­стовых типов данных указывается в колонке Length напротив выбранного поля.

Числовые типы данных SQL-сервер описаны в таблице 9.

Таблица 9

Числовые типы данных:

Название

LPS

Описание

Int

□□□

Тип данных, позволяющий хранить положительные и отрицательные целые числа, занимающий в памяти 4 байта. Диапазон: от -231до +231.

Smallint

□□□

Занимает в памяти 2 байта. Аналогичен типу данных Int, за исключением диа­пазона значений. Диапазон от -32768 до 32767

Tinyint

□□□

Тип данных, используемый для хране­ния положитель­ных целых чисел, зани­мающий в памяти 1 байт. Диа­пазон: от 0 до 255.

Real

□□□

Тип данных, используемый для хране­ния положитель­ных и отрицательных чисел с плавающей точкой с точностью до 7 цифр; занимает в памяти 4 байта. Диа­пазон от -3.4Е-38 до +3,4Е+38.

Float

□□□

Тип данных, используемый для хране­ния положитель­ных и отрицательных чисел с плавающей точкой с точностью до 15 цифр; занимает в памяти до 8 байт. Диапазон от -1,7Е-308 до -1,7Е+308.

Decimal

□■■

Тип данных, позволяющий определять точно интервал значений вводимых десятичных чисел, занимает в па­мяти от 2 до 17 байт. Диапазон от -10Е-38 до +10Е+38.

Numeric

□■■

Аналогичен типу данных Decimal.

Money

□□□

Тип данных, используемый для хранения денежных значений, занимающий в памяти до 8 байт. Диапазон от -922 337 203 685 477,58081 до +922 337 203 685 477.5807.

Smallmoney

□□□

Аналогичен типу данных Money, занимает в памяти до 4 байт. Диапазон от -214,748.3648 до 14,748.3647.

Числовые типы данных включают две группы типов дан­ных: используемые для хранения 1) целых чисел и 2) чисел с пла­вающей точкой. Отличие между типами Int, Smallmoney и Ti­nyint заключается в диапазонах используемых значений. Для хранения чисел с плавающей точкой используют типы данных Real и Float. Отличием в данном случае является формат точно­сти и диапазон представления чисел.

Типы данных Decimal и Numeric позволяют самостоя­тельно определить формат точности числа с плавающей точкой. В этом случае, при корректировке параметров Precision и Scale в диалоговом окне дизайнера таблиц утилиты SQL Server Enterprise Manager, изменяется формат представления этих чисел и, соот­ветственно, объём памяти, занимаемый данными этого типа. При этом с помощью параметра Precision указывается максимальное количество цифр вводимых данных этого типа. Изменение пара­метра Length в зависимости от Precision при указании типа дан­ных Decimal и Numeric описано в таблице 10.

Таблица 10

Precision, цифр

Length, байт

1 -9

5

10-19

9

20-28

13

29-38

17

В SQL-сервере имеются два типа данных, ориентирован­ных на хранение денежных значений. Тип данных Money физи­чески записывает информацию в виде двух четырехбайтовых значений - отдельно для целой и дробной части. Данные этого типа сохраняются с точностью до десятичных долей денежной единицы. Для хранения денежных значений чаще используется тип данных Smallmoney. Его структура аналогична структуре Money, однако физически данные этого типа сохраняются в виде двух двухбай­товых значений, что уменьшает занимаемый ими объем в памяти компьютера.

Типы данных даты и времени приведены в таблице 11.

Таблица 11