Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 3

Типы данных: текст, числа, даты

Recommended resources

Привет! В прошлый раз мы разобрались с главным: любая таблица состоит из столбцов (что мы хотим знать) и строк (о ком мы это знаем). Это наш фундамент.

Сегодня мы добавим на этот фундамент еще один ключевой элемент — типы данных. А еще поговорим о том, что делать, когда данных нет. Этот урок поможет тебе понять, почему нельзя сложить два имени пользователя, но можно посчитать средний чек, и почему «неизвестно» — это тоже важная информация.

Что мы сегодня изучим:

  • Основные типы данных: разберемся, как база данных отличает текст от чисел и дат.
  • Понятие NULL: узнаем, как SQL обозначает отсутствующую или неизвестную информацию.

Это последняя теоретическая остановка перед тем, как мы начнем писать код и работать с данными вживую!

1. Что это такое простыми словами

Типы данных — это как правила для каждого столбца в таблице, которые говорят: «Здесь можно хранить только текст», «а здесь — только целые числа», «а вот тут — дату и время».

Представь, что у тебя есть три контейнера: один для яблок, другой для воды, третий для песка. Ты же не будешь лить воду в контейнер для яблок? С данными то же самое. База данных должна четко понимать, с чем она работает, чтобы выполнять наши команды правильно.

Основные типы данных SQL
Эта схема наглядно показывает три главные категории данных, с которыми мы будем работать: строковые (текст), числовые и даты/время. Мы сосредоточимся именно на них.

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

  1. Строковые (Текст): Все, что можно написать словами. Имена пользователей, названия товаров, адреса, промокоды. В коде такие значения обычно пишутся в одинарных кавычках, например: 'Алексей' или 'New-Year-Sale-2024'.

    • Примеры столбцов: user_name, email, city, product_description.
  2. Числовые: Любые числа, с которыми можно проводить математические операции (складывать, находить среднее и т.д.). Важно различать:

    • Целые числа (в SQL их часто называют INT или INTEGER): количество товаров в корзине, возраст пользователя, число визитов на сайт.
    • Дробные числа (в SQL — DECIMAL, NUMERIC или FLOAT): цена товара, сумма заказа, рейтинг статьи. Это критически важно для всего, что связано с деньгами.
    • Примеры столбцов: price, quantity, user_age.
  3. Дата и время: Специальный тип для хранения моментов времени. Это не просто текст, а особый формат, который позволяет вычислять разницу между датами, группировать события по месяцам или дням недели.

    • Примеры столбцов: registration_date, order_timestamp, last_login_at.

2. Зачем это нужно именно мне?

Понимание типов данных напрямую влияет на то, какие выводы ты сможешь сделать из данных:

  • Как продуктовый дизайнер: Ты хочешь показать на экране профиля, как давно пользователь зарегистрировался. Если дата регистрации (registration_date) хранится в правильном формате даты, ты можешь легко посчитать разницу: «На проекте 2 года и 3 месяца». Если бы это был просто текст, такая магия была бы невозможна.

  • Как маркетолог: Ты анализируешь рекламную кампанию. Чтобы посчитать общую выручку (revenue), нужно сложить значения из столбца order_total. Это возможно, только если order_total — числовой тип. Если бы по ошибке там был текстовый тип, SQL не смог бы выполнить сложение.

Чтобы глубже разобраться в каждой категории, давай изучим отличную статью-справочник. Она подробно описывает самые популярные типы данных.

Типы данных в SQL с примерами

В этой статье очень четко и по делу описаны основные типы данных. Она послужит тебе хорошей шпаргалкой в будущем.

Прочитай разделы: 'Числовые типы данных', 'Строковые типы данных' и 'Дата и время'. Не нужно запоминать все названия (вроде TINYINT или BIGINT), главное — уловить разницу между целыми числами (INT), числами с точкой (DECIMAL) и для чего нужны разные типы текста (VARCHAR, TEXT) и дат (DATE, DATETIME).


3. А если данных нет? Знакомство с NULL

Что если пользователь при регистрации не указал свой город? Или оставил поле «номер телефона» пустым? Для таких ситуаций в SQL есть специальное значение — NULL.

NULL — это не 0 и не пустая строка.

  • 0 (ноль) — это конкретное число. Например, quantity = 0 означает, что товара на складе нет. quantity = NULL означает, что мы не знаем, сколько товара на складе.
  • '' (пустая строка) — это конкретное текстовое значение. city = '' может означать, что пользователь сознательно оставил поле пустым. city = NULL означает, что информация о городе отсутствует или неприменима.

Понимание NULL очень важно. Например, при подсчете среднего возраста пользователей те, у кого возраст NULL, не будут учитываться в расчетах. Это помогает избежать искажения результатов.

Давай прочитаем короткий отрывок, который хорошо объясняет эту концепцию.

Типы данных SQL: какие бывают и как с ними работать

Теперь давай разберемся с важной концепцией — отсутствием данных. В этой статье хорошо объясняется суть NULL.

Прочитай раздел 'Значение NULL'. Постарайся понять ключевую идею: NULL — это не ноль и не пустая строка, а именно 'неизвестное' или 'отсутствующее' значение. Обрати внимание на пример с номером телефона.


4. Практическое задание

Давай закрепим материал. Представь, что ты работаешь с базой данных интернет-магазина. Определи наиболее подходящий тип данных для каждого из полей ниже и подумай, может ли в этом поле быть значение NULL.

  1. Название товара (например, "Беспроводные наушники Sony WH-1000XM5")
  2. Цена товара (например, 34990.90)
  3. Количество на складе (например, 150)
  4. Артикул товара (например, "SN-WH1000XM5-BLK")
  5. Дата добавления товара на сайт
  6. Промокод, который применил покупатель к заказу
  7. Возраст покупателя
  8. Общая сумма заказа

💡 Мои варианты для самопроверки
  1. Название товара: Строковый (VARCHAR или TEXT). NULL быть не может, у товара должно быть название.
  2. Цена товара: Числовой, с плавающей точкой (DECIMAL или NUMERIC). NULL быть не может, у товара должна быть цена (даже если она 0).
  3. Количество на складе: Числовой, целый (INT). NULL быть не должно, лучше 0, если товара нет.
  4. Артикул товара: Строковый (VARCHAR). Хотя он может состоять из цифр, с ним не делают математических операций. NULL быть не может.
  5. Дата добавления: Дата и время (DATETIME или TIMESTAMP). NULL быть не может.
  6. Промокод: Строковый (VARCHAR). Вполне может быть NULL, если покупатель не использовал промокод.
  7. Возраст покупателя: Числовой, целый (INT). Может быть NULL, так как пользователь не обязан указывать свой возраст.
  8. Общая сумма заказа: Числовой, с плавающей точкой (DECIMAL). NULL быть не должно.


5. Чек-лист: что я должен уметь после этого урока

  • Я могу назвать три основных типа данных (текст, числа, даты) и привести по паре примеров для каждого.
  • Я понимаю, почему цена товара — это числовой тип, а номер телефона — строковый.
  • Я могу объяснить разницу между NULL, нулём (0) и пустой строкой ('').
  • Я понимаю, в каких случаях в данных может встретиться NULL.

Отлично поработали! Мы завершили базовый теоретический блок. Теперь у тебя есть все необходимые знания, чтобы начать работать с реальной базой данных.

В следующем уроке мы сделаем последний подготовительный шаг: откроем и настроим онлайн-редактор SQL, чтобы у тебя было готовое рабочее место для практики. После этого — только код и анализ данных