SQL Cheat Sheet for Testers (Interview + Project)

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


🏠