Найти в Дзене

VARCHAR, INT и другие бойцы: разруливаем типы данных в SQL

Оглавление

Типы данных в SQL: для чего вообще это нужно?

SQL — это как батя в мире баз данных, отвечает за порядок. Полное название — Structured Query Language, но мы тут не для заумных слов собрались. Короче, SQL — это такой язык, который помогает тусоваться с базами данных. Там есть четкая структура, чтобы всё по красоте было: можно данные создать, почитать, подправить или выкинуть, если надоело. Это всё, кстати, называется CRUD (Create, Read, Update, Delete) — создал, прочитал, обновил, удалил. Ну, ты понял.

А зачем эти типы данных?

Смотри, в базе данных могут быть разные типы инфы: текст, числа, даты, деньги, файлы и т.д. Типы данных — это как шмотки для базы: что наденешь, так и будешь ходить. А что важно? Чтобы шмот был удобный! Вот так и с типами данных. SQL помогает решить сразу три задачи:

  1. Поддерживать порядок. Типы данных дают базе понять, как лучше хранить данные и что с ними делать. Ну, типа, текст отдельно, числа отдельно.
  2. Экономить время и нервы. Когда всё разложено по полочкам, SQL-ка быстрее работает. Ты ведь не ищешь носки на кухне, правда?
  3. Не тратить место по-пустому. Если всё грамотно упаковать, база не будет раздуваться, как сосиски в микроволновке.

Пример из реальной жизни

Допустим, ты сделал таблицу, где хранишь данные про сотрудников. Вот как это может выглядеть:

CREATE TABLE employees (
employee_id INT, -- Уникальный номер сотрудника (число)
name VARCHAR(50), -- Имя сотрудника (строка, максимум 50 символов)
salary DECIMAL(10, 2), -- Зарплата с копейками
hire_date DATE, -- Дата приёма на работу
is_active BOOLEAN -- Активен ли сотрудник (да/нет)
);

SQL тебе сразу говорит: "Брат, сюда текст не положишь, тут только числа". Это как если в холодильник вместо молока кирпич положить — бред же. А если где-то ошибся, SQL тебе об этом намекнёт: "Алё, ты что-то делаешь не то, посмотри внимательно".

Почему важно выбрать правильный тип?

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

  • Если хранишь возраст, то зачем использовать BIGINT, который занимает много памяти? Возраст больше 255 лет не бывает (ну разве что ты — черепаха). Хватит TINYINT, который памяти почти не жрёт.
  • А вот для уникальных номеров записей (ID) лучше взять INT, потому что там диапазон огромный, и можно хранить миллионы записей.

Пример:

CREATE TABLE users (
user_id INT PRIMARY KEY, -- Уникальный ID
age TINYINT -- Возраст (ну тут всё понятно)
);

Вот тебе реальный пример. Если в базе миллион пользователей, сэкономишь кучу памяти. Каждая запись будет занимать 1 байт вместо 4. На масштабе это реально выручает.

Разделим пацанов по категориям: основные типы данных

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

TINYINT, SMALLINT, INT, BIGINT. Всё просто: чем больше тип, тем больше число можешь хранить.

TINYINT: для мелочей, типа возраста.

INT: для ID, цен, счётчиков.

BIGINT: для реально крупных чисел, например, номеров транзакций в банке.

DECIMAL, FLOAT. Это уже для дробных чисел — зарплаты, весы, проценты.

DECIMAL — это для бухгалтеров, где ошибка даже в копейке смертельна.

FLOAT — для учёных, типа веса Марса (можно с погрешностью).

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

CHAR и VARCHAR. Для текста.

CHAR — когда всё одной длины (например, коды стран: RUS, USA).

VARCHAR — для всего остального. Имя, адрес — что угодно.

TEXT. Когда текста прям дофига: отзывы, комментарии, описания товаров.

3. Типы для даты и времени:

DATE, TIME, TIMESTAMP.

DATE — просто дата (например, день рождения).

TIME — время (например, начало смены).

TIMESTAMP — дата и время вместе. Это если нужно отслеживать, когда кто-то в базе что-то обновил.

4. Логический тип:

BOOLEAN. Это "да" или "нет". 1 или 0.

Например: активен ли пользователь? TRUE/FALSE.

А что, если накосячишь?

Если вдруг в колонку с датами захочешь положить текст, SQL тебе скажет: "Ты чё, пацан, попутал? Давай исправляй". Это полезно, чтобы избежать ошибок: типа, случайно не запишешь имя в колонку с деньгами.

Как SQL приводит данные к нужному типу

Если ты где-то ляпнул и данные не того типа, SQL может попробовать сам их исправить:

Неявное приведение: SQL сам догадается, что делать. Например:

SELECT 100 + '123'; -- SQL сложит число и текст, получится 223.

Явное приведение: тут уже ты сам говоришь, как исправить:

SELECT CAST('123' AS INT); -- Преобразует строку в число.

Но будь осторожен, бро, потому что SQL может что-то отрезать, как лишний рукав. Например:

SELECT CAST(345.67 AS INT); -- Уберёт дробную часть, останется 345.

Зачем всё это пацанам?

SQL — это база основ. Если ты работаешь с данными, без этого никуда. Будь то веб-приложение, мобильное приложение или сложная аналитика, SQL — это твоё оружие. Ну, а чтобы держать базу данных на стиле, всегда выбирай правильные типы данных, и будет тебе счастье.

Подпишись на наш телеграм канал, чтобы узнать больше: t.me/it_for_dudes