Bird
Raised Fist0
SQLquery~5 mins

WHERE with AND operator in SQL

Choose your learning style10 modes available
Introduction
The WHERE clause with AND lets you find rows that match all conditions you want. It helps you get very specific results from your data.
When you want to find people who live in a city AND are older than 30.
When you want to get products that cost less than $20 AND are in stock.
When you want to see orders placed by a customer AND that are not yet shipped.
When you want to filter employees who work in a department AND have a certain job title.
Syntax
SQL
SELECT column1, column2
FROM table_name
WHERE condition1 AND condition2;
The AND operator means both conditions must be true for a row to be included.
You can use more than two conditions by adding more AND operators.
Examples
Find all employees who work in Sales and earn more than 50,000.
SQL
SELECT * FROM employees
WHERE department = 'Sales' AND salary > 50000;
Get names and ages of customers who live in New York and are at least 21 years old.
SQL
SELECT name, age FROM customers
WHERE city = 'New York' AND age >= 21;
List products that cost less than $20 and are currently in stock.
SQL
SELECT product_name FROM products
WHERE price < 20 AND stock > 0;
Sample Program
This creates a table of employees, adds some data, and then selects names and salaries of those who work in Sales and earn more than 50,000.
SQL
CREATE TABLE employees (
  id INT,
  name VARCHAR(50),
  department VARCHAR(50),
  salary INT
);

INSERT INTO employees VALUES
(1, 'Alice', 'Sales', 60000),
(2, 'Bob', 'Sales', 45000),
(3, 'Charlie', 'HR', 55000),
(4, 'Diana', 'Sales', 70000);

SELECT name, salary FROM employees
WHERE department = 'Sales' AND salary > 50000;
OutputSuccess
Important Notes
AND requires all conditions to be true; if any condition is false, the row is not included.
Use parentheses to group conditions if you mix AND with OR for clarity.
Check spelling and case sensitivity in string comparisons depending on your database.
Summary
The WHERE clause filters rows based on conditions.
AND combines conditions so all must be true.
Use it to get precise data matching multiple rules.

Practice

(1/5)
1. What does the WHERE clause with the AND operator do in an SQL query?
easy
A. Filters rows that meet any one of the conditions
B. Joins two tables together
C. Filters rows that meet all specified conditions
D. Sorts the result set in ascending order

Solution

  1. Step 1: Understand the WHERE clause

    The WHERE clause filters rows based on conditions given in the query.
  2. Step 2: Understand the AND operator

    The AND operator requires all conditions to be true for a row to be included.
  3. Final Answer:

    Filters rows that meet all specified conditions -> Option C
  4. Quick Check:

    WHERE + AND = all conditions true [OK]
Hint: AND means all conditions must be true together [OK]
Common Mistakes:
  • Thinking AND means any condition can be true
  • Confusing WHERE with JOIN
  • Assuming AND sorts data
2. Which of the following is the correct syntax to select rows where age is greater than 18 AND city is 'New York'?
easy
A. SELECT * FROM users WHERE age > 18 AND city = 'New York';
B. SELECT * FROM users WHERE age > 18, city = 'New York';
C. SELECT * FROM users WHERE age > 18 OR city = 'New York';
D. SELECT * FROM users WHERE age > 18 AND city == 'New York';

Solution

  1. Step 1: Check the operator between conditions

    The question asks for AND, so the operator must be AND, not OR or comma.
  2. Step 2: Check the comparison operators

    Use single equals (=) for comparison in SQL, not double equals (==).
  3. Final Answer:

    SELECT * FROM users WHERE age > 18 AND city = 'New York'; -> Option A
  4. Quick Check:

    AND + = correct syntax [OK]
Hint: Use AND and single = for conditions in WHERE [OK]
Common Mistakes:
  • Using OR instead of AND
  • Using comma instead of AND
  • Using == instead of = for comparison
3. Given the table employees with columns name, department, and salary, what will this query return?
SELECT name FROM employees WHERE department = 'Sales' AND salary > 50000;
medium
A. Names of employees in Sales with salary over 50000
B. Names of employees in Sales or salary over 50000
C. All employees with salary over 50000
D. Syntax error due to missing OR

Solution

  1. Step 1: Analyze the WHERE clause conditions

    The query filters rows where department equals 'Sales' AND salary is greater than 50000.
  2. Step 2: Understand the AND effect

    Only employees meeting both conditions will be selected, so names returned are from Sales with salary above 50000.
  3. Final Answer:

    Names of employees in Sales with salary over 50000 -> Option A
  4. Quick Check:

    AND filters both conditions true [OK]
Hint: AND means both conditions must be true to select rows [OK]
Common Mistakes:
  • Thinking OR is used instead of AND
  • Assuming it returns all employees with salary > 50000
  • Believing syntax error occurs without OR
4. Identify the error in this SQL query:
SELECT * FROM products WHERE price > 100 AND category 'Electronics';
medium
A. AND should be OR
B. Missing comparison operator (=) before 'Electronics'
C. price > 100 is invalid syntax
D. Missing FROM keyword

Solution

  1. Step 1: Check the WHERE clause syntax

    The condition after AND is missing a comparison operator before 'Electronics'. It should be category = 'Electronics'.
  2. Step 2: Verify other parts

    price > 100 is correct, AND is valid, and FROM is present.
  3. Final Answer:

    Missing comparison operator (=) before 'Electronics' -> Option B
  4. Quick Check:

    Comparison operator needed before value [OK]
Hint: Each condition needs a comparison operator like = [OK]
Common Mistakes:
  • Omitting = in conditions
  • Replacing AND with OR incorrectly
  • Ignoring syntax errors in WHERE clause
5. You have a table orders with columns order_id, customer_id, status, and total. Write a query to find all orders with status 'shipped' AND total greater than 100, but exclude orders where customer_id is NULL. Which query is correct?
hard
A. SELECT * FROM orders WHERE status = 'shipped' AND total > 100 AND customer_id != NULL;
B. SELECT * FROM orders WHERE status = 'shipped' OR total > 100 AND customer_id IS NOT NULL;
C. SELECT * FROM orders WHERE status = 'shipped' AND total > 100 OR customer_id IS NOT NULL;
D. SELECT * FROM orders WHERE status = 'shipped' AND total > 100 AND customer_id IS NOT NULL;

Solution

  1. Step 1: Combine conditions with AND

    We want orders where status is 'shipped' AND total is greater than 100 AND customer_id is not NULL.
  2. Step 2: Use correct syntax for NULL check

    In SQL, to check for NULL, use IS NOT NULL, not != NULL.
  3. Final Answer:

    SELECT * FROM orders WHERE status = 'shipped' AND total > 100 AND customer_id IS NOT NULL; -> Option D
  4. Quick Check:

    Use AND and IS NOT NULL for correct filtering [OK]
Hint: Use IS NOT NULL to exclude NULLs with AND [OK]
Common Mistakes:
  • Using OR instead of AND
  • Using != NULL instead of IS NOT NULL
  • Mixing AND and OR without parentheses
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