Ms sql server типы данных: int, bigint, smallint и tinyint (Transact-SQL) — SQL Server

Содержание

Основы языка Transact-SQL. Основные элементы Transact-SQL. Типы данных MS SQL Server. Выражения Transact-SQL, страница 3

Информатика и выч. техника \
Базы данных

Типы данных char в ANSI, nchar в Unicode имеют фиксированный размер — всегда требуется один и тот же объем памяти при любом количестве символов, хранящихся в столбце. Например, одно значение столбца с типом char(10) занимает 10 байт памяти независимо от того, хранится ли в нем 1 символ или 10. Неиспользуемое пространство дополняется пробелами до максимально возможного количества символов в столбце.

42

В то же время, для хранения каждого символа в столбце требуется: при типе данных varchar(10) — 1 байт, при типе данных nvarchar(n) — 2 байта; при этом требуемый объем памяти зависит от заполнения столбца (т.е., столбец имеет переменный размер, и не происходит хранение «пустого места» — пробелов).

43

Типы данных text и ntext служат для хранения больших массивов символьных данных. Для столбцов с такими типами данных запрещены многие операции и функции. Из-за этих ограничений, начиная с версии СУБД SQL Server 2005, появились типы данных varchar(max) и nvarchar(max), которые объединяют возможности типов text/ntext, varchar/nvarchar, могут хранить до 2 Гб данных и не имеют ограничений по использованию с различными операциями и функциями.

44

3.6. Двоичные типы данных

45

Типы данных binary служат в основном для хранения файлов в SQL Server. Для хранения небольших файлов (например, групп файлов размером несколько Кб, содержащих различные данные в двоичном формате) используют типы данных binary/varbinary.

46

Часто используется тип данных image — служит для хранения как изображений, так и документов Word, Excel, PDF, Visio. Этот тип данных подходит для хранения любых файлов размером не более 2 Гб. Тип данных varbinary(max), впервые появившийся в SQL Server 2005, позволяет хранить такой же объем данных, как и image, и может применяться во всех операциях и функциях, где допустимы типы данных binary/varbinary.

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

48

49

50

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

51

  • Таким образом, в версии языка Transact-SQL для SQL Server 2005 (и выше) имеется
  • 6 категорий стандартных типов данных, используемых для определения столбцов в таблицах:
  • точные числовые типы данных — хранят точные целочисленные или десятичные значения;
  • приближенные числовые типы данных — хранят приближенные числа с плавающей точкой;

52

  • денежные типы данных — хранят денежные значения с точностью 4 знака после запятой;
  • типы данных «Дата и время» — хранят значения даты и времени;
  • символьные типы данных — хранят текстовые значения;
  • двоичные типы данных — хранят двоичные потоки, обычно это файлы.

Кроме приведенных системных типов данных таблиц, можно определять на их основе свои пользовательские типы данных для конкретной БД. В SQL Server 2008 появилось также несколько новых специализированных типов данных (рассмотрим далее).

54

3.8. Свойство IDENTITY

Кроме типов данных, для столбцов могут задаваться различные свойства. В частности, для одного столбца таблицы может быть задано свойство IDENTITY, которое определяет создание в столбце автоматически возрастающего значения. Это свойство имеет 2 параметра: исходное значение и инкремент, определяющий, насколько увеличивается исходное значение при генерировании каждого последующего значения.

55

Это свойство – аналог значений autonumber (в Access – тип данных Счетчик) и autoincrement в других языках. Свойство IDENTITY применимо к точным числовым типам: bigint, int, smallint, tinyint, decimal, numeric. Для использования с типами данных decimal, numeric необходимо приравнять в них число разрядов после запятой к нулю.

3.9. Общие рекомендации по выбору типа данных для столбца таблицы

Скачать файл

Курс Создание запросов в Microsoft SQL Server 2014 \ Querying Microsoft SQL Server в Екатеринбурге

Код: 20461
Данный курс будет отменен компанией Microsoft с 31 декабря 2021 года.

Курс предоставляет слушателям знания и навыки, необходимые для написания базовых запросов на языке T-SQLдля Microsoft SQL Server 2014, и готовит к экзамену Microsoft 461 

