Bird
Raised Fist0
MySQLquery~5 mins

IS NULL and IS NOT NULL in MySQL

Choose your learning style10 modes available
Introduction
We use IS NULL and IS NOT NULL to find out if a value is missing or present in a database column.
When you want to find records where a certain field has no value.
When you want to exclude records that have missing information.
When checking if optional data was provided or left empty.
When filtering results to only show entries with or without specific data.
Syntax
MySQL
SELECT column1, column2 FROM table_name WHERE column_name IS NULL;

SELECT column1, column2 FROM table_name WHERE column_name IS NOT NULL;
Use IS NULL to find rows where the column has no value (NULL).
Use IS NOT NULL to find rows where the column has any value (not NULL).
Examples
Finds all employees who do not have a manager assigned.
MySQL
SELECT * FROM employees WHERE manager_id IS NULL;
Finds all customers who have provided an email address.
MySQL
SELECT name, email FROM customers WHERE email IS NOT NULL;
Finds orders that have not been shipped yet.
MySQL
SELECT order_id FROM orders WHERE shipped_date IS NULL;
Sample Program
This creates a table of students, some with a graduation year and some without. The query finds students missing their graduation year.
MySQL
CREATE TABLE students (
  id INT,
  name VARCHAR(50),
  graduation_year INT
);

INSERT INTO students VALUES
(1, 'Alice', 2023),
(2, 'Bob', NULL),
(3, 'Charlie', 2024);

SELECT name FROM students WHERE graduation_year IS NULL;
OutputSuccess
Important Notes
NULL means no value or unknown, not zero or empty string.
You cannot use = NULL or <> NULL; always use IS NULL or IS NOT NULL.
IS NULL and IS NOT NULL help handle missing data clearly.
Summary
Use IS NULL to find missing values in a column.
Use IS NOT NULL to find rows where the column has data.
These checks help manage and filter incomplete or optional data.

Practice

(1/5)
1. What does the SQL condition column_name IS NULL check for in a table?
easy
A. It checks if the column value is missing or empty.
B. It checks if the column value is zero.
C. It checks if the column value is a blank string.
D. It checks if the column value is greater than zero.

Solution

  1. Step 1: Understand the meaning of NULL in SQL

    NULL means the value is missing or unknown, not zero or empty string.
  2. Step 2: Analyze the condition IS NULL

    This condition returns true only when the column has no value (NULL).
  3. Final Answer:

    It checks if the column value is missing or unknown. -> Option A
  4. Quick Check:

    IS NULL means missing value check [OK]
Hint: IS NULL means value is missing, not zero or empty [OK]
Common Mistakes:
  • Confusing NULL with zero or empty string
  • Using = NULL instead of IS NULL
  • Thinking NULL means zero
2. Which of the following is the correct syntax to select rows where the column email is NOT NULL?
easy
A. SELECT * FROM users WHERE email IS NOT NULL;
B. SELECT * FROM users WHERE email = NOT NULL;
C. SELECT * FROM users WHERE email != NULL;
D. SELECT * FROM users WHERE NOT email = NULL;

Solution

  1. Step 1: Recall correct syntax for NOT NULL check

    In SQL, to check for NOT NULL, use IS NOT NULL.
  2. Step 2: Evaluate each option

    SELECT * FROM users WHERE email IS NOT NULL; uses correct syntax. Others use invalid or incorrect operators with NULL.
  3. Final Answer:

    SELECT * FROM users WHERE email IS NOT NULL; -> Option A
  4. Quick Check:

    Use IS NOT NULL to check non-missing values [OK]
Hint: Use IS NOT NULL, not = or != with NULL [OK]
Common Mistakes:
  • Using = NULL or != NULL instead of IS NULL/IS NOT NULL
  • Forgetting IS keyword
  • Using NOT email = NULL which is invalid
3. Given the table orders with columns order_id and shipped_date, what will this query return?
SELECT order_id FROM orders WHERE shipped_date IS NULL;
medium
A. All orders that have a shipped date recorded.
B. All orders that have not been shipped yet.
C. All orders with shipped_date equal to zero.
D. Syntax error due to IS NULL usage.

Solution

  1. Step 1: Understand what IS NULL filters

    The condition shipped_date IS NULL selects rows where shipped_date is missing.
  2. Step 2: Interpret the meaning in context

    Missing shipped_date means the order has not been shipped yet.
  3. Final Answer:

    All orders that have not been shipped yet. -> Option B
  4. Quick Check:

    IS NULL finds missing shipped dates = unshipped orders [OK]
Hint: IS NULL finds missing data, here unshipped orders [OK]
Common Mistakes:
  • Thinking IS NULL returns shipped orders
  • Confusing NULL with zero or empty string
  • Assuming syntax error with IS NULL
4. You wrote this query but it returns no rows:
SELECT * FROM employees WHERE manager_id = NULL;

What is the error and how to fix it?
medium
A. Add quotes around NULL like = 'NULL'.
B. Change manager_id to IS NOT NULL.
C. Use IS NULL instead of = NULL to check for NULL values.
D. Use != NULL to find rows with NULL.

Solution

  1. Step 1: Identify incorrect NULL comparison

    Using = NULL always returns false because NULL is not equal to anything.
  2. Step 2: Correct syntax to check NULL

    Use IS NULL to check for NULL values properly.
  3. Final Answer:

    Use IS NULL instead of = NULL to check for NULL values. -> Option C
  4. Quick Check:

    Use IS NULL, not = NULL, for NULL checks [OK]
Hint: Always use IS NULL, never = NULL for missing values [OK]
Common Mistakes:
  • Using = NULL or != NULL instead of IS NULL/IS NOT NULL
  • Adding quotes around NULL
  • Confusing IS NULL with IS NOT NULL
5. You want to find customers who have provided a phone number but no email. Which query correctly uses IS NULL and IS NOT NULL to do this?
SELECT * FROM customers WHERE phone IS NOT NULL AND email IS NULL;
hard
A. This query has syntax errors with IS NULL usage.
B. This query returns customers missing both phone and email.
C. This query returns customers with both phone and email.
D. This query returns customers with phone and missing email.

Solution

  1. Step 1: Analyze the conditions

    phone IS NOT NULL selects customers who provided a phone number.
  2. Step 2: Check the email condition

    email IS NULL selects customers who did not provide an email.
  3. Step 3: Combine conditions with AND

    Both conditions together find customers with phone but no email.
  4. Final Answer:

    This query returns customers with phone and missing email. -> Option D
  5. Quick Check:

    IS NOT NULL and IS NULL combined filter correctly [OK]
Hint: Combine IS NOT NULL and IS NULL with AND for mixed filters [OK]
Common Mistakes:
  • Mixing AND with OR incorrectly
  • Using = NULL instead of IS NULL
  • Confusing which column to check for NULL
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard