Bird
Raised Fist0
MySQLquery~5 mins

AND, OR, NOT logical operators in MySQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the AND operator do in a SQL WHERE clause?
The AND operator combines two conditions and returns true only if both conditions are true.
Click to reveal answer
beginner
How does the OR operator work in SQL?
The OR operator returns true if at least one of the combined conditions is true.
Click to reveal answer
beginner
Explain the NOT operator in SQL.
The NOT operator reverses the result of a condition. If the condition is true, NOT makes it false, and vice versa.
Click to reveal answer
intermediate
Write a SQL query using AND and OR to find employees who are in department 10 and have a salary over 5000 or are in department 20.
SELECT * FROM employees WHERE (department_id = 10 AND salary > 5000) OR department_id = 20;
Click to reveal answer
intermediate
Why is it important to use parentheses when combining AND and OR in SQL?
Parentheses control the order of evaluation, ensuring the query logic works as intended by grouping conditions properly.
Click to reveal answer
Which SQL operator returns true only if both conditions are true?
AAND
BOR
CNOT
DBETWEEN
What does the OR operator do in SQL?
AChecks for equality
BReturns true if both conditions are false
CNegates a condition
DReturns true if at least one condition is true
How does the NOT operator affect a condition?
AIt makes the condition always true
BIt combines two conditions
CIt reverses the condition's result
DIt checks if a value is null
Which query correctly finds rows where age is over 30 AND city is 'New York'?
ASELECT * FROM table WHERE age > 30 AND city = 'New York';
BSELECT * FROM table WHERE age > 30 OR city = 'New York';
CSELECT * FROM table WHERE NOT age > 30 AND city = 'New York';
DSELECT * FROM table WHERE age > 30 NOT city = 'New York';
Why use parentheses in a WHERE clause with AND and OR?
ATo make the query run faster
BTo group conditions and control evaluation order
CTo comment out parts of the query
DTo format the query for readability only
Describe how AND, OR, and NOT logical operators work in SQL WHERE clauses.
Think about how these operators combine or change conditions.
You got /3 concepts.
    Explain why parentheses are important when using AND and OR together in SQL queries.
    Consider how math uses parentheses to clarify operations.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which logical operator in MySQL requires all conditions to be true for the whole expression to be true?
      easy
      A. XOR
      B. OR
      C. NOT
      D. AND

      Solution

      1. Step 1: Understand AND operator behavior

        The AND operator returns true only if every condition joined by it is true.
      2. Step 2: Compare with other operators

        OR requires at least one true condition, NOT reverses truth, XOR is exclusive or.
      3. Final Answer:

        AND -> Option D
      4. Quick Check:

        AND means all true = A [OK]
      Hint: AND means all conditions must be true [OK]
      Common Mistakes:
      • Confusing AND with OR
      • Thinking NOT requires all true
      • Mixing XOR with AND
      2. Which of the following is the correct syntax to select rows where age is greater than 18 and status is 'active'?
      easy
      A. SELECT * FROM users WHERE age > 18 AND status = 'active';
      B. SELECT * FROM users WHERE NOT age > 18 AND status = 'active';
      C. SELECT * FROM users WHERE age > 18 OR status = 'active';
      D. SELECT * FROM users WHERE age > 18 NOT status = 'active';

      Solution

      1. Step 1: Identify correct logical operator for both conditions

        We want rows where both age > 18 and status = 'active' are true, so use AND.
      2. Step 2: Check syntax correctness

        SELECT * FROM users WHERE age > 18 AND status = 'active'; uses AND correctly and has valid SQL syntax.
      3. Final Answer:

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

        AND joins conditions correctly = C [OK]
      Hint: Use AND to combine multiple true conditions [OK]
      Common Mistakes:
      • Using OR instead of AND
      • Incorrect NOT placement
      • Syntax errors like missing AND
      3. Given the table employees with columns department and salary, what rows will this query return?
      SELECT * FROM employees WHERE department = 'Sales' OR salary > 50000 AND NOT department = 'HR';
      medium
      A. Rows where department is 'Sales' or salary > 50000 or department is not 'HR'
      B. Rows where department is 'Sales' and salary > 50000 and department is not 'HR'
      C. Rows where department is 'Sales' or salary > 50000 and department is not 'HR'
      D. Rows where salary > 50000 only

      Solution

      1. Step 1: Understand operator precedence

        AND has higher precedence than OR, so condition is: department = 'Sales' OR (salary > 50000 AND NOT department = 'HR').
      2. Step 2: Interpret the conditions

        Rows match if department is 'Sales', or if salary > 50000 and department is not 'HR'.
      3. Final Answer:

        Rows where department is 'Sales' or salary > 50000 and department is not 'HR' -> Option C
      4. Quick Check:

        AND before OR, NOT reverses condition = B [OK]
      Hint: AND binds tighter than OR; use parentheses to clarify [OK]
      Common Mistakes:
      • Ignoring operator precedence
      • Misreading NOT placement
      • Assuming OR applies to all conditions
      4. Identify the error in this query:
      SELECT * FROM orders WHERE NOT order_date > '2023-01-01' AND status = 'shipped' OR;
      medium
      A. Incorrect use of NOT operator
      B. Missing condition after OR
      C. AND should be OR
      D. order_date comparison syntax error

      Solution

      1. Step 1: Check query syntax

        The query ends with OR but no condition follows it, causing syntax error.
      2. Step 2: Verify other parts

        NOT and AND usage is correct; order_date comparison is valid.
      3. Final Answer:

        Missing condition after OR -> Option B
      4. Quick Check:

        OR must have two conditions = A [OK]
      Hint: OR must always connect two conditions [OK]
      Common Mistakes:
      • Leaving OR without a following condition
      • Misplacing NOT operator
      • Confusing AND and OR usage
      5. You want to select all customers who are NOT in the 'VIP' group AND have made a purchase OR have a balance greater than 1000. Which query correctly expresses this logic?
      hard
      A. SELECT * FROM customers WHERE NOT group = 'VIP' AND (purchases > 0 OR balance > 1000);
      B. SELECT * FROM customers WHERE NOT (group = 'VIP' AND purchases > 0) OR balance > 1000;
      C. SELECT * FROM customers WHERE NOT group = 'VIP' AND purchases > 0 OR balance > 1000;
      D. SELECT * FROM customers WHERE NOT group = 'VIP' OR purchases > 0 AND balance > 1000;

      Solution

      1. Step 1: Translate the logic into conditions

        We want customers NOT in 'VIP' group AND (have purchases OR balance > 1000).
      2. Step 2: Check operator precedence and parentheses

        AND has higher precedence than OR, so parentheses around (purchases > 0 OR balance > 1000) ensure correct grouping.
      3. Step 3: Evaluate options

        SELECT * FROM customers WHERE NOT group = 'VIP' AND (purchases > 0 OR balance > 1000); correctly uses NOT on group, AND with grouped OR conditions. Others misplace parentheses or NOT.
      4. Final Answer:

        SELECT * FROM customers WHERE NOT group = 'VIP' AND (purchases > 0 OR balance > 1000); -> Option A
      5. Quick Check:

        NOT group, AND grouped OR = D [OK]
      Hint: Use parentheses to group OR conditions with AND [OK]
      Common Mistakes:
      • Missing parentheses causing wrong logic
      • Applying NOT to wrong part
      • Confusing AND and OR precedence
      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