Стоимость курса

31 935 руб

Заказать

Вы научитесь:


Предоставить слушателям знания и навыки, необходимые для написания базовых запросов на Transact-SQL для Microsoft SQL Server 2014. Курс предоставляет необходимый минимум знаний для понимания работы Microsoft SQL Server и является базовым курсом для направления Администратор Баз Данных.



Приобретаемые навыки:

  • Писать SELECT запросы
  • Выполнять запросы из нескольких таблиц
  • Сортировать и фильтровать данные
  • Описать типы данных в SQL Server
  • Изменять данные с помощью Transact-SQL
  • Использовать встроенные функции
  • Группировать и агрегировать данные
  • Использовать подзапросы
  • Использовать табличные выражения
  • Использовать оператор SET
  • Использовать функции ранжирования, смещения, а также функции агрегирования
  • Выполнять перекрестные запросы и группировать данные
  • Выполнять хранимые процедуры
  • Программировать на T-SQL
  • Реализовывать управление ошибками
  • Реализовывать транзакции 

Аудитория:


Этот курс предназначен для администраторов БД, разработчиков БД и клиентских приложений и специалистов в бизнес-аналитике (BI). Курс будет интересен для пользователей, желающих понимать работу БД или осмысленно формировать отчеты, и слушателей, планирующих сдать экзамен. 

Требования к предварительной подготовке слушателя:

  • Знание и практический опыт администрирования клиентов и серверов семейства Windows;
  • Опыт установки и настройки Windows Server отдельно или в среде организации;
  • Знания и опыт настройки сетевых адаптеров, администрирования пользователей Active Directory и базовых настроек дисков;
  • Знания и опыт работы с Windows Server 2012 и Windows 8 (желательно) 
  • Знание технического английского языка

Готовит к тесту:

Microsoft 461 

Содержание курса


Глава 1. Введение в Microsoft SQL Server 2014



Темы

  • Базовая архитектура SQL Server
  • Редакции и версии SQL Server
  • Начало работы с SQL Server Management Studio



Лабораторная работа: Работа с инструментами SQL Server 2014

  • Работа с SQL Server Management Studio
  • Написание T-SQL сценариев
  • Использование Books Online



Глава 2. Введение в язык запросов T-SQL



Темы

  • Введение в T-SQL
  • Понятие набора данных
  • Понятие логики предиката
  • Понятие логики последовательности операторов в SELECT выражениях



Лабораторная работа: Введение в язык запросов T-SQL

  • Выполнение базовых SELECT выражений
  • Выполнение запросов с фильтрацией данных, используя предикаты
  • Выполнение запросов с сортировкой данных, используя ORDER BY



Глава 3. Написание SELECT запросов



Темы

  • Написание простых SELECT выражений
  • Удаление дубликатов с использованием DISTINCT
  • Использование табличных и колоночных псевдонимов
  • Написание простых CASE выражений



Лабораторная работа: Написание базовых SELECT запросов

  • Написание простых SELECT выражений
  • Удаление дубликатов с использованием DISTINCT
  • Использование табличных и колоночных псевдонимов
  • Написание простых CASE выражений



Глава 4. Запрос данных из нескольких таблиц



Темы

  • Понятие объединений
  • Написание запросов с использованием внутреннего объединения INNER JOIN
  • Написание запросов с использованием внешнего объединения OUTER JOIN
  • Написание запросов с использованием перекрестного объединения CROSS JOIN, объединения таблицы с собой (SELF JOIN)



Лабораторная работа: Запрос данных из нескольких таблиц

  • Написание запросов с использованием INNER JOIN
  • Написание запросов с использованием многотабличных объединений
  • Написание запросов с использованием объединения таблицы сама с собой
  • Написание запросов с использованием OUTER JOIN
  • Написание запросов с использованием перекрестного объединения CROSS JOIN



Глава 5. Сортировка и фильтрация данных



Темы

  • Сортировка данных
  • Фильтрация данных
  • Фильтрация с использованием опций TOP и OFFSET-FETCH
  • Работа с неизвестными и потерянными значениями



