В SQL Null является как значением, так и ключевым словом. Давайте сначала посмотрим на значение 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 1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 [email protected] 2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL [email protected] 3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 [email protected] 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 используется для проверки логических условий и возвращает true, если условие ложно. Оператор NOT возвращает false, если проверенное условие истинно
Состояние | НЕ Оператор Результат |
Правда | Ложь |
Ложь | Правда |
Почему НЕ используется?
Будут случаи, когда нам придется выполнять вычисления на наборе результатов запроса и возвращать значения. Выполнение любых арифметических операций со столбцами, имеющими значение NULL, возвращает нулевые результаты. Чтобы избежать подобных ситуаций, мы можем использовать предложение NOT NULL, чтобы ограничить результаты, с которыми работают наши данные.
Значения NOT 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 Workbench дает следующую ошибку -
NULL Ключевые слова
NULL также может использоваться в качестве ключевого слова при выполнении логических операций со значениями, которые включают NULL. Ключевое слово "IS / NOT" используется вместе со словом NULL для таких целей. Основной синтаксис, когда null используется в качестве ключевого слова, выглядит следующим образом
`comlumn_name' IS NULL `comlumn_name' NOT NULL
ВОТ
- «IS NULL» - это ключевое слово, которое выполняет логическое сравнение. Он возвращает true, если предоставленное значение равно NULL, и false, если предоставленное значение не равно NULL.
- «NOT NULL» - это ключевое слово, которое выполняет логическое сравнение. Он возвращает true, если предоставленное значение не равно NULL, и false, если предоставленное значение равно нулю.
Теперь давайте рассмотрим практический пример, в котором используется ключевое слово NOT NULL, чтобы исключить все значения столбцов, которые имеют нулевые значения.
Продолжая приведенный выше пример, предположим, что нам нужны данные о членах, чей контактный номер не является нулевым. Мы можем выполнить запрос как
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
Выполнение вышеуказанного запроса дает только записи, где контактный номер не является нулевым.
Предположим, мы хотим записи участника, где контактный номер является нулевым. Мы можем использовать следующий запрос
SELECT * FROM `members` WHERE contact_number IS NULL;
Выполнение вышеупомянутого запроса дает детали участника, чей контактный номер НЕДЕЙСТВИТЕЛЕН
membership_ number full_names gender date_of_birth physical_address postal_address contact_ number 1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 [email protected] 3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 [email protected] 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, может возвращать «Неизвестно», «Истина» или «Ложь».
Например, использование ключевого слова «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 НУЛЬ |
---|
0 |
Результат запроса равен 0, что ЛОЖЬ
SELECT NULL IS NULL;
NULL IS NULL |
---|
1 |
Результат запроса - 1, ИСТИНА
Резюме
- NULL is a value place holder for optional table fields.
- MySQL treats the NULL value differently from other data types. The NULL values when used in a condition evaluates to the false Boolean value.
- The NOT logical operate is used to test for Boolean values and evaluates to true if the Boolean value is false and false if the Boolean value is true.
- The NOT NULL clause is used to eliminate NULL values from a result set
- Performing arithmetic operations on NULL values always returns NULL results.
- The comparison operators such as [, =, etc.] cannot be used to compare NULL values.