Skip to main content

Filtering & Sorting

WHERE Clause

-- Comparison operators
SELECT * FROM employees WHERE age > 30;
SELECT * FROM employees WHERE salary >= 70000;
SELECT * FROM employees WHERE name = 'Alice';
SELECT * FROM employees WHERE name != 'Bob';

Logical Operators

-- AND
SELECT * FROM employees WHERE age > 25 AND salary > 60000;

-- OR
SELECT * FROM employees WHERE department_id = 1 OR department_id = 2;

-- NOT
SELECT * FROM employees WHERE NOT age > 30;

IN, BETWEEN, LIKE

-- IN — match any value in a list
SELECT * FROM employees WHERE department_id IN (1, 2, 3);

-- BETWEEN — range (inclusive)
SELECT * FROM employees WHERE salary BETWEEN 50000 AND 80000;

-- LIKE — pattern matching
SELECT * FROM employees WHERE name LIKE 'A%'; -- starts with A
SELECT * FROM employees WHERE name LIKE '%son'; -- ends with son
SELECT * FROM employees WHERE email LIKE '%@gmail%'; -- contains @gmail
SELECT * FROM employees WHERE name LIKE '_o%'; -- second char is 'o'
WildcardMeaning
%Zero or more characters
_Exactly one character

IS NULL

SELECT * FROM employees WHERE email IS NULL;
SELECT * FROM employees WHERE email IS NOT NULL;

ORDER BY

-- Ascending (default)
SELECT * FROM employees ORDER BY salary;

-- Descending
SELECT * FROM employees ORDER BY salary DESC;

-- Multiple columns
SELECT * FROM employees ORDER BY department_id ASC, salary DESC;

LIMIT

-- Get first 10 rows
SELECT * FROM employees LIMIT 10;

-- Skip 5, get next 10 (pagination)
SELECT * FROM employees LIMIT 10 OFFSET 5;