Лабораторная работа: Работа с подзапросами

  • Написание запросов с фильтрацией данных с использованием предложения WHERE
  • Написание запросов с сортировкой данных с использованием предложения ORDER BY
  • Написание запросов с фильтрацией данных с использованием предложения TOP
  • Написание запросов с фильтрацией данных с использованием предложения OFFSET-FETCH



Глава 6. Работа с типами данных SQL Server 2014



Темы

  • Введение в типы данных SQL Server 2014
  • Работа с текстовыми типами данных
  • Работа с типами данных Дата и Время



Лабораторная работа: Работа с типами данных SQL Server 2014

  • Написание запросов, возвращающих типы данных Дата, Время
  • Написание запросов, использующих функции Дата и Время
  • Написание запросов, возвращающие текстовые данные
  • Написание запросов, использующих текстовые функции



Глава 7. Использование DML для изменения данных



Темы

  • Добавление данных
  • Изменение и удаление данных



Лабораторная работа: Использование DML для изменения данных

  • Добавление данных
  • Обновление и удаление данных



Глава 8. Использование встроенных функций



Темы

  • Написание запросов, использующих встроенные функции
  • Использование функций преобразования
  • Использование логических функций
  • Использование функций на проверку NULL



Лабораторная работа: Использование встроенных функций

  • Написание запросов с функциями преобразования
  • Написание запросов с логическими функциями
  • Написание запросов с функцией на проверку NULL



Глава 9. Группировка и агрегирование данных



Темы

  • Использование функций агрегирования
  • Использование предложения GROUP BY
  • Фильтрация сгруппированных данных с использованием предложения HAVING



Лабораторная работа: Группировка и агрегирование данных

  • Написание запросов с использованием предложения GROUP BY
  • Написание запросов с использованием функций агрегирования
  • Написание запросов с использованием отдельных статистических функций
  • Написание запросов, фильтрующих сгруппированные данные с использованием предложения HAVING



Глава 10. Использование подзапросов



Темы

  • Написание автономных вложенных подзапросов
  • Написание корреляционных подзапросов
  • Использование предиката EXISTS в подзапросах



Лабораторная работа: Использование подзапросов

  • Написание автономных вложенных подзапросов
  • Написание запросов с использованием скалярных и табличных подзапросов
  • Использование предикатов IN и EXISTS в подзапросах



Глава 11. Использование табличных выражений



Темы

  • Использование производных таблиц
  • Использование общих табличных выражений
  • Использование представлений
  • Использование встроенных табличных выражений



Лабораторная работа: Использование табличных выражений

  • Написания запросов, использующих представления
  • Написания запросов, использующих производные таблицы
  • Написания запросов, использующих общие табличные выражения
  • Написания запросов, использующих встроенные табличные выражения



Глава 12. Использование операторов наборов строк



Темы

  • Написание запросов, использующих оператор UNION
  • Написание запросов, использующих операторы EXCEPT и INTERSECT
  • Написание запросов, использующих оператор APPLY



Лабораторная работа: Использование операторов наборов строк

  • Написание запросов, использующих операторы UNION и UNION ALL
  • Написание запросов, использующих операторы CROSS APPLY и OUTER APPLY
  • Написание запросов, использующих операторы EXCEPT и INTERSECTS



Глава 13. Использование функций ранжирования, смещения и статистических функций



Темы

  • Создание окон с помощью предложения OVER
  • Обзор функций окна



Лабораторная работа: Использование функций ранжирования, смещения и статистических функций

  • Написание запросов с использованием функций ранжирования
  • Написание запросов с использованием функций смещения
  • Написание запросов с использованием функций агрегирования



Глава 14. Создание сводных результирующих наборов и группировка



Темы

  • Написание запросов с использованием операторов PIVOT и UNPIVOT
  • Группировка данных



Лабораторная работа: Создание сводных результирующих наборов и группировка

  • Написание запросов с использованием оператора PIVOT
  • Написание запросов с использованием оператора UNPIVOT
  • Написание запросов с использованием предложения GROUPING SETS



Глава 15. Запуск хранимых процедур



