MySQL IS NULL & IS NOT NULL Учебное пособие с ПРИМЕРАМИ

Содержание:

Anonim

В SQL Null одновременно является значением и ключевым словом. Давайте сначала посмотрим на значение NULL -

Нулевое значение как значение

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

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

Давайте теперь рассмотрим некоторые основы NULL, прежде чем мы продолжим обсуждение.

  • NULL не является типом данных - это означает, что он не распознается как «int», «date» или любой другой определенный тип данных.
  • Арифметические операции с участием NULL всегда возвращают NULL, например 69 + NULL = NULL.
  • Все агрегатные функции влияют только на строки, не имеющие значений NULL .

Давайте теперь продемонстрируем, как функция count обрабатывает нулевые значения. Давайте посмотрим на текущее содержимое таблицы участников -

SELECT * FROM `members`;

Выполнение вышеуказанного скрипта дает нам следующие результаты

 
membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Подсчитаем всех участников, которые обновили свой contact_number

SELECT COUNT(contact_number) FROM `members`;

Выполнение вышеуказанного запроса дает нам следующие результаты.

 
COUNT(contact_number)
7

Примечание: значения NULL не были включены

Что не является?

Логический оператор НЕ используется для проверки логических условий и возвращает истину, если условие ложно. Оператор NOT возвращает false, если проверяемое условие истинно.

Условие

НЕ Результат оператора

Истинный

Ложь

Ложь

Истинный

Зачем использовать NOT null?

Будут случаи, когда нам придется выполнять вычисления с набором результатов запроса и возвращать значения. Выполнение любых арифметических операций со столбцами, имеющими значение NULL, возвращает нулевые результаты. Чтобы избежать таких ситуаций, мы можем использовать предложение NOT NULL, чтобы ограничить результаты, с которыми работают наши данные.

НЕ NULL значения

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

В приведенном ниже примере создается новая таблица, содержащая данные сотрудника. Номер сотрудника всегда должен быть указан

CREATE TABLE `employees`(employee_number int NOT NULL,full_names varchar(255) ,gender varchar(6));

Давайте теперь попробуем вставить новую запись без указания имени сотрудника и посмотрим, что произойдет.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Выполнение вышеуказанного скрипта в рабочей среде MySQL дает следующую ошибку:

NULL Ключевые слова

NULL также можно использовать в качестве ключевого слова при выполнении логических операций со значениями, включающими NULL. Для таких целей ключевое слово «IS / NOT» используется вместе со словом NULL. Базовый синтаксис, когда в качестве ключевого слова используется null, выглядит следующим образом

`comlumn_name' IS NULL`comlumn_name' NOT NULL

ЗДЕСЬ

  • «IS NULL» - это ключевое слово, которое выполняет логическое сравнение. Он возвращает истину, если предоставленное значение равно NULL, и false, если предоставленное значение не равно NULL.
  • «NOT NULL» - это ключевое слово, которое выполняет логическое сравнение. Он возвращает истину, если предоставленное значение не равно NULL, и false, если предоставленное значение равно null.

Давайте теперь рассмотрим практический пример, в котором ключевое слово NOT NULL используется для исключения всех значений столбцов, имеющих нулевые значения.

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

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

Выполнение вышеуказанного запроса дает только записи, в которых контактный номер не равен нулю.

Предположим, нам нужны записи участников, где контактный номер равен нулю. Мы можем использовать следующий запрос

SELECT * FROM `members` WHERE contact_number IS NULL;

Выполнение вышеуказанного запроса дает сведения о члене, контактный номер которого равен NULL.

 
membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Сравнение нулевого значения s

Логика с тремя значениями - выполнение логических операций с условиями, которые включают NULL, может возвращать «Unknown», «True» или «False».

Например, использование ключевого слова «IS NULL» при выполнении операций сравнения с использованием NULL может вернуть либо истину, либо ложь . Использование других операторов сравнения возвращает «Неизвестно» (NULL).

Предположим, вы сравниваете число пять с числом 5.

SELECT 5 =5;

Результат запроса - 1, что означает ИСТИНА.

 
5 =5
1

Проделаем ту же операцию с NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Давайте посмотрим на другой пример

SELECT 5 > 5;
 
5> 5
0

Результат запроса - 0, что означает ЛОЖЬ.

Давайте посмотрим на тот же пример с использованием NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Давайте использовать ключевое слово IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Результат запроса - 0, что ЛОЖЬ.

SELECT NULL IS NULL;
 
NULL IS NULL
1

Результат запроса - 1, что соответствует ИСТИНА.

Резюме

  • NULL - это заполнитель значения для необязательных полей таблицы.
  • MySQL обрабатывает значение NULL иначе, чем другие типы данных. Значения NULL при использовании в условии оцениваются как ложное логическое значение.
  • Логическая операция НЕ используется для проверки логических значений и оценивается как истина, если логическое значение ложно, и ложь, если логическое значение истинно.
  • Предложение NOT NULL используется для исключения значений NULL из набора результатов.
  • Выполнение арифметических операций над значениями NULL всегда возвращает результаты NULL.
  • Операторы сравнения, такие как [, = и т. Д.], Нельзя использовать для сравнения значений NULL.