Типы данных
Типы данных — это определённые характеристики данных, которые задаются для каждой колонки, переменной или выражения в базе данных. Они определяют, какой вид данных может быть сохранён в поле, а также правила обработки этих данных.
Почему типы данных важны?
- Оптимизация хранения: Использование подходящего типа данных позволяет эффективно использовать память.
- Целостность данных: Ограничивает ввод некорректных данных (например, нельзя записать текст в числовое поле).
- Производительность: Упрощает и ускоряет обработку данных.
- Управление операциями: Определяет, какие операции допустимы с данными (например, математические операции применимы только к числовым типам).
Каждая колонка, переменная и выражение в 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 десятичными знаками.
Выбор подходящего типа данных играет ключевую роль в проектировании базы данных, так как влияет на её производительность, надёжность и корректность работы.