Темы

  • Запрос данных хранимой процедурой
  • Передача параметров хранимым процедурам
  • Создание простой хранимой процедуры
  • Работа с динамическим SQL



Лабораторная работа: Запуск хранимых процедур

  • Использование оператора EXECUTE для запуска хранимых процедур
  • Передача параметров хранимым процедурам
  • Запуск системных хранимых процедур



Глава 16. Программирование с использованием возможностей T-SQL



Темы

  • Элементы программирования T-SQL
  • Управление программными потоками



Лабораторная работа: Программирование с использованием возможностей T-SQL

  • Объявление переменных и снятие ограничений с пакетов
  • Использование элементов управления потоком выполнения
  • Использование динамического SQL
  • Использование синонимов



Глава 17. Реализация управления ошибками



Темы

  • Перенаправление ошибок с использованием блоков TRY/CATCH
  • Обработка информации об ошибке



Лабораторная работа: Реализация управления ошибками

  • Перенаправление ошибок с использованием TRY/CATCH
  • Использование THROW для передачи сообщений об ошибках обратно клиенту



Глава 18. Реализация транзакций



Темы

  • Транзакции и ядро БД
  • Управление транзакциями
  • Уровень изоляции



Лабораторная работа: Реализация транзакций

  • Определение транзакций с использованием блоков BEGIN, COMMIT и ROLLBACK
  • Добавление логики обработки ошибок в блок CATCH 

Другие курсы данной тематики

  • Разработка и эксплуатация хранилищ данных на SQL Server 2016
  • Oracle Database 12c: Backup and Recovery Workshop
  • Администрирование баз данных Microsoft SQL Server 2014 \ Administering Microsoft SQL Server Databases
  • Oracle Database 12c: Администрирование
  • Разработка баз данных на Microsoft SQL Server 2014
  • Oracle Database 12c R2: SQL Workshop II
  • Oracle Database 12c R2: New Features for Administrators Part 2
  • Oracle Enterprise Manager Cloud Control 12c: Install & Upgrade
  • Oracle Database 12c R2: Clusterware Administration
  • Разработка PL/SQL программных единиц

Microsoft SQL Server и типы данных преобразования

В следующей таблице сравниваются типы данных Microsoft SQL Server и типы данных преобразования:

90 033

от 1 до 2 147 483 647 байт

900 33

от 1 до 4000 символов

9003 3

от 1 до 1 073 741 823 байт

9 0029

Microsoft SQL Server 900 03

Диапазон

Трансформация

Диапазон

Двоичный

от 1 до 8000 байт

Двоичный

От 1 до 104 857 600 байт

bigint

— 9,22 от 3 372 036 854 775 808 до 9 223 372 036 854 775 807

bigint

-9 223 372 036 854 775,80 от 8 до 9 223 372 036 854 775 807

Точность 19, шкала 0

Бит

1 бит

Строка

9003 6

1 до 104 857 600 символов

Символ

От 1 до 8000 символов

Строка

1 до 104 857 600 символов

Дата

С 1 января 0001 г. н.э. по 31 декабря 9999 г. н.э.

Дата/время

С 1 января 0001 г. по 31 декабря 9999 г. н.э.

3

с 1 января 1753 г. по 31 декабря 9999 н.э.

Точность 23, шкала 3

(точность до 3,33 мс)

Дата/время

1 января 0001 г. н.э. по 3 декабря 1, 9999 г. н.э.

(с точностью до наносекунды)

Datetime2

1 января 0001 г. н.э. 00:00:00

31 декабря 9999 г. н.э. 23:59:59.9999999

Отметка времени

Точность от 22 до 27

Десятичный

Точность от 1 до 38, шкала от 0 до 38

Десятичный

Для преобразований, поддерживающих точность до 38 цифр, точность составляет от 1 до 3 8 цифр, шкала от 0 до 38.

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

Плавающая

-1,79от E+308 до 1.79E+308

Double

Precision 15

Image

Двоичный

от 1 до 104 857 600 байт

Целое число

от -2 147 483 648 до 2 147 483 647

Целое число

900 02 -2 147 483 648 до 2 147 483 647

