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

26)Типы данных ms sql Server. Пользовательские типы данных. Пример создания.

Типы данных в MS SQL Server можно разделить на несколько категорий.

Целые числа:

Bit (1 байт). На самом деле первый бит в таблице будет занимать один байт, однако следующие семь бит в этой таблице будут храниться в том же байте.

Bigint (8 байт). 64-разрядное целое число, позволяет хранить числа от –263 до +263–1.

Int (4 байта). Диапазон значений от –2 147 483 648 до +2 147 483 647.

SmallInt (2 байта). Диапазон значений от –32768 до +32767.

TinyInt (1 байт). Диапазон значений от 0 до 255.

Числа с фиксированной запятой:

Decimal или Numeric. Диапазон значений от –1038–1 до +1038–1.

Money (8 байт). Денежный формат, диапазон значений от –263 до +263 с четырьмя знаками после запятой.

SmallMoney (4 байта). Денежный формат, диапазон значений от –214748,3648 до +214748,3647.

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

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

Float. Диапазон значений от –1,79E +308 до +1,79E +308.

Real (4 байта). Диапазон значений 3,40E + 38 — -1,18E - 38, 0 и 1,18E - 38 — 3,40E + 38

Дата и время:

DateTime (8 байт). Диапазон значений от 1 января 1753 года до 31 декабря 9999 года с точностью до трех сотых секунды.

DateTime2 (6-8 байт). Новый тип данных, поддерживает точность до 0,1 мс.

SmallDateTime (4 байта). Диапазон значений от 1 января 1900 года до 6 июня 2079 года с точностью одна минута.

DateTimeOffset (8-10 байт). Аналогичен типу DateTime, но хранит ещё сдвиг относительно времени UTC (UTC (Universal Time Coordinated) – универсальное синхронизированное время).

Date (3 байта). Хранит только дату. Диапазон значений от 1 января 0001 года до 31 декабря 9999 года.

Time (3-5 байт). Хранит только время с точностью до 0,1 мс.

Символьные строки:

Char. Строка фиксированной длины. Максимальная длина строки 8000 символов.

VarChar. Строка переменной длины. Максимальная длина строки 8000, но при использовании ключевого слова «max» может хранить до 231 байт.

Text. Применялся для хранения больших строк, сейчас рекомендуется использование varchar(max) вместо text. Оставлен для обратной совместимости.

Nchar. Строка фиксированной длины в Юникоде. Максимальная длина строки 4000 символов.

NvarChar. Строка переменной длины в Юникоде. Максимальная длина строки 4000 символов, но при использовании ключевого слова «max» может хранить до 231 байт.

Ntext. Аналогичен типу text, но предназначен для работы с Юникод. Сейчас рекомендуется использовать nvarchar(max). Оставлен для обратной совместимости.

Двоичные данные:

Binary. Позволяет хранить двоичные данные размером до 8000 байт.

VarBinary. Тип данных переменной длины, позволяет хранить до 8000 байт, но при использовании ключевого слова «max» до 231 байт.

Image. Использовался для хранения больших объемов данных, сейчас рекомендуется использовать varbinary(max). Оставлен для обратной совместимости.

Логические значения

Bit - целочисленный тип данных, который может принимать значения 1, 0 или NULL. Компонент SQL Server Database Engine оптимизирует хранение столбцов типа bit, объединяя значения отдельных битовых полей в байты, например, если в таблице имеется 8 или меньше столбцов типа bit, они хранятся как 1 байт. Если имеется от 9 до 16 столбцов типа bit, они хранятся как 2 байта и т.д.

Строковые значения TRUE и FALSE можно преобразовать в значения типа bit: TRUE преобразуется в 1, а FALSE - в 0.

Пользовательские типы данных

Пользовательские типы данных, также именуемые как псевдонимы типов данных, позволяют расширить базовые типы данных SQL Server (например, varchar) содержательным именем и форматом, который можно приспособить для конкретного использования.

Создание пользовательского типа данных осуществляется вызовом команды CREATE TYPE:

CREATE TYPE type_name

{

FROM base_type

[ ( precision [ , scale ] ) ]

[ NULL | NOT NULL ]

}

type_name - имя псевдонима типа данных или определяемого пользователем типа данных.

base_type - предоставляемый SQL Server тип данных, на основе которого формируется псевдоним.

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

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

NULL | NOT NULL - Указывает, может ли данный тип иметь значение NULL. Если не указано иное, по умолчанию принимается значение NULL.

Пример: Следующая инструкция создает определяемый пользователем тип данных birthday, основанный на типе данных datetime, допускающий значения NULL.

CREATE TYPE birthday FROM datetime NULL ;