Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




В Microsoft SQL Server у каждого столбца таблицы, локальной переменной, выражения и параметра есть определенный тип данных. Тип данных - это атрибут, определяющий, какого рода данные могут храниться в объекте: целые числа, символы, данные денежного типа, метки даты и времени, двоичные строки и так далее.

SQL Server предоставляет набор системных типов данных, определяющих все типы данных, которые могут использоваться в нем. Можно также определять собственные типы данных в Transact-SQL или Microsoft.NET Framework.

Точные числа

Типы точных числовых данных, использующие целые значения.

Тип данных Диапазон Хранилище
bigint от -2^63 (-9 223 372 036 854 775 808) до 2^63-1 (9 223 372 036 854 775 807) 8 байт
int от -2^31 (-2 147 483 648) до 2^31-1 (2 147 483 647) 4 байта
smallint от -2^15 (-32 768) до 2^15-1 (32 767) 2 байта
tinyint от 0 до 255 1 байт

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

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

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

Десятичные и числовые

Типы числовых данных с фиксированными точностью и масштабом.

decimal [ ( p[, s] ) ] и numeric [ ( p[, s] ) ]

Числа с фиксированной точностью и масштабом. При использовании максимальной точности числа могут принимать значения в диапазоне от -10^38+1 до 10^38-1. В стандарте ISO синонимом типа decimal являются типы dec и dec( p, s ). Тип numeric функционально равнозначен типу decimal.

P (точность)

Максимальное количество десятичных разрядов числа (как слева, так и справа от десятичной запятой). Точность должна принимать значение от 1 до 38. По умолчанию для точности принимается значение 18.

s(масштаб)

Максимальное количество десятичных разрядов числа справа от десятичной запятой. Масштаб может принимать значение от 0 до p. Масштаб может быть указан только совместно с точностью. По умолчанию масштаб принимает значение 0; поэтому 0 <= s <= p.

 

Максимальный размер хранилища зависит от точности.

 

Точность Байты хранилища
1 - 9  
10-19  
20-28  
29-38  

Типы данных, представляющие денежные (валютные) значения

Тип данных Диапазон Хранение
money От -922 337 203 685 477,5808 до 922 337 203 685 477,5807 8 байт
smallmoney От -214 748,3648 до 214 748,3647 4 байта

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

Приблизительные числа

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

Тип данных Диапазон Объем памяти
float - 1,79E+308 — -2,23E-308, 0 и 2,23E-308 — 1,79E+308 Зависит от значения n
real - 3,40E + 38 — -1,18E - 38, 0 и 1,18E - 38 — 3,40E + 38 4 байта

float [ ( n ) ]

Где n – это количество битов, используемых для хранения мантиссы числа в формате float при экспоненциальном представлении. Определяет точность данных и размер для хранения. Значение параметра n должно лежать в пределах от 1 до 53. Значением по умолчанию для параметра n является 53.

n Точность Объем памяти
1–24 7 знаков 4 байта
25–53 15 знаков 8 байт

 

 

Дата и время

В предыдущих версия Microsoft SQL Server существовали только два типа, обеспечивавших хранение дат и времени: datetime и smalldatetime.

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

Тип данных Диапазон дат Диапазон времени Объем памяти Максимальная Точность
datetime От 01.01.1753 до 31.12.9999 От 00:00:00 до 23:59:590,997 8 байт Округлено до приращения 0,000, 0,003 или 0,007 секунд
smalldatetime От 01.01.1900 до 06.06.2079 От 00:00:00 до 23:59:59 4 байта, фиксированный. Одна минута
date От 01.01.0001 до 31.12.9999   3 байта, фиксированный Один день
time[(0-7)]   От 00:00:00 до 23:59:59.9999999 3-5 байт, зависит от точности 100 наносекунд
datetime2 [(0-7)] От 01.01.0001 до 31.12.9999 От 00:00:00 до 23:59:59.9999999 6 байт для 2 и менее цифр, 7 байт для 3 и 4 цифр. 8 байт. 100 наносекунд
Datetimeoffset[(0-7)] Учитывает часовой пояс От 01.01.0001 до 31.12.9999 От 00:00:00 до 23:59:59.9999999 10 байт, зависит от точности 100 наносекунд

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

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

char [ (n) ]

Символьные данные фиксированной длины, не в Юникоде, с длиной n байт. Значение n должно находиться в интервале от 1 до 8000. Размер хранения данных этого типа равен n байт. Синонимом по стандарту ISO для типа char является character.

varchar [ (n | max) ]

Символьные данные переменной длины, не в Юникоде. n может иметь значение от 1 до 8 000. max означает, что максимальный размер хранения равен 2^31-1 байт. Размер хранения равен фактической длине данных плюс два байта. Введенные данные могут иметь длину 0 символов. Синонимами по стандарту ISO для типа varchar являются типы charvarying или charactervarying.

nchar [ (n) ]

Символьные данные в Юникоде длиной в n символов. Аргумент n должен иметь значение от 1 до 4000. Размер хранилища вдвое больше n байт. Синонимами по стандарту ISO для типа nchar являются типы national char и national character.

nvarchar [ (n | max) ]

Символьные данные в Юникоде переменной длины. Аргумент n может принимать значение от 1 до 4 000. Аргумент max указывает, что максимальный размер хранилища равен 2^31-1 байт. Размер хранилища в байтах вдвое больше числа введенных символов + 2 байта. Введенные данные могут иметь длину в 0 символов. Синонимами по стандарту ISO для типа nvarchar являются типы national char varying и national character varying.

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

binary [ (n) ]

Двоичные данные фиксированной длины размером в n байт, где n — значение от 1 до 8000. Размер хранения составляет n байт.

varbinary [ (n | max) ]

Двоичные данные переменной длины. n могут иметь значение от 1 до 8000; max означает максимальную длину хранения, которая составляет 2^31-1 байт. Размер хранения — это фактическая длина введенных данных плюс 2 байта. Введенные данные могут иметь размер 0 символов. В ANSI SQL синонимом для varbinary является binary varying.





Поделиться с друзьями:


Дата добавления: 2016-11-22; Мы поможем в написании ваших работ!; просмотров: 1325 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

4269 - | 4233 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.