Точность 10, шкала 0

Деньги

-922 337 203 685 477,5807 до

922 337 203 685 477,580 7

Десятичный

Точность от 1 до 28, шкала от 0 до 28

nchar

Строка

От 1 до 104 857 600 символов

ntext

Текст

От 1 до 104 857 600 символов

Числовой

9 0002 Точность от 1 до 38, масштаб от 0 до 38

Десятичный

Для преобразований, поддерживающих точность до 38 цифр, точность составляет от 1 до 38 цифр, а шкала — от 0 до 38.

Для преобразований, поддерживающих точность до 28 цифр, точность составляет от 1 до 28 цифр, а шкала — от 0 до 28.

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

nvarchar

От 1 до 4000 символов

Строка

9000 2 1 до 104 857 600 символов

Действительное число

-3,40E+38 до 3,40E+38

Двойной

Точность 15

Smalldatetime

С 1 января 1900 г. по 6 июня 2079 г.

Точность 19, шкала 0 9 0003

(с точностью до минуты)

Дата/время

1 января 0001 г. н.э. по 31 декабря 9999 г. н.э. (с точностью до наносекунды) 003

Целое число

от -2 147 483 648 до 2 147 483 647

Точность 10, шкала 0

Smallmoney

-214 748,3648 до 214 748,3647

Десятичный

Точность от 1 до 28, шкала от 0 до 28

Имя системы

От 1 до 128 символов

Строка

От 1 до 104 857 600 символов

Текст 9000 3

от 1 до 2 147 483 647 символов

Текст

От 1 до 104 857 600 символов

Метка времени

8 байт

Двоичный

от 1 до 104 857 600 байт

Tinyint

9 0036

От 0 до 255

Целое число

-2 147 483 648 до 2 147 483 647

Точность 10, масштаб 0

Uniqueidentifier

Точность 38, масштаб 0

Строка

Чтобы успешно переместить или изменить данные Uniqueidentifier, убедитесь, что данные имеют следующий формат:

9000 2 ххххххх-хххх-хххх-хххх-ххххххххххх

где

x

— шестнадцатеричная цифра в диапазоне от 0 до 9 или от a до f.

Varbinary

от 1 до 8000 байт

Двоичный

от 1 до 104 857 600 байт

Varchar

от 1 до 8, 000 символов

Строка

от 1 до 104 857 600 символов

Типы данных SQL Server — Decimal, Numeric, Bit, Money, Date, Int

Автор: Joe Gavin   |
Обновлено: 25 сентября 2020 г.   |
Комментарии (2)   | Связанный: Еще > Типы данных

Проблема

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

Решение

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

Точные числа Типы данных SQL Server

Целочисленный Тип данных
  • Int используется для хранения целого числа и является основным целочисленным типом данных.
  • Ассортимент
    значения: от -2 147 483 648 до 2 147 483 647
  • Хранение
    размер: 4 байта
 -- объявить переменную типа int, присвоить ей значение и увеличить ее
ОБЪЯВИТЬ @MyInt int = 0
УСТАНОВИТЬ @MyInt += 1
ВЫБЕРИТЕ @MyInt КАК [MyInt]
 
Тип данных BigInt
  • Bigint используется для хранения целого числа, выходящего за пределы диапазона int
  • Диапазон
    значений:
    -9 223 372 036 854 775 808
    до 9 223 372 036 854 775 807
  • Размер хранилища: 8 байт
 -- сделать переменную bigint
ОБЪЯВИТЬ @MyBigInt bigint = 2147483648
ВЫБЕРИТЕ @MyBigInt КАК [MyBigInt]
 
Тип данных Smallint
  • Смоллинт
    занимает меньше места, чем INT, и может использоваться, когда гарантировано целое число
    быть между
    -32 768 до
    32 767 90 575

  • Диапазон значений: от -32 768 до 32 767 90 575

  • Размер хранилища: 2 байта
 -- небольшой пример
ОБЪЯВИТЬ @MySmallInt smallint = 32000
ВЫБЕРИТЕ @MySmallInt КАК [MySmallInt]
 
