Posted in

SQL Cheatsheet – A Quick Guide for Beginners & Developers

sql cheatsheet

Content Table

1. Basics

SHOW DATABASES;
USE database_name;
SHOW TABLES;

2. Data Types

  • Numbers → INT, BIGINT, DECIMAL, FLOAT
  • Strings → CHAR, VARCHAR, TEXT
  • Date/Time → DATE, DATETIME, TIMESTAMP
  • Boolean → BOOLEAN

3. Database & Table

CREATE DATABASE db_name;
DROP DATABASE db_name;

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  email VARCHAR(100) UNIQUE,
  age INT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

ALTER TABLE users ADD phone VARCHAR(15);
ALTER TABLE users DROP COLUMN phone;
DROP TABLE users;

4. Insert / Update / Delete

INSERT INTO users (name, email, age)
VALUES ('Alice', 'alice@mail.com', 22);

UPDATE users SET age = 23 WHERE id = 1;

DELETE FROM users WHERE id = 1;

5. Select Queries

SELECT * FROM users;
SELECT name, age FROM users;
SELECT DISTINCT age FROM users;
SELECT name AS full_name FROM users;

6. WHERE Clause

SELECT * FROM users WHERE age > 18;

-- Operators: =, !=, <>, >, <, <=, >=
-- Logical: AND, OR, NOT
-- Range: BETWEEN ... AND ...
-- List: IN (...)
-- Pattern: LIKE, ILIKE

7. Sorting & Limiting

SELECT * FROM users ORDER BY age ASC;
SELECT * FROM users ORDER BY age DESC;
SELECT * FROM users LIMIT 5 OFFSET 10;

8. Aggregate Functions

SELECT COUNT(*), AVG(age), MIN(age), MAX(age), SUM(age) FROM users;

9. GROUP BY / HAVING

SELECT age, COUNT(*) FROM users GROUP BY age;
SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;

10. Joins

-- Inner Join
SELECT u.name, o.order_date
FROM users u
INNER JOIN orders o ON u.id = o.user_id;

-- Left Join
SELECT u.name, o.order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

-- Right Join
SELECT u.name, o.order_date
FROM users u
RIGHT JOIN orders o ON u.id = o.user_id;

-- Full Join (Postgres, MySQL 8+)
SELECT u.name, o.order_date
FROM users u
FULL OUTER JOIN orders o ON u.id = o.user_id;

11. Subqueries

SELECT * FROM users
WHERE age > (SELECT AVG(age) FROM users);

12. Set Operations

SELECT name FROM users
UNION
SELECT name FROM customers;

SELECT name FROM users
UNION ALL
SELECT name FROM customers;

13. Constraints

  • PRIMARY KEY
  • FOREIGN KEY
  • UNIQUE
  • NOT NULL
  • DEFAULT

14. Indexes

CREATE INDEX idx_name ON users(name);
DROP INDEX idx_name ON users;

15. Views

CREATE VIEW adult_users AS
SELECT * FROM users WHERE age >= 18;

SELECT * FROM adult_users;
DROP VIEW adult_users;

16. Transactions

START TRANSACTION;
UPDATE users SET age = age+1 WHERE id=1;
DELETE FROM users WHERE id=2;
COMMIT;
ROLLBACK;

17. Privileges

GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'localhost';
REVOKE ALL PRIVILEGES ON db_name.* FROM 'user'@'localhost';

Advanced SQL

18. Stored Procedures

DELIMITER //
CREATE PROCEDURE GetUsers()
BEGIN
  SELECT * FROM users;
END //
DELIMITER ;

CALL GetUsers();

19. Functions

CREATE FUNCTION UserCount()
RETURNS INT
DETERMINISTIC
RETURN (SELECT COUNT(*) FROM users);

20. Triggers

CREATE TRIGGER before_insert_user
BEFORE INSERT ON users
FOR EACH ROW
SET NEW.created_at = NOW();

21. Window Functions (MySQL 8+, PostgreSQL)

SELECT name, age,
       RANK() OVER (ORDER BY age DESC) AS rank,
       ROW_NUMBER() OVER (PARTITION BY age ORDER BY name) AS row_num
FROM users;

22. CTEs (Common Table Expressions)

WITH avg_age AS (
   SELECT AVG(age) AS avg FROM users
)
SELECT * FROM users WHERE age > (SELECT avg FROM avg_age);

23. Recursive CTEs

WITH RECURSIVE numbers AS (
  SELECT 1 AS n
  UNION ALL
  SELECT n+1 FROM numbers WHERE n < 10
)
SELECT * FROM numbers;

24. JSON Data

-- MySQL JSON Example
SELECT JSON_EXTRACT(details, '$.address') FROM users;
SELECT details->>'$.phone' FROM users;

25. Temporary Tables

CREATE TEMPORARY TABLE temp_users AS
SELECT * FROM users WHERE age > 20;

26. Backup & Restore

-- Export
mysqldump -u user -p db_name > backup.sql  

-- Import
mysql -u user -p db_name < backup.sql

All CheatSheets view

Checkout other Cheatsheets

  1. Python
  2. JavaScript
  3. HTML
  4. CSS
  5. React

Checkout My YouTube Channel

Read my other Blogs

  1. Top 5 Mistakes Beginners Make While Learning to Code (And How to Avoid Them)
  2. Best Programming Languages to Learn in 2025 (and Why)
  3. Before You Learn Web Development: The Advice No One Gave Me
  4. How to Start Coding in 2025: Beginner’s Roadmap
  5. Why Coding is Important: The Language of the Future
  6. Are Coding and Programming the Same? – The Complete Truth You Need to Know
  7. Will Coding Be Replaced by AI?
  8. C++ Programming: Everything You Need to Know

I’m Shaurya, a developer simplifying tech with tutorials, tools, and projects to help you learn, build, and grow in the world of coding.

Leave a Reply

Your email address will not be published. Required fields are marked *