NULL Handling in SQL
NULL Handling in SQL
In SQL, NULL
represents a missing or undefined value. It is important to handle NULL
values properly because they can affect query results and calculations. SQL provides specific operators to check for NULL
values: IS NULL
and IS NOT NULL
. These operators allow you to filter data based on whether a column contains NULL
values or not.
1. Understanding NULL in SQL
Definition of
NULL
:NULL
is a special marker used in SQL to indicate that a data value does not exist in the database. It is different from an empty string''
, zero0
, or a space' '
—it specifically means that the value is unknown or missing.Key Characteristics:
NULL
is not equal to anything, including itself. In SQL, the expressionNULL = NULL
evaluates toFALSE
. This is why you cannot use comparison operators like=
or!=
to check forNULL
values.NULL
is not comparable. Any arithmetic or logical operation involvingNULL
results inNULL
.
2. Checking for NULL Values with IS NULL
The IS NULL
operator is used to check whether a column contains NULL
values. It returns TRUE
if the value is NULL
and FALSE
otherwise.
Syntax:
Example:
In this example:
The query retrieves all employees whose email address is
NULL
.
Result:
first_name | last_name | |
---|---|---|
Amit | Sharma | NULL |
Neha | Singh | NULL |
In this output:
The result includes employees who have no email address stored in the database.
3. Checking for Non-NULL Values with IS NOT NULL
The IS NOT NULL
operator is used to check whether a column does not contain NULL
values. It returns TRUE
if the value is not NULL
and FALSE
otherwise.
Syntax:
Example:
In this example:
The query retrieves all employees whose email address is not
NULL
.
Result:
first_name | last_name | |
---|---|---|
Ravi | Verma | ravi.verma@domain.com |
Suresh | Mehta | suresh.mehta@domain.com |
In this output:
The result includes employees who have a valid email address stored in the database.
4. Combining NULL Handling with Other Conditions
You can combine IS NULL
and IS NOT NULL
with other conditions using logical operators like AND
and OR
.
Example:
In this example:
The query retrieves all employees who work in the
Sales
department and have an email address.
Result:
first_name | last_name | department | |
---|---|---|---|
Suresh | Mehta | Sales | suresh.mehta@domain.com |
In this output:
Only employees in the
Sales
department with a non-NULL
email address are included.
Example:
In this example:
The query retrieves all employees who either work in the
HR
department or have aNULL
email address.
Result:
first_name | last_name | department | |
---|---|---|---|
Amit | Sharma | HR | amit.sharma@domain.com |
Neha | Singh | Marketing | NULL |
In this output:
Employees in the
HR
department and those with aNULL
email address are included.
5. Practical Use Cases of NULL Handling
a. Identifying Missing Information
NULL
handling is useful when you need to identify missing or incomplete data. For example, you can find employees who haven't provided an email address or customers without phone numbers.
In this example:
The query retrieves all customers who have not provided a phone number.
b. Handling Optional Fields
When certain fields are optional, you may want to include or exclude records based on whether those fields are populated.
In this example:
The query retrieves all products that have a description.
6. Handling NULL in Aggregations
When performing aggregations (e.g., SUM
, COUNT
, AVG
), NULL
values are ignored by default. However, you can use IS NULL
and IS NOT NULL
to include or exclude NULL
values in your calculations.
Example: Counting Non-NULL Values
In this example:
The query counts the number of employees who have an email address.
Result:
total_non_null_emails |
---|
2 |
This result indicates that 2 employees have a non-NULL
email address.
7. Handling NULL with COALESCE
The COALESCE
function is used to return the first non-NULL
value from a list of expressions. This is useful when you want to provide a default value for NULL
columns.
Example:
In this example:
The
COALESCE
function checks if theemail
column isNULL
. If it is, it returns'No Email Provided'
instead.
Result:
first_name | last_name | email_address |
---|---|---|
Amit | Sharma | No Email Provided |
Neha | Singh | No Email Provided |
Ravi | Verma | ravi.verma@domain.com |
Suresh | Mehta | suresh.mehta@domain.com |
In this output:
Employees without an email address are displayed with "No Email Provided" instead of
NULL
.
Conclusion
Handling NULL
values is an essential part of working with SQL databases. The IS NULL
and IS NOT NULL
operators allow you to filter data based on the presence or absence of values, helping you manage incomplete or missing data effectively. Whether you’re identifying missing information, counting non-NULL
values, or providing default values with COALESCE
, understanding how to work with NULL
is crucial for maintaining data integrity in your queries.
This tutorial is brought to you by codes with pankaj.
Last updated