Типы данных в SQL
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Типы данных в SQL
Типы данных определяют, какая информация может храниться в столбце таблицы: числа, текст, даты и т.д. Каждая СУБД поддерживает свои типы, но есть общая классификация.
1. Числовые типы
★ Числовые типы – используются для хранения чисел.
Целые числа:
| Тип | Диапазон | Пример использования |
|---|---|---|
| INT, INTEGER | От -2³¹ до 2³¹-1 (~±2.1 млрд) | Возраст (age INT) |
| SMALLINT | От -32,768 до 32,767 | Количество товаров на складе |
| BIGINT | От -2⁶³ до 2⁶³-1 (огромные числа) | ID в крупных системах |
| TINYINT | От -128 до 127 (или 0 до 255) | Логический флаг (is_active TINYINT(1)) |
Числа с плавающей точкой:
| Тип | Описание | Пример использования |
|---|---|---|
| FLOAT | Приблизительное число (~7 знаков) | Температура |
| DOUBLE | Более точное число (~15 знаков) | Координаты на карте |
| DECIMAL(p, s) | Точное число (p — всего цифр, s — после запятой) | Деньги (DECIMAL(10, 2)) |
2. Строковые типы
★ Строковые типы – для хранения текстов и бинарных данных.
Текстовые типы:
| Тип | Описание | Пример использования |
|---|---|---|
| VARCHAR(n) | Строка переменной длины (до n символов) | Имя (VARCHAR(50)) |
| CHAR(n) | Строка фиксированной длины (дополняется пробелами) | Код страны (CHAR(2)) |
| TEXT | Большой текст (до 65,535 символов) | Описание товара |
| LONGTEXT | Очень большой текст (до 4 ГБ) | Статьи, книги |
Бинарные данные:
| Тип | Описание |
|---|---|
| BLOB | До 65 КБ бинарных данных (изображения, PDF) |
| LONGBLOB | До 4 ГБ бинарных данных |
3. Дата и время
★ Дата и время – для хранения временных меток.
| Тип | Формат | Пример использования |
|---|---|---|
| DATE YYYY-MM-DD Дата рождения | ||
| TIME HH:MM:SS Время события | ||
| DATETIME YYYY-MM-DD HH:MM:SS Дата и время заказа | ||
| TIMESTAMP YYYY-MM-DD HH:MM:SS (с учётом часового пояса) Время последнего входа |
4. Логический тип
★ Логический тип всегда один:
BOOLEAN – TRUE или FALSE (истина или ложь).
5. Особые типы
★ Особые типы:
JSON – хранение данных в JSON поддерживается в некоторых СУБД (MySQL, PostgreSQL):
CREATE TABLE products (
attributes JSON -- Например, {"color": "red", "size": "XL"}
);
ENUM – столбец с предопределёнными значениями (из списка имеющихся):
CREATE TABLE users (
gender ENUM('male', 'female')
);
Соответственно, в зависимости от планируемого содержания, нужно изначально выбрать тип данных для каждого столбца:
- числа – INT;
- деньги – DECIMAL;
- проценты – FLOAT;
- текст фиксированной длины – CHAR;
- переменная длина (имена, описания) – VARCHAR;
- большие тексты – TEXT;
- дата – DATE;
- дата и время – DATETIME.
Пример создания таблицы с разными типами:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
birth_date DATE,
salary DECIMAL(10, 2),
is_manager BOOLEAN,
working_hours TIME,
hire_date TIMESTAMP,
bio TEXT
);
Важно: размер имеет значение. VARCHAR(255) занимает меньше места, чем VARCHAR(1000), даже если в нём короткие строки. Это важно при оптимизации работы и ресурсов. Именно поэтому типов данных так много – под разные цели.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Вот SQL как раз обеспечивает такую связь и это главное отличие реляционных БД - реляции (relations), что означает связи. Знакомимся с языком - ставим программы, запускаем, выполняем первые запросы. Порядок работы с данными — выполняется подключение к БД (логин/пароль, адрес сервера), отправляется запрос (например, выбрать все записи из таблицы №1), выполняется обработка запроса в СУБД, СУБД… Как читать сложные SQL запросы? Анализ вложенных конструкций. DDL - Данные Definition Language (язык определения данных), используется для создания, изменения, удаления объектов структуры данных (таблиц, индексов, схем и т.д.). Два важных вопроса, которые мучают начинающих программистов — Когда использовать кавычки двойные (), одинарные (), а когда апострофы (’)?, Когда использовать точки (.), запятые (,) и точку с запятой… Примеры привилегий — SELECT — чтение данных, INSERT — добавление записей, UPDATE — изменение записей, DELETE — удаление записей ★ DDL (Данные Definition Language) – подмножество SQL, отвечающее за определение и изменение структуры базы данных. DDL-операции работают с метаданными — создают, изменяют и удаляют таблицы, индексы,… Ограничения (constraints) в SQL — это декларативные правила, встроенные в определение таблиц, которые обеспечивают корректность, согласованность и надёжность данных на уровне СУБД. Они действуют… ★ DML (Данные Manipulation Language) в отличие от DDL, выполняет работу не со структурой БД, а непосредственно с данными. В DML SQL оперирует четырьмя главными действиями, известными как CRUD — ★… ★ Алиасы (AS) используются для временного переименования таблиц или столбцов в запросе SQL. Они делают запросы более читаемыми и позволяют избежать конфликтов имён. Общее табличное выражение представляет собой именованное временное результирующее множество, существующее в рамках одного SQL-запроса. Общие табличные выражения позволяют разбить сложный запрос на…SQL - язык структурированных запросов
Первые шаги с SQL
Принципы работы SQL-движка
Чтение и анализ сложных SQL-запросов
Категории SQL-команд - DDL, DML, DCL, TCL
Синтаксис и пунктуация в SQL
Взаимодействие приложений с СУБД через SQL
DDL - определение структуры базы данных
Ограничения целостности в SQL
CRUD-операции и язык манипуляции данными (DML)
Алиасы, JOIN и объединение таблиц
Общие табличные выражения (CTE)