Bird
Raised Fist0
MySQLquery~5 mins

IS NULL and IS NOT NULL in MySQL - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: IS NULL and IS NOT NULL
O(n)
Understanding Time Complexity

Checking for NULL values in a database is common when filtering data.

We want to understand how the time to run these checks grows as the data size increases.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

SELECT *
FROM employees
WHERE manager_id IS NULL;

SELECT *
FROM employees
WHERE manager_id IS NOT NULL;

This code finds all employees who do not have a manager (NULL) and those who do have a manager (NOT NULL).

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The database scans each row in the employees table to check the manager_id column.
  • How many times: Once per row, so as many times as there are rows in the table.
How Execution Grows With Input

As the number of employees grows, the database must check more rows for NULL or NOT NULL values.

Input Size (n)Approx. Operations
1010 checks
100100 checks
10001000 checks

Pattern observation: The number of checks grows directly with the number of rows.

Final Time Complexity

Time Complexity: O(n)

This means the time to check for NULL or NOT NULL grows linearly with the number of rows.

Common Mistake

[X] Wrong: "Checking for NULL is instant and does not depend on table size."

[OK] Correct: Each row must be checked individually, so more rows mean more work.

Interview Connect

Understanding how simple filters like IS NULL scale helps you explain query performance clearly and confidently.

Self-Check

"What if the column checked with IS NULL has an index? How would the time complexity change?"

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