Перейти к содержанию

Типы данных

Типы данных — это определённые характеристики данных, которые задаются для каждой колонки, переменной или выражения в базе данных. Они определяют, какой вид данных может быть сохранён в поле, а также правила обработки этих данных.


Почему типы данных важны?

  1. Оптимизация хранения: Использование подходящего типа данных позволяет эффективно использовать память.
  2. Целостность данных: Ограничивает ввод некорректных данных (например, нельзя записать текст в числовое поле).
  3. Производительность: Упрощает и ускоряет обработку данных.
  4. Управление операциями: Определяет, какие операции допустимы с данными (например, математические операции применимы только к числовым типам).

Каждая колонка, переменная и выражение в SQL имеют определённый тип данных (data type).

Основные категории типов данных

1. Числовые типы:

  - Точные: `int`, `bigint`, `smallint`, `decimal`, `numeric`.
  - Приблизительные: `float`, `real`.
Точные числовые
Тип данных От До
bigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807
int -2,147,483,648 2,147,483,647
smallint -32,768 32,767
tinyint 0 255
bit 0 1
decimal -10^38 + 1 10^38 - 1
numeric -10^38 + 1 10^38 - 1
money -922,337,203,685,477.5808 922,337,203,685,477.5807
smallmoney -214,748.3648 214,748.3647

Приблизительные числовые
Тип данных От До
float -1.79E + 308 1.79E + 308
real -3.40E + 38 3.40E + 38

2. Дата и время:

  - Хранят информацию о дате и времени: `datetime`, `date`, `time`.
Тип данных От До
datetime Jan 1, 1753 Dec 31, 9999
smalldatetime Jan 1, 1900 Jun 6, 2079
date Дата сохраняется в формате June 30, 1991
time Время сохраняется в формате 12:30 P.M.

3. Строковые типы:

  - Не-юникод: `char`, `varchar`, `text`.
  - Юникод: `nchar`, `nvarchar`, `ntext`.
Строковые символьные
N Тип данных Описание
1 char Строка длиной до 8,000 символов (не-юникод символы, фиксированной длины)
2 varchar Строка длиной до 8,000 символов (не-юникод символы, переменной длины)
3 text Не-юникод данные переменной длины, длиной до 2,147,483,647 символов

Строковые символьные (юникод)
N Тип данных Описание
1 nchar Строка длиной до 4,000 символов (юникод символы, фиксированной длины)
2 nvarchar Строка длиной до 4,000 символов (юникод символы, переменной длины)
3 ntext Юникод данные переменной длины, длиной до 1,073,741,823 символов

4. Бинарные типы:

  - Хранят данные в виде двоичных значений: `binary`, `varbinary`, `image`.
N Тип данных Описание
1 binary Данные размером до 8,000 байт (фиксированной длины)
2 varbinary Данные размером до 8,000 байт (переменной длины)
3 image Данные размером до 2,147,483,647 байт (переменной длины)

5. Смешанные типы:

  - Для специальных задач: `timestamp`, `uniqueidentifier`, `cursor`, `table`.
N Тип данных Описание
1 timestamp Уникальные числа, обновляющиеся при каждом изменении строки
2 uniqueidentifier Глобально-уникальный идентификатор (GUID)
3 cursor Объект курсора
4 table Промежуточный результат, предназначенный для дальнейшей обработки

Пример использования

При создании таблицы в SQL, тип данных задаётся для каждой колонки:

CREATE TABLE Users (
    ID INT PRIMARY KEY,
    Name NVARCHAR(100),
    DateOfBirth DATE,
    Balance DECIMAL(10, 2)
);
  • ID — целое число для идентификатора.
  • Name — строка с поддержкой юникода до 100 символов.
  • DateOfBirth — дата рождения пользователя.
  • Balance — точное число с 2 десятичными знаками.

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