Тип данных Tinyint
  • Tinyint можно использовать, когда гарантированно целое число находится в диапазоне от 0 до
    255, т. е. количество лет ипотеки
  • Диапазон значений: от 0 до 255
  • Размер хранилища: 1 байт
 -- крошечный пример длины ипотечного кредита в годах
ОБЪЯВИТЬ @MortgageLength tinyint = 30
ВЫБЕРИТЕ @MortgageLength AS [MortgageLength]
 
Тип битовых данных
  • Бит может использоваться для представления логического значения, такого как переключатель.
    включено или выключено, процесс выполнен или нет и т. д.
  • Диапазон значений: 0 или 1 или NULL
  • Размер хранилища = 1 байт на каждый 8-битный столбец в таблице
 -- Пример BIT в качестве значения включения/выключения выключателя света
ОБЪЯВИТЬ бит @LightSwitch = 0

ЕСЛИ @LightSwitch = 1 PRINT 'LightSwitch включен'
ELSE PRINT 'LightSwitch выключен'

SET @LightSwitch = 1 -- включить
ЕСЛИ @LightSwitch = 1 PRINT 'LightSwitch включен'
ELSE PRINT 'LightSwitch выключен'
 
Десятичный тип данных

938

  • Размер хранилища:
    • Точность 1–9       5 байт
    • Точность 10-19    9 байт
    • Точность 20-28 13 байт
    • Точность 29–38   17 байт
  • Функционально такой же, как числовой
 /*
десятичный (п, с)
p = точность = максимальное общее количество сохраняемых цифр, включая обе стороны десятичной точки — должно быть от 1 до 38 — по умолчанию = 18
s = масштаб = количество цифр справа от десятичной точки — по умолчанию = 0
*/

