SQL Cheat Sheet - Every Query You Need (2026)
DevTools StoreSQL Cheat Sheet (2026)
Every SQL query pattern in one page. Bookmark this.
CRUD Operations
SELECT * FROM users;
SELECT name, email FROM users WHERE active = true;
SELECT * FROM users ORDER BY created_at DESC LIMIT 10;
INSERT INTO users (name, email) VALUES ('John', 'john@example.com');
UPDATE users SET name = 'Jane' WHERE id = 1;
DELETE FROM users WHERE id = 1;Joins
-- Inner join (both tables match) SELECT u.name, o.total FROM users u JOIN orders o ON u.id = o.user_id; -- Left join (all from left, matching from right) SELECT u.name, o.total FROM users u LEFT JOIN orders o ON u.id = o.user_id; -- Full outer join SELECT u.name, o.total FROM users u FULL OUTER JOIN orders o ON u.id = o.user_id;
Aggregation
SELECT COUNT(*) FROM users; SELECT role, COUNT(*) FROM users GROUP BY role; SELECT role, COUNT(*) FROM users GROUP BY role HAVING COUNT(*) > 5; SELECT AVG(age), MIN(age), MAX(age), SUM(orders) FROM users;
Subqueries
SELECT * FROM users WHERE id IN ( SELECT user_id FROM orders WHERE total > 100 ); SELECT u.name, (SELECT COUNT(*) FROM orders WHERE user_id = u.id) AS order_count FROM users u;
Window Functions
SELECT name, salary, RANK() OVER (ORDER BY salary DESC) as rank, LAG(salary, 1) OVER (ORDER BY salary) as prev_salary, SUM(salary) OVER (ORDER BY salary) as running_total FROM employees;
Schema
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT NOW() ); ALTER TABLE users ADD COLUMN age INTEGER; ALTER TABLE users DROP COLUMN age; CREATE INDEX idx_email ON users(email);
Get 7 developer products (SaaS boilerplate, React hooks, Tailwind components, and more). Pay what you want:
Get the Complete Bundle