SQL Cheat Sheet for Testers (Interview + Project)
1. BASIC SELECT (Most Used)
SELECT * FROM users;
View all records in a table
2. SELECT with WHERE (Data Validation)
SELECT * FROM users WHERE email = 'test@gmail.com';
Validate specific test data
3. SELECT Specific Columns
SELECT user_id, name FROM users;
Verify only required fields
4. COUNT Records (Validation)
SELECT COUNT(*) FROM orders;
Check record count after action
5. COUNT with CONDITION
SELECT COUNT(*) FROM orders WHERE status = 'SUCCESS';
Validate successful transactions
6. ORDER BY (Latest Records)
SELECT * FROM orders ORDER BY created_at DESC;
Verify latest data entry
7. LIMIT (Pagination Testing)
SELECT * FROM orders LIMIT 10 OFFSET 20;
Validate pagination logic
8. INNER JOIN (Most Important)
SELECT u.name, o.order_id
FROM users u
JOIN orders o ON u.user_id = o.user_id;
Validate parent-child relationship
9. LEFT JOIN (Find Missing Data)
SELECT u.name, o.order_id
FROM users u
LEFT JOIN orders o ON u.user_id = o.user_id
WHERE o.order_id IS NULL;
Find users without orders
10. FIND DUPLICATE RECORDS
SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
Detect duplicate data issue
11. CHECK NULL VALUES
SELECT * FROM users WHERE phone IS NULL;
Validate mandatory field handling
12. UPDATE DATA (Careful!)
UPDATE users SET status = 'ACTIVE' WHERE user_id = 10;
Test update functionality (QA env only)
13. DELETE TEST DATA (Safe Way)
DELETE FROM users WHERE email LIKE 'test%';
Clean test data
14. SOFT DELETE VALIDATION
SELECT is_deleted FROM users WHERE user_id = 10;
Ensure record not physically deleted
15. TRANSACTION CHECK
SELECT status FROM payments WHERE txn_id = 'TXN123';
Validate payment consistency
16. EXPLAIN (Performance Awareness)
EXPLAIN SELECT * FROM orders WHERE user_id = 101;
Identify slow query issues
17. GROUP BY (Reports)
SELECT status, COUNT(*)
FROM orders
GROUP BY status;
Validate summary reports
18. HAVING vs WHERE
SELECT status, COUNT(*)
FROM orders
GROUP BY status
HAVING COUNT(*) > 10;
Validate grouped conditions
19. FIND ORPHAN RECORDS
SELECT o.order_id
FROM orders o
LEFT JOIN users u ON o.user_id = u.user_id
WHERE u.user_id IS NULL;
Detect FK issues
20. BETWEEN (Date Validation)
SELECT * FROM orders
WHERE created_at BETWEEN '2026-01-01' AND '2026-01-10';
Validate date-based records
21. LIKE (Search Testing)
SELECT * FROM users WHERE name LIKE '%rahul%';
Validate search functionality
22. DISTINCT (Unique Values)
SELECT DISTINCT status FROM orders;
Validate dropdown values
23. SUBQUERY (Advanced but Useful)
SELECT * FROM users
WHERE user_id IN (SELECT user_id FROM orders);
Validate linked data
24. CHECK LAST INSERTED RECORD
SELECT * FROM users ORDER BY user_id DESC LIMIT 1;
Validate new record insertion
25. ROLLBACK SAFETY (Tester Awareness)
START TRANSACTION;
UPDATE users SET status='INACTIVE' WHERE user_id=5;
ROLLBACK;
Ensure no permanent change
INTERVIEW MEMORY TRICK
80% of tester DB questions use:
SELECT
WHERE
JOIN
COUNT
GROUP BY