Introduction to Oracle NULL Data Type

In Oracle database, NULL is a special data type that represents a missing or unknown value. Unlike other data types, NULL cannot be compared, calculated, or concatenated with values of other types.


In Oracle, NULL exists as a keyword and can be used in columns or variables of any data type. The syntax is as follows:


Use Cases

NULL is commonly used in the following scenarios:

  • Representing missing data
  • Representing unknown data
  • Distinguishing between empty strings and NULL values

In a database, if a column has no value, its value can be set as NULL, indicating that the value of the column is missing or unknown. In some cases, it is important to distinguish between NULL values and empty strings. For example, when handling customer information, if a customer’s address is an empty string, it means the customer has no address, but if the address column is NULL, it means the customer’s address is unknown or missing.


Here are two examples of using NULL in Oracle to illustrate its usage:

Example 1

Create a table named students with columns id, name, and score. The id and name columns cannot be empty, but the score column can be null:

CREATE TABLE students (
  name VARCHAR2(50) NOT NULL,
  score NUMBER(10)

Insert some data:

INSERT INTO students (id, name, score)
VALUES (1, 'Alice', 80);

INSERT INTO students (id, name, score)
VALUES (2, 'Bob', NULL);

INSERT INTO students (id, name, score)
VALUES (3, NULL, 90);

Query the data:

SELECT * FROM students;

The result is as follows:

--- ------ ----
1   Alice  80
2   Bob    NULL
3   NULL   90

From the above result, we can see that Bob’s score is NULL, indicating that the score of this student is unknown or missing. The name column in the third row is also NULL, indicating that the name of this student is unknown or missing.

Example 2

In the second example, we can use NULL to represent missing data. Let’s assume we have an employee table that includes employees’ names and salary information. If an employee does not provide salary information, we can set it as NULL. Here’s an example:

CREATE TABLE employees (
  name VARCHAR2(50),
  salary NUMBER(10, 2)

INSERT INTO employees (name, salary) VALUES ('Alice', 10000);
INSERT INTO employees (name, salary) VALUES ('Bob', NULL);
INSERT INTO employees (name, salary) VALUES ('Charlie', 8000);

SELECT * FROM employees;

After executing the above SQL statements, we will get the following result:

-------- -------
Alice    10000
Bob      NULL
Charlie  8000

In this example, Bob’s salary information is missing, so we set it as NULL. This approach helps us store incomplete data in the database and avoids errors caused by missing data.


In this article, we have introduced the NULL data type in Oracle database, which represents missing or unknown data values.