Open In App

MySQL Handling NULL Values

Last Updated : 31 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

In MySQL, NULL values represent the absence of data or a missing value. Understanding how to handle NULL values is crucial for effective database management and querying. This article will cover various aspects of working with NULL how to handle them in queries, update statements, and table definitions.

Defining NULL Values

When creating tables in MySQL we can specify whether a column allows the NULL values or not. By default, columns can contain NULL values unless specified otherwise.

In MySQL, NULL represents a missing, unknown, or undefined value. It is not equivalent to the empty string ('') or zero (0). The NULL is used to indicate the absence of any data in a field. When a field is defined as NULL which is different from having the zero or an empty string as a value.

Key Characteristics of NULL Values

  • Indeterminate Value: The NULL signifies that the value is unknown or not applicable.
  • Non-Comparable: The NULL cannot be compared using traditional operators like = or !=. Instead, special operators like IS NULL or IS NOT NULL are used.
  • Impact on Operations: The Operations involving the NULL generally result in the NULL. For example, adding the number to the NULL results in the NULL.
  • Ignored in Aggregates: The Aggregate functions typically ignore the NULL values.

Creating a Table with NULL Values

CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NULL,
salary DECIMAL(10, 2) NULL
);

Creating a Table with the NOT NULL Constraints:

CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
salary DECIMAL(10, 2) NOT NULL
);

Inserting NULL Values

We can insert NULL values into the columns that allow them:

INSERT INTO employees (name, salary) VALUES ('Alice', NULL);
INSERT INTO employees (name, salary) VALUES (NULL, 50000.00);

Querying NULL Values

To handle NULL values in queries we must use specific SQL functions and operators. The Standard comparison operators like = or != do not work with the NULL.

Checking for NULL Values

To check if a column is NULL use the IS NULL or IS NOT NULL operators.

SELECT * FROM employees WHERE salary IS NULL;
SELECT * FROM employees WHERE name IS NOT NULL;

Output:

IMAGE_1
Output

Using COALESCE to Handle NULL Values

The COALESCE function returns the first non-NULL value in the list of the arguments.

SELECT name, COALESCE(salary, 0) AS salary FROM employees;

Output:

Output
Output

Updating NULL Values

When updating records we can set columns to NULL explicitly.

UPDATE employees SET salary = NULL WHERE name = 'Alice';

Handling NULL Values in Aggregations

The Functions like COUNT(), SUM(), AVG() etc. handle NULL values in specific ways:

  • COUNT(column_name) counts the number of the non-NULL values in the column.
  • SUM(column_name) ignores NULL values in the summation.
  • AVG(column_name) calculates the average of the non-NULL values.

Example:

SELECT COUNT(salary) AS count_salary, SUM(salary) AS total_salary, AVG(salary) AS average_salary FROM employees;
Output
Output

Using Default Values

We can specify default values for the columns that are set when NULL values are inserted.

CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
price DECIMAL(10, 2) DEFAULT 0.00
);
INSERT INTO products (name) VALUES ('Laptop');

In this example, if the price is not provided it will default to the 0.00.

NULL Values and Indexes

The NULL values can affect the indexing and query performance. Be mindful of how NULL values impact index creation and optimization.

Creating an Index with NULL Values

CREATE INDEX idx_salary ON employees(salary);

The Indexes will include NULL values which can affect query performance.

Examples of MySQL Handling NULL Values

Example 1: Handling NULL in SELECT Queries

Scenario: The Retrieve employees with known and unknown salaries.

SELECT name, COALESCE(salary, 'Not Provided') AS salary_status FROM employees;

Output:

IMAGE_1
Output

Example 2: Using NULL in Aggregations

Scenario: The Calculate total and average salary excluding NULL values.

SELECT SUM(salary) AS total_salary, AVG(salary) AS average_salary FROM employees;

Output:

IMAGE_1
Output

Conclusion

The Handling NULL values in MySQL is essential for the maintaining data integrity and ensuring accurate query results. By understanding how to define, insert, query and manage NULL values we can effectively manage the database and make informed decisions based on the data.


Next Article
Article Tags :

Similar Reads