How WHERE works in SQL? Best WHERE examples

How WHERE works in SQL? Best WHERE examples

When working with SQL, one of the most fundamental aspects of querying data is filtering. That’s where the WHERE clause comes in. Without WHERE, we’d always retrieve entire tables, which is rarely what we want. So, let’s dive deep into how the WHERE clause works and how we can use it efficiently.

Understanding the WHERE Clause

The WHERE clause helps filter records based on specified conditions. It is commonly used with SELECT, UPDATE, and DELETE statements to manipulate specific rows rather than the entire dataset.

Syntax of WHERE in SQL

The basic syntax for using WHERE is as follows:

SELECT column1, column2
FROM table_name
WHERE condition;

This statement retrieves data from the specified table but only includes rows that satisfy the condition provided.

Basic Usage of WHERE

Let’s start with a simple example. Suppose we have a table called employees and we want to find employees from the ‘IT’ department.

SELECT * FROM employees
WHERE department = 'IT';

This query retrieves only the employees who work in the IT department.

Using Comparison Operators

With the WHERE clause, we can use various comparison operators to refine our queries:

Operator Description Example
= Equals WHERE salary = 5000
> Greater than WHERE salary > 5000
< Less than WHERE salary < 5000
>= Greater than or equal to WHERE salary >= 5000
<= Less than or equal to WHERE salary <= 5000
<> or != Not equal to WHERE department <> ‘HR’

Combining Conditions with AND and OR

If we need to apply multiple conditions, we can use the AND and OR operators.

Using AND

To filter results based on multiple conditions, both of which must be met, we use the AND keyword:

SELECT * FROM employees
WHERE department = 'IT' AND salary > 5000;

This query returns employees who are in the IT department and have a salary greater than 5000.

Using OR

If we want to include results that match at least one of multiple conditions, we use OR:

SELECT * FROM employees
WHERE department = 'IT' OR department = 'HR';

This retrieves all employees who work in either IT or HR.

Using BETWEEN for Ranges

Sometimes, we need to filter data within a range. The BETWEEN operator makes this simple:

SELECT * FROM employees
WHERE salary BETWEEN 4000 AND 6000;

This retrieves all employees whose salary is between 4000 and 6000, inclusive.

Using IN for Multiple Values

Instead of using multiple OR conditions, we can use IN to check if a value appears in a list:

SELECT * FROM employees
WHERE department IN ('IT', 'HR', 'Finance');

This is a cleaner and more readable way to check multiple possible values.

Using LIKE for Pattern Matching

If we need to search for patterns in text data, the LIKE operator is helpful. It supports wildcards such as % (matching any sequence of characters) and _ (matching a single character).

SELECT * FROM employees
WHERE name LIKE 'J%';

This retrieves employees whose names start with ‘J’.

Using IS NULL to Check for Null Values

In SQL, NULL denotes missing or undefined data. To filter rows where a column is NULL, we use:

SELECT * FROM employees
WHERE manager_id IS NULL;

This retrieves employees without an assigned manager.

Optimizing WHERE for Performance

Using WHERE efficiently ensures that queries run quickly. Here are some tips:

  • Use Indexes: Filtering columns that are indexed improves performance.
  • Avoid Functions in WHERE: Using functions (e.g., WHERE LOWER(name) = 'john') prevents index usage.
  • Avoid SELECT *: Only select necessary columns to reduce data retrieval time.

Final Thoughts

The WHERE clause is one of the most powerful tools in SQL, allowing precise data retrieval. Whether combining conditions, searching within ranges, or optimizing queries for performance, mastering WHERE is essential for effective database querying.

 

Other interesting article:

How SELECT DISTINCT works in SQL? Best SELECT DISTINCT examples