DECLARE @MyDecimal decimal(8,4) = 123. 1 -- Всего 8 цифр, 4 справа от десятичной дроби
ВЫБЕРИТЕ @MyDecimal КАК MyDecimal
 938
 
 
  • Размер хранилища:
    • Точность 1-9      5 байт
    • Точность 10–19   9 байт
    • Точность 20–28 13 байт
    • Точность 29–38 17 байт
  • Функционально такой же, как десятичный
  •  /*
    числовой (p,s)
    p = точность = максимальное общее количество сохраняемых цифр, включая обе стороны десятичной точки — должно быть от 1 до 38 — по умолчанию = 18
    s = масштаб = количество цифр справа от десятичной точки — по умолчанию = 0
    */
    
    DECLARE @MyNumeric numeric(8,4) = 123.1 -- всего 8 цифр с 4 справа от десятичной точки
    ВЫБЕРИТЕ @MyNumeric КАК MyNumeric
     
    Деньги Тип данных
    • Деньги представляют собой денежную стоимость
    • Диапазон значений: от -922 337 203 685 477,5808 до 922 337 203 685 477,5807
    • Размер хранилища: 8 байт
     /*
    числовой (p,s)
    p = точность = максимальное общее количество сохраняемых цифр, включая обе стороны десятичной точки — должно быть от 1 до 38 — по умолчанию = 18
    s = масштаб = количество цифр справа от десятичной точки — по умолчанию = 0
    */
    
    --declare переменная и установите значение $1,99
    ЗАЯВИТЬ @MyMoney деньги = 1,99
    ВЫБЕРИТЕ @MyMoney КАК MyMoney
     
    Тип данных Smallmoney
    • Smallmoney представляет денежную стоимость
    • Диапазон значений: от -214 748,3648 до 214 748,3647
    • Размер хранилища: 4 байта
     --объявите переменную и установите значение $1,99
    ЗАЯВИТЕ @MySmallMoney smallmoney = 1,99
    ВЫБЕРИТЕ @MySmallMoney КАК MySmallMoney
     

    Приблизительные числовые значения Типы данных SQL Server

    Плавающая, тип данных
    • Плавающая — это приблизительный числовой тип данных, используемый для хранения числа с плавающей запятой.
      номер
    • float (n) — n — количество бит, которое используется для хранения мантиссы
      в экспоненциальном представлении
    • Диапазон значений: - 1,79E+308 до -2,23E-308, 0 и 2,23E-308 до 1,79E+308
    • Размер хранилища: 4 байта, если n = 1–9, и 8 байт, если n = 25–53 — по умолчанию
      = 53
     -- поплавок
    DECLARE @MyFLoat float = 0,1111111111111111111111111111111111111  -- вывод с точностью до 15 цифр
    ВЫБЕРИТЕ @MyFLoat КАК MyFloat
     
    Реальный тип данных
    • Real — тип данных с приблизительным числом, эквивалентный веществу с плавающей запятой (24), используемому для
      сохранить число с плавающей запятой
    • Диапазон значений: - 3,40E + 38 до -1,18E - 38, 0 и 1,18E - 38 до 3,40E
      + 38
    • Размер хранилища: 4 байта
     -- реальный
    DECLARE @MyReal real = 0,1111111111111111111111111111111111111  -- вывод с 7-значной точностью
    ВЫБЕРИТЕ @MyReal КАК MyReal
     

    Дата и время Типы данных SQL Server

    Дата Тип данных
    • Определяет дату в формате гггг-мм-дд
    • Диапазон значений: с 0001-01-01 по 9999-12-31
    • Размер хранилища: 3 байта
     -- объявить переменную и установить ее на 1 января 2020 г. 
    ОБЪЯВИТЬ дату @MyDate = '2020-01-01'
    ВЫБЕРИТЕ @MyDate
     
    Тип данных времени
    • Определяет
      время
    • Диапазон
      значений: с 00:00:00,0000000 до 23:59:59,9999999
    • Хранение
      размер: 5 байт
     -- объявить переменную времени и установить текущее время
    ОБЪЯВИТЬ @MyTime time = GETDATE()
    ВЫБЕРИТЕ @MyTime КАК MyTime
     
    Дата-время Тип данных
    • Определить
      дата и время
    • Диапазон
      значений: 0001-01-01 по 9999-12-31 - 00:00:00.0000000 по 23:59:59.9999999
    • Хранение
      размер: 8 байт
     -- объявить переменную datetime и установить текущее время
    ОБЪЯВИТЬ @MyDateTime datetime = GETDATE()
    ВЫБЕРИТЕ @MyDateTime КАК MyDatetime
     
    Datetime2 Тип данных
    • Определить
      дата и время с более высокой точностью, чем datetime
    • ЗАЯВИТЬ
      @VarName(n), где n — значение от 1 до 7, определяющее точность по умолчанию
      7
    • Диапазон
      значений: с 1753-01-01 по 9999-12-31 - 00:00:00. 0000000 по 23:59:59.9999999
    • Хранение
      размер:

      • точность < 3          6 байт
      • точность
        = 3 или 4    7 байт 90 575

      • точность >
        4          8 байт
     -- объявить переменную datetime2 и установить текущее время
    ОБЪЯВИТЬ @MyDatetime2 datetime2(7) = ПОЛУЧИТЬДАТУ()
    ВЫБЕРИТЕ @MyDatetime2 КАК MyDatetime2
     
    Тип данных Smalldatetime
    • Определить
      дата и время без долей секунды
    • Диапазон значений:
      с 01.01.1900 по 06.06.2079 - с 00:00:00 до 23:59:59
    • Размер хранилища:
      4 байта
     -- объявить переменную smalltime и установить текущее время
    ОБЪЯВИТЬ @MySmalldatetime smalldatetime = GETDATE()
    ВЫБЕРИТЕ @MySmalldatetime КАК MySmalldatetime
     
    Datetimeoffset Тип данных
    • Определяет дату и время с учетом часового пояса
    • DECLARE @VarName datetimeoffset(n)
      где
      n — значение от 1 до 7, определяющее точность, по умолчанию 7
    • Диапазон значений: с 0001-01-01 по 9999-12-31 - с 00:00:00 до 23:59:59. 9999999
      - от -14:00 до +14:00
    • Размер хранилища: 10 байт
     -- сравнить время в 2 часовых поясах
    DECLARE @Edt datetimeoffset = CAST('2020-01-01 08:00:00.000 -00:00' AS datetimeoffset)
    DECLARE @Pdt datetimeoffset = CAST('2020-01-01 05:00:00.000 -03:00' AS datetimeoffset)
    ВЫБЕРИТЕ DATEDIFF (минуты, @Edt, @Pdt) как MinutesDifference
     

    Строки символов Типы данных SQL Server

    Символ Тип данных
    • Чар исправлен
      строка размера, используемая для хранения символов
    • Символ(n | макс) –
      где n — фиксированная длина строки в парах байтов от 1 до 8000.
      и макс 8000
    • Размер хранилища:
      п
     -- символ
    DECLARE @MyChar char(20) = 'abcdefgh' -- используется 20 байтов
    ВЫБЕРИТЕ @MyChar КАК MyChar
     
    Тип данных Varchar
    • Varchar — это строка переменного размера, используемая для хранения символов
    • Варчар (сущ.
      | max) – где n – фиксированная длина строки в парах байтов из
      От 1 до 8 000, максимальное значение – 8 000
    • Размер хранилища:
      до n или макс.
     -- символ
    DECLARE @MyChar char(20) = 'abcdefgh' -- используется 20 байтов
    ВЫБЕРИТЕ @MyChar КАК MyChar
     
    Текстовый тип данных
    • Тест представляет собой строку переменной длины до 2 147 483 647 байт
    • Недействительно для локальной переменной
    • Размер хранилища: до 2 147 483 647 байт
     -- создать таблицу с 1 полем текстового типа
    СОЗДАТЬ ТАБЛИЦУ dbo.MyTable(текст MyText NULL)
    --вставить значение
    ВСТАВЬТЕ ЗНАЧЕНИЯ dbo.MyTable('abcdefgh')
    ВЫБРАТЬ Мой текст
    ИЗ dbo.MyTable
     

    Строки символов Unicode Типы данных SQL Server

    Nchar Тип данных
    • Nchar исправлен
      строка размера
    • Используйте для хранения
      строка символов фиксированной длины
    • Нчар(н |
      max) – где n – фиксированная длина строки в парах байтов от 1
      до 4000 и максимально 4000
    • Размер хранилища:
      n или макс.
     -- нчар
    DECLARE @MyNchar char(10) = 'abcdefgh' -- использовано 20 байт
    ВЫБЕРИТЕ @MyNchar КАК MyNchar
     
    Nvarchar Тип данных
    • Nvarchar — это строка переменного размера
    • Может хранить текст на нескольких языках
    • Нварчар (н
      | max) – где n – фиксированная длина строки в парах байтов из
      От 1 до 4 000, максимальное значение – 4 000
    • Размер хранилища:
      до n или макс.
     -- нварчар
    DECLARE @MyNvarchar char(10) = 'abcdefgh' -- используется 8 байтов
    ВЫБЕРИТЕ @MyNvarchar КАК MyNvarchar
     

    Двоичные строки Типы данных SQL Server

    Тип двоичных данных
    • Двоичный — это тип данных фиксированной длины
    • Может использоваться для хранения любых двоичных данных фиксированной длины, таких как файлы,
      и т.д.
    • Двоичный(n) – где n от 1 до 8000
    • Размер хранилища: n
     -- двоичный
    ОБЪЯВИТЬ @MyBinary двоичный (2) = 100
    SELECT CAST(@MyBinary AS int) AS MyBinary
     
    Тип данных Varbinary
    • Varbinary — это тип данных переменной длины, который можно использовать для хранения любых
      двоичные данные различной длины, такие как файлы и т. д.
    • Varbinary(n | max) — где n от 1 до 8000, а max равно 8000
    • Размер хранилища: n
     -- варбинарный
    ОБЪЯВИТЬ @MyVarbinary varbinary(2) = 100
    SELECT CAST(@MyVarbinary AS int) AS MyVarbinary 
    Следующие шаги

    Ниже приведены некоторые ссылки с дополнительной информацией о типах данных:

    • Советы по типам данных SQL Server

    • Типы данных Microsoft Docs (Transact-SQL)

    Об авторе

    Джо Гэвин из района Большого Бостона.