Значение NULL это термин, используемый для представления недостающего значения. Значение NULL в таблице является значением в поле, которое представляется пустым.
Поле со значением NULL представляет собой поле без значения. Это очень важно понимать, что значение NULL отличается от нулевого значения или поля, которое содержит пробелы.
Базовый синтаксис NULL при создании таблицы.
SQL> CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
Здесь NOT NULL означает, что столбец всегда должен принимать явное значение данного типа данных. Есть две колонки, где мы не использовали NOT NULL, это означает, что эти столбцы могут быть NULL.
Поле со значением NULL является то, которое можно оставить пустым во время создания записи.
Значение NULL может вызвать проблемы при выборе данных. Однако, при сравнении неизвестного значения с любым другим значением, результат всегда неизвестен и не включен в результаты. Вы должны использовать операторы IS NULL или IS NOT NULL, чтобы проверить на значение NULL.
Рассмотрим таблицу клиентов, имеющую следующий записи, как показано ниже:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 34000.00 | | 5 | Ruslan | 34 | Omsk | 45000.00 | | 6 | Dima | 32 | SP | | | 7 | Roma | 34 | SP | | +----+----------+-----+-----------+----------+
Теперь, используем оператор IS NOT NULL.
SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY FROM CUSTOMERS WHERE SALARY IS NOT NULL;
Это выдаст следующий результат:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Maxim | 35 | Moscow | 21000.00 | | 2 | AndreyEx | 38 | Krasnodar | 55500.00 | | 3 | Oleg | 33 | Rostov | 34000.00 | | 4 | Masha | 35 | Moscow | 34000.00 | | 5 | Ruslan | 34 | Omsk | 45000.00 | +----+----------+-----+-----------+----------+
Теперь, используем оператор IS NULL.
SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY FROM CUSTOMERS WHERE SALARY IS NULL;
Это выдаст следующий результат:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 6 | Dima | 32 | SP | | | 7 | Roma | 34 | SP | | +----+----------+-----+-----------+----------+