Introduction
SQL (Structured Query Language) is used to interact with relational databases. It helps you to store, retrieve, update, and delete data. SQL is used in almost every industry, from websites to banking systems. If you want to work with data, SQL is a must-have skill. This cheatsheet will give you short and clear definitions, code examples, and key points for the most important SQL topics.
1. SELECT Statement
-
Definition: Used to fetch data from a table.
-
Example
SELECT name, age FROM Students; -
Key Point: Use
*to select all columns.
2. WHERE Clause
-
Definition: Filters records based on a condition.
-
Example
SELECT * FROM Students WHERE age > 18; -
Key Point: Works with operators like
=,>,<,BETWEEN,IN,LIKE.
3. ORDER BY
-
Definition: Sorts the result in ascending or descending order.
-
Example
SELECT * FROM Students ORDER BY age DESC; -
Key Point: Default sort is ascending (
ASC).
4. INSERT INTO
-
Definition: Adds new records to a table.
-
Example
INSERT INTO Students (name, age) VALUES ('John', 20); -
Key Point: Match the column order with the values.
5. UPDATE
-
Definition: Changes existing records.
-
Example
UPDATE Students SET age = 21 WHERE name = 'John'; -
Key Point: Always use
WHEREto avoid updating all rows.
6. DELETE
-
Definition: Removes data from a table.
-
Example
DELETE FROM Students WHERE name = 'John'; -
Key Point: Without
WHERE, all rows will be deleted.
7. CREATE TABLE
-
Definition: Creates a new table.
-
Example
CREATE TABLE Students ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); -
Key Point: Define data types clearly.
8. ALTER TABLE
-
Definition: Changes the structure of a table.
-
Examples
-
Add column:
ALTER TABLE Students ADD email VARCHAR(100); -
Drop column:
ALTER TABLE Students DROP COLUMN email;
-
9. DROP TABLE
-
Definition: Deletes the table and its data.
-
Example
DROP TABLE Students; -
Key Point: This action cannot be undone.
10. JOINs
-
Definition: Combines rows from two or more tables.
-
Example (INNER JOIN)
SELECT Students.name, Marks.score FROM Students INNER JOIN Marks ON Students.id = Marks.student_id; -
Types
-
INNER JOIN: Only matching records.
-
LEFT JOIN: All records from left + matches.
-
RIGHT JOIN: All from right + matches.
-
FULL JOIN: All records from both.
-
11. GROUP BY
-
Definition: Groups rows based on a column and applies an aggregate function.
-
Example:
SELECT age, COUNT(*) FROM Students GROUP BY age; -
Key Point: Always use with aggregate functions.
12. HAVING
-
Definition: Filters groups created by
GROUP BY. -
Example:
SELECT age, COUNT(*) FROM Students GROUP BY age HAVING COUNT(*) > 1; -
Key Point: Use
HAVINGafterGROUP BY.
13. Aggregate Functions
-
Definition: Perform calculations on multiple values.
-
Common ones:
COUNT(),SUM(),AVG(),MIN(),MAX() -
Example
SELECT AVG(age) FROM Students;
14. DISTINCT
-
Definition: Removes duplicate rows.
-
Example
SELECT DISTINCT age FROM Students;
15. BETWEEN, IN, LIKE
-
BETWEEN
SELECT * FROM Students WHERE age BETWEEN 18 AND 25; -
IN
SELECT * FROM Students WHERE age IN (18, 21, 23); -
LIKE
SELECT * FROM Students WHERE name LIKE 'A%';
16. LIMIT / TOP
-
Definition: Restricts number of rows returned.
-
MySQL
SELECT * FROM Students LIMIT 5; -
SQL Server
SELECT TOP 5 * FROM Students;
17. UNION
-
Definition: Combines results of two
SELECTstatements. -
Example
SELECT name FROM Students UNION SELECT name FROM Teachers; -
Key Point: Both queries must have the same number of columns.
18. Subquery
-
Definition: A query inside another query.
-
Example
SELECT name FROM Students WHERE age = (SELECT MAX(age) FROM Students);
19. Views
-
Definition: A virtual table based on the result of a query.
-
Example
CREATE VIEW Teenagers AS SELECT * FROM Students WHERE age BETWEEN 13 AND 19;
20. Indexes
-
Definition: Improve search performance on columns.
-
Example
CREATE INDEX idx_name ON Students(name); -
Key Point: Indexes speed up
SELECTbut may slow downINSERT/UPDATE.
21. Constraints
-
Definition: Rules applied on columns.
-
Types
-
PRIMARY KEY: Unique and not null. -
FOREIGN KEY: Links to another table’s primary key. -
UNIQUE: Ensures all values are different. -
NOT NULL: Prevents null values. -
CHECK: Validates a condition.
-
-
Example
CREATE TABLE Students ( id INT PRIMARY KEY, age INT CHECK (age >= 0) );
22. DEFAULT Constraint
-
Definition: Sets a default value for a column if none is provided.
-
Example
CREATE TABLE Students ( id INT, name VARCHAR(50), status VARCHAR(10) DEFAULT 'active' ); -
Key Point: Helps avoid
NULLwhen no value is provided.
23. CASE Statement
-
Definition: Adds conditional logic inside a query.
-
Example
SELECT name, CASE WHEN age >= 18 THEN 'Adult' ELSE 'Minor' END AS age_group FROM Students; -
Key Point: Works like if-else in SQL.
24. EXISTS
-
Definition: Checks whether a subquery returns any row.
-
Example
SELECT name FROM Students s WHERE EXISTS ( SELECT 1 FROM Marks m WHERE m.student_id = s.id ); -
Key Point: Faster than
INin many cases for large datasets.
25. NOT IN vs NOT EXISTS
-
Caution:
NOT INfails if anyNULLexists in subquery. UseNOT EXISTSfor safer logic. -
Example
SELECT name FROM Students WHERE NOT EXISTS ( SELECT 1 FROM Graduates WHERE Students.id = Graduates.id );
26. COALESCE and ISNULL
-
Definition: Replace
NULLwith a default value. -
Example
SELECT name, COALESCE(email, 'Not Provided') FROM Students; -
Key Point:
COALESCEreturns the first non-null value from a list.
27. Window Functions
-
Definition: Performs calculation across a set of rows related to the current row.
-
Common ones:
ROW_NUMBER(),RANK(),DENSE_RANK(),NTILE() -
Example
SELECT name, age, RANK() OVER (ORDER BY age DESC) AS age_rank FROM Students; -
Key Point: Unlike aggregate functions, window functions do not collapse rows.
28. Common Table Expressions (CTE)
-
Definition: A temporary named result set used in a query.
-
Example
WITH Teenagers AS ( SELECT * FROM Students WHERE age BETWEEN 13 AND 19 ) SELECT * FROM Teenagers; -
Key Point: Makes complex queries cleaner and readable.
29. Stored Procedures
-
Definition: A saved group of SQL statements that can be executed repeatedly.
-
Example
CREATE PROCEDURE GetAllStudents AS BEGIN SELECT * FROM Students; END; -
Execution
EXEC GetAllStudents;
30. Functions (User-Defined Functions)
-
Definition: Return a value based on input parameters.
-
Example
CREATE FUNCTION GetFullName (@first VARCHAR(50), @last VARCHAR(50)) RETURNS VARCHAR(100) AS BEGIN RETURN (@first + ' ' + @last); END;
31. Transactions
-
Definition: A set of SQL operations that execute together or not at all.
-
Example
BEGIN TRANSACTION; UPDATE Accounts SET balance = balance - 100 WHERE id = 1; UPDATE Accounts SET balance = balance + 100 WHERE id = 2; COMMIT; -
Key Point: Use
ROLLBACKto undo changes if something fails.
32. ACID Properties
-
Definition: Ensures reliable processing of transactions.
-
Atomicity: All or nothing
-
Consistency: Valid state before/after
-
Isolation: Transactions do not affect each other
-
Durability: Changes are permanent
-
33. Normalization
- Definition: Organizing data to reduce redundancy.
- Common Forms: 1NF, 2NF, 3NF
- Key Point: Normalize to avoid data anomalies. Denormalize only when performance requires it.
34. Foreign Key
-
Definition: A column that links to another table’s primary key.
-
Example
CREATE TABLE Marks ( id INT PRIMARY KEY, student_id INT, FOREIGN KEY (student_id) REFERENCES Students(id) );
35. Triggers
-
Definition: SQL code that runs automatically on data change (INSERT, UPDATE, DELETE).
-
Example
CREATE TRIGGER LogDelete AFTER DELETE ON Students FOR EACH ROW BEGIN INSERT INTO DeletedRecords (name) VALUES (OLD.name); END;
36. SET Operators (UNION ALL, INTERSECT, EXCEPT)
-
UNION ALL: Includes duplicates.
-
INTERSECT: Returns common rows between two queries.
-
EXCEPT: Returns rows in first query but not in second.
-
Example
SELECT name FROM Students INTERSECT SELECT name FROM Teachers;
37. Backup and Restore
-
Backup Example (SQL Server)
BACKUP DATABASE School TO DISK = 'D:\backup\school.bak'; -
Restore Example
RESTORE DATABASE School FROM DISK = 'D:\backup\school.bak';
38. TEMPORARY Tables
-
Definition: Temporary tables exist only during the session or transaction.
-
Example (MySQL)
CREATE TEMPORARY TABLE TempStudents ( id INT, name VARCHAR(50) ); -
Key Point: Good for storing intermediate results. Automatically dropped at session end.
39. TABLE Variables (SQL Server)
-
Definition: A variable to temporarily hold table data.
-
Example
DECLARE @Temp TABLE (id INT, name VARCHAR(50)); INSERT INTO @Temp VALUES (1, 'John');
40. MERGE Statement (UPSERT)
-
Definition: Performs INSERT, UPDATE, or DELETE in one statement based on a match.
-
Example
MERGE INTO Students AS target USING (SELECT 1 AS id, 'John' AS name) AS source ON target.id = source.id WHEN MATCHED THEN UPDATE SET name = source.name WHEN NOT MATCHED THEN INSERT (id, name) VALUES (source.id, source.name); -
Key Point: Use cautiously. Complex logic can lead to bugs if not tested well.
41. Recursive CTE
-
Definition: A CTE that refers to itself. Useful for hierarchical data (e.g., org charts, folder trees).
-
Example
WITH OrgChart AS ( SELECT id, manager_id, name FROM Employees WHERE manager_id IS NULL UNION ALL SELECT e.id, e.manager_id, e.name FROM Employees e JOIN OrgChart o ON e.manager_id = o.id ) SELECT * FROM OrgChart;
42. JSON Data Handling
-
Definition: Querying and storing JSON in SQL columns (supported in PostgreSQL, MySQL, SQL Server).
-
Example (PostgreSQL)
SELECT data->>'name' AS name FROM users WHERE data->>'age' = '25'; -
Key Point: Useful when data structure is flexible or semi-structured.
43. PIVOT and UNPIVOT
-
Definition
-
PIVOT: Converts rows to columns.
-
UNPIVOT: Converts columns to rows.
-
-
Example (SQL Server):
SELECT * FROM (SELECT subject, score FROM Marks) AS SourceTable PIVOT ( MAX(score) FOR subject IN ([Math], [Science]) ) AS PivotTable; -
Key Point: Makes reporting easier. Avoid overuse in core logic.
44. ROLLUP and CUBE
-
Definition: Extensions to
GROUP BYfor creating subtotals and grand totals. -
ROLLUP
SELECT department, role, COUNT(*) FROM Employees GROUP BY ROLLUP (department, role); -
CUBE
GROUP BY CUBE (department, role); -
Key Point: Saves time when generating hierarchical reports.
45. WITH TIES
-
Definition: Returns additional rows that match the last value in an
ORDER BY ... TOPquery. -
Example:
SELECT TOP 3 WITH TIES name, score FROM Marks ORDER BY score DESC; -
Key Point: Useful when ranks are tied and you want to return all top scorers.
46. SEQUENCES
-
Definition: Auto-incrementing number generator independent of tables.
-
Example:
CREATE SEQUENCE student_seq START WITH 1 INCREMENT BY 1; SELECT NEXT VALUE FOR student_seq; -
Key Point: More flexible than
IDENTITYin some databases.
47. IDENTITY vs SEQUENCE
- IDENTITY: Tied to a table. Auto-increments per insert.
- SEQUENCE: Independent object. Can be reused across tables or manually advanced.
48. LOCKING & ISOLATION LEVELS
-
Definition: Controls how transactions read/write shared data.
-
Levels
-
READ UNCOMMITTED: Dirty reads allowed -
READ COMMITTED: Only committed data -
REPEATABLE READ: Prevents non-repeatable reads -
SERIALIZABLE: Strictest, full isolation
-
-
Key Point: Choose based on consistency vs performance trade-off.
49. DEADLOCK
- Definition: Two or more sessions wait forever for resources locked by each other.
- Fix: Reduce transaction size, always lock objects in the same order, use proper isolation levels.
50. EXECUTION PLAN
- Definition: Visual or textual explanation of how SQL Server/MySQL/PostgreSQL will execute the query.
- Key Point: Use
EXPLAIN,SHOW PLAN, or right-click → “Display Estimated Execution Plan” in SQL Server Management Studio.
51. ANALYZE / UPDATE STATISTICS
-
Definition: Refreshes metadata so the query planner makes better decisions.
-
Example (PostgreSQL):
ANALYZE Students; -
SQL Server:
UPDATE STATISTICS Students;
52. PARTITIONING
- Definition: Divides large tables into smaller, more manageable parts (partitions).
- Key Point: Boosts performance on very large tables. Query optimizer uses partition elimination.
53. Sharding
- Definition: Horizontal partitioning across databases or servers.
- Key Point: Needed for very high scale. Not supported by default in many RDBMS — requires custom implementation or external tools.
54. Temporal Tables (System-Versioned Tables)
- Definition: Track historical changes automatically.
- Example (SQL Server 2016+):
CREATE TABLE StudentsHistory ( id INT, name VARCHAR(50), VALID_FROM DATETIME2 GENERATED ALWAYS AS ROW START, VALID_TO DATETIME2 GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (VALID_FROM, VALID_TO) ) WITH (SYSTEM_VERSIONING = ON);

Join the conversation! Your thoughts help the community grow.