Код #Статьи

3 июля, 2025

NULL, ноль и undefined в SQL: что это, для чего нужны и чем различаются / Skillbox Media

Есть три вида пустоты. Ну вот какая между ними разница?

Курс с трудоустройством: «Профессия Data-аналитик»

Узнать больше

Ноль, пустота и неопределённость — в жизни подобные слова можно считать синонимами, но в программировании за ними скрыт разный смысл. Это три разных значения: 0, NULL и undefined. Ноль — просто ноль, пустота — NULL, а неопределённость — undefined. В статье на примере языка SQL мы разберём разницу между нулём и NULL. А вот для понимания undefined нам понадобится JavaScript. Запутанно? Сейчас по порядку во всём разберёмся.

Содержание

  • Рекомендации для лучшего усвоения темы
  • Познакомьтесь с основами SQL
  • Зарегистрируйтесь на платформе Oracle Live SQL
  • Что такое ноль в SQL
  • Что такое undefined и почему его нет в SQL
  • Что такое NULL и как с ним работать
  • Что изучить дальше

Рекомендации для лучшего усвоения темы

Это подготовительный раздел, который разбит на две части. В первой части собрана теория по базам данным и языку SQL, а во второй есть ссылка на платформу для практики. Если вы новичок, рекомендуем сначала изучить предложенные материалы, а затем искать различия между нулём, NULL и undefined. Иначе примеры кода в этой статье вам могут быть непонятны.

SQL, или Structured Query Language, — это язык для работы с реляционными базами данных. Эти базы представлены в виде связанных таблиц, в которых информация разложена по колонкам и строкам. В них можно хранить отчёты, банковские транзакции, контакты клиентов, накладные и прочие сведения.

Если вы не слышали о базах данных и SQL — вот ознакомительные статьи:

  • «База данных: что это такое и зачем она нужна»
  • «Что такое SQL: как устроен, зачем нужен и как с ним работать»
  • «SQL-запросы: основные команды для управления базами данных»

Для закрепления прочитанного посмотрите вебинар по основам языка SQL. Спикер — Мкртич Пудеян, специалист по анализу данных в Газпромбанке.

Oracle Live SQL — это бесплатная онлайн-платформа, на которой вы можете учиться писать запросы и работать с базами данных. Достаточно перейти на сайт oracle.com, зарегистрироваться и верифицировать электронную почту.

После регистрации вы попадёте в рабочее пространство и сможете сразу проверить подключение. Для этого введите любую SQL-команду и убедитесь, что после неё отображается выбранная таблица. Пример одной из команд:

Таблица вымышленных сотрудников. Если после ввода команды таблица не появилась — убедитесь, что вы нажали на зелёную кнопку Run в верхнем углу рабочего пространстваСкриншот: Oracle Corporation

Что такое ноль в SQL

Представьте миску с абрикосами. Если вы их съедите, то миска опустеет и в ней будет ноль абрикосов. Ноль здесь будет числовым эквивалентом отсутствия чего-либо и нужен для арифметических или логических операций.

В арифметических операциях ноль можно вычитать и складывать с другими числами — значение этих чисел при этом не изменится. Ещё можно умножить или разделить любое число на ноль, но в результате это даст ноль:

Примеры арифметических операций с нулём в SQL Скриншот: Oracle Corporation

В логических операциях ноль обозначает ложное значение — false. При этом любое другое число будет отвечать за правдивые значения — true.

Создадим таблицу с данными о сотрудниках компании:

Добавим в таблицу информацию о действующих и уволенных сотрудниках:

Теперь с помощью нуля и единицы выполним несколько SQL-запросов к нашей таблице. Для начала выберем всех действующих сотрудников:

Таблица со списком действующих сотрудников: в компании работают Катя и ЖеняСкриншот: Oracle Corporation

Посмотрим список уволенных сотрудников:

Таблица со списком действующих сотрудников: из компании уволены Таня и Саша ?Скриншот: Oracle Corporation

Закроем нашу компанию и обновим в базе данных статусы сотрудников:

Если теперь проверить результат, то в компании никто не работает:

Таблица со списком действующих сотрудников: в компании никого не осталось ???Скриншот: Oracle Corporation

Что такое undefined и почему его нет в SQL

В языке JavaScript undefined относится к специальному типу данных, который указывает, что значение неопределённо. Undefined не нужно специально задавать, поскольку его интерпретатор всегда указывает автоматически.

Значение undefined проще понять на примере. Перейдите в настройки браузера, откройте вкладку Дополнительные инструменты и найдите раздел Инструменты разработчика. Вам нужно открыть вкладку Консоль.

Читайте также:

Что такое JavaScript и зачем он нужен

Объявим в консоли переменную, запишем в неё имя и выведем результат:

Ожидаемо мы получаем сохранённое в переменной значение:

Скриншот: Chrome DevTools / Skillbox Media

Объявим ещё одну переменную, но добавлять в неё никакого значения пока не будем. Если вывести такую переменную в консоль, то результат будет не определён — undefined. Интерпретатор указал это значение автоматически:

Скриншот: Chrome DevTools / Skillbox Media

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

Скриншот: Chrome DevTools / Skillbox Media

Читайте также:

Чем различаются var, let и const в JavaScript

В SQL вместо undefined используют NULL — так обозначают отсутствующие и неопределённые значения. Это предусматривает SQL-92 и другие стандарты, которые обеспечивают совместимость различных систем управления базами данных (СУБД). Отказ от undefined делает работу с базами данных более последовательной и позволяет избежать многих ошибок.

Что такое NULL и как с ним работать

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

Если мы посмотрим таблицу, то в колонке Fax у двух сотрудников будут стоять прочерки. Эти прочерки означают NULL — значение отсутствует. Если вместо Oracle Live SQL вы будете работать с другой платформой, то можете увидеть разные отображения значения NULL: в одних программах тоже будут прочерки, другие добавят надпись NULL, а третьи оставят пустые ячейки.

Таблица с контактными данными сотрудников компании. Факс есть не у всех Скриншот: Oracle Corporation

Поработаем с таблицей и для начала выведем всех сотрудников с факсом:

Таблица с данными сотрудников, у которых есть факс Скриншот: Oracle Corporation

Теперь отдельно посмотрим список сотрудников без факса:

Таблица с контактными данными сотрудников, которые работают без факса Скриншот: Oracle Corporation

Допустим, нас не устраивает, что не у всех есть факс. Купим за свой счёт недостающую технику и для удобства присвоим каждому сотруднику уникальный номер факса на основе его идентификатора из таблицы:

Если сейчас посмотреть обновления, то NULL больше не встречается:

Таблица с контактами сотрудников, где у всех есть телефон и факс Скриншот: Oracle Corporation

Что изучить дальше

Вы познакомились со значением NULL и знаете, чем оно отличается от нуля. Однако в статье мы рассматривали простые примеры и не вникали в детали SQL-синтаксиса. Если вам нужно с этим разобраться — рекомендуем пройти два бесплатных интерактивных руководства на платформе Oracle Live SQL.

Querying Null-valued Rows: Databases for Developers. Это руководство для изучения NULL. Вы на примерах ещё раз познакомитесь с этим значением, научитесь его правильно определять, сравнивать и использовать в функциях.

Фрагмент интерактивного руководства по работе с NULLСкриншот: Oracle Corporation

Columns and Data Types: Databases for Developers. В этом руководстве вы познакомитесь со структурой таблицы и популярными типами данных: числами, строками, булевыми и двоичными значениями, датой и временем.

Фрагмент интерактивного руководства по работе с различными типами данных в SQLСкриншот: Oracle Corporation

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Читайте также:

  • SQL и NoSQL: инь и ян в мире баз данных
  • Система управления базами данных: что это такое и зачем она нужна
  • Знакомимся с Redis