Comparison operators in MySQL - Time & Space Complexity
When using comparison operators in SQL, it's important to know how the time to run queries changes as data grows.
We want to see how the number of rows affects the work done when comparing values.
Analyze the time complexity of the following code snippet.
SELECT *
FROM employees
WHERE salary > 50000;
This query selects all employees whose salary is greater than 50,000 using a comparison operator.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Checking the salary value of each employee row against 50,000.
- How many times: Once for every row in the employees table.
As the number of employees grows, the database checks more rows one by one.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 comparisons |
| 100 | 100 comparisons |
| 1000 | 1000 comparisons |
Pattern observation: The work grows directly with the number of rows; doubling rows doubles comparisons.
Time Complexity: O(n)
This means the time to run the query grows linearly with the number of rows in the table.
[X] Wrong: "Comparison operators instantly find matching rows regardless of table size."
[OK] Correct: Without indexes, the database must check each row one by one, so more rows mean more work.
Understanding how comparisons scale helps you explain query performance clearly and shows you know how databases handle data.
"What if we added an index on the salary column? How would the time complexity change?"
Practice
Solution
Step 1: Understand the meaning of comparison operators
The operator "<>" is used in SQL to mean "not equal to".Step 2: Compare with other operators
"=" means equal, ">=" means greater than or equal, and "<" means less than.Final Answer:
<> -> Option BQuick Check:
Not equal operator = <> [OK]
- Confusing = with not equal
- Using != which is valid but less common in MySQL
- Mixing up > and < operators
age is greater than 18 in a WHERE clause?Solution
Step 1: Identify the correct greater than operator
The correct operator for "greater than" is ">". The operator ">=" means "greater than or equal to".Step 2: Check syntax correctness
"=>" and "=<" are invalid operators in SQL syntax. "<>" means not equal, which is not what we want.Final Answer:
WHERE age > 18 -> Option AQuick Check:
Greater than operator is > [OK]
- Using => or =< which are invalid
- Confusing <> with greater than
- Using = instead of >
Employees with a column salary, what will the query SELECT * FROM Employees WHERE salary <= 50000; return?Solution
Step 1: Understand the meaning of <= operator
The operator <= means "less than or equal to".Step 2: Interpret the query condition
The query filters employees whose salary is either less than 50000 or exactly 50000.Final Answer:
All employees with salary less than or equal to 50000 -> Option AQuick Check:
<= means less than or equal [OK]
- Thinking <= means only less than
- Confusing <= with <
- Ignoring the equal part of <= operator
SELECT * FROM Products WHERE price ! 100;Solution
Step 1: Analyze the use of ! operator
In MySQL, "!" alone is not a valid comparison operator. For "not equal", use "!=" or "<>".Step 2: Check the query syntax
The query uses "price ! 100" which is invalid syntax and will cause an error.Final Answer:
Incorrect use of ! for not equal, should be != or <> -> Option DQuick Check:
Use != or <> for not equal [OK]
- Using ! alone as not equal
- Forgetting to use != or <>
- Assuming ! means not equal in SQL
Solution
Step 1: Understand the requirement for inclusive range
Inclusive means including 20 and 30, so use >= and <= operators.Step 2: Analyze each option
WHERE age > 20 AND age < 30 excludes 20 and 30 (strictly greater and less). WHERE age = 20 OR age = 30 only selects exactly 20 or 30, not the range. WHERE age <> 20 AND age <> 30 excludes 20 and 30, opposite of requirement.Final Answer:
WHERE age >= 20 AND age <= 30 -> Option CQuick Check:
Use >= and <= for inclusive ranges [OK]
- Using > and < excludes boundary values
- Using OR instead of AND for range
- Using <> which excludes values
Ready to prove it?
Pass the test and this pattern moves unknown
