Типы данных в современных системах управления базами данных (СУБД) можно разделить на несколько основных категорий. Хотя конкретные названия могут варьироваться (например, в PostgreSQL, MySQL или Oracle), общая классификация остается неизменной. 1. Числовые типы (Numeric Types) Предназначены для хранения целых и дробных чисел.
- Целочисленные (Integer):
TINYINT,SMALLINT,INT,BIGINT. Различаются диапазоном допустимых значений и объемом занимаемой памяти. - Числа с фиксированной точкой:
DECIMALилиNUMERIC. Используются там, где важна точность, например, в финансовых расчетах. - Числа с плавающей точкой:
FLOAT,DOUBLE,REAL. Используются для научных расчетов, где допускается небольшая погрешность ради скорости вычислений.
2. Строковые типы (Character Types) Используются для хранения текстовой информации.
- Фиксированная длина:
CHAR. Дополняется пробелами до заданной длины. - Переменная длина:
VARCHAR. Занимает столько места, сколько содержит символов (плюс служебные байты). - Большие тексты:
TEXT,CLOB(Character Large Object). Предназначены для хранения длинных статей, описаний или логов.
3. Типы даты и времени (Date/Time Types) Позволяют не только хранить данные, но и выполнять над ними арифметические операции.
- DATE: Только дата (год, месяц, день).
- TIME: Только время.
- DATETIME / TIMESTAMP: Комбинированные типы.
TIMESTAMPчасто зависит от часового пояса и используется для фиксации момента изменения записи. - INTERVAL: Промежуток времени (например, «3 часа 20 минут»).
4. Логический тип (Boolean) Принимает значения TRUE (истина), FALSE (ложь) или NULL (неизвестно). В некоторых базах данных реализуется как числовой тип TINYINT(1). 5. Двоичные типы (Binary Types) Для хранения данных в «сыром» виде (картинки, скомпилированные файлы, аудио).
- BINARY / VARBINARY: Строки байтов фиксированной или переменной длины.
- BLOB (Binary Large Object): Объект большого объема (изображения, видеофайлы).
6. Структурированные и специальные типы Современные СУБД поддерживают сложные форматы данных для гибкости разработки.
- JSON / JSONB: Позволяют хранить документы с произвольной структурой внутри одной ячейки.
JSONB— это бинарная, более быстрая версия JSON. - XML: Для хранения данных в формате разметочного языка.
- UUID: Уникальный идентификатор (128-битное число), часто используемый как первичный ключ.
- ENUM (Перечисления): Список допустимых строковых значений, определенных при создании таблицы.
- Геометрические / Геопространственные типы:
POINT,POLYGON,LINESTRING. Используются в картографии и GPS-сервисах. - Массивы: Возможность хранения списка значений одного типа в одном поле (характерно для PostgreSQL).
7. Сводная таблица соответствия (пример)
| Категория | Типичный представитель | Описание |
|---|---|---|
| Числа | INT, DECIMAL | Возраст, цена, количество |
| Текст | VARCHAR, TEXT | Имя пользователя, текст статьи |
| Время | DATE, TIMESTAMP | Дата рождения, время создания |
| Файлы | BLOB | Аватар пользователя, PDF-документ |
| Объекты | JSONB | Настройки интерфейса, метаданные |
Я могу составить для вас SQL-запрос для создания таблицы (CREATE TABLE), включающей наиболее востребованные из этих типов данных.