IN, BETWEEN, EXISTS: Concept
Module: Advanced Filtering
IN, BETWEEN, and EXISTS provide clean, readable syntax for common filtering patterns: set membership, range checks, and existence validation.
**IN Operator:**
Tests if value matches any in a list.
WHERE status IN ('active', 'pending', 'approved')
Equivalent to: status = 'active' OR status = 'pending' OR status = 'approved'
**BETWEEN Operator:**
Tests if value falls within range (inclusive).
WHERE price BETWEEN 10 AND 50
Equivalent to: price >= 10 AND price <= 50
**EXISTS Operator:**
Tests if subquery returns any rows.
WHERE EXISTS (SELECT 1 FROM orders WHERE orders.customer_id = customers.id)
Returns true if subquery has results, false otherwise.
**Performance:**
- IN with small lists: Fast
- IN with subquery: Can be slow, consider EXISTS
- BETWEEN: Efficient with indexes
- EXISTS: Often faster than IN with subqueries
Fundamental for all SQL developers. Used daily in filtering, validation, and data integrity checks.
IN filters by lists (status IN ('active', 'pending')), BETWEEN filters ranges (price BETWEEN 10 AND 50), EXISTS checks related data existence (customers with orders).