You’re the Expert!

sql

Cheatsheets

Create a Table and Insert Data
CREATE TABLE employees (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT,
  department VARCHAR(50)
);

INSERT INTO employees (id, name, age, department)
VALUES (1, 'Santosh K', 30, 'Engineering'),
       (2, 'T V Santosh', 25, 'Marketing'),
       (3, 'Dhruv', 35, 'HR');

SELECT * FROM employees;
copy to clipboard
Basic SELECT Statement
SELECT name, age FROM employees;
copy to clipboard
Filtering Data with WHERE Clause
SELECT name, department FROM employees
WHERE age > 30;
copy to clipboard
Sorting Results with ORDER BY
SELECT name, age FROM employees
ORDER BY age DESC;
copy to clipboard
Updating Data with UPDATE Statement
UPDATE employees
SET age = 32
WHERE name = 'John Doe';

SELECT * FROM employees;
copy to clipboard
Deleting Data with DELETE Statement
DELETE FROM employees
WHERE name = 'Dhruv K';

SELECT * FROM employees;
copy to clipboard

JOIN Operations (INNER JOIN)
CREATE TABLE departments (
  department_id INT PRIMARY KEY,
  department_name VARCHAR(50)
);

INSERT INTO departments (department_id, department_name)
VALUES (1, 'Engineering'),
       (2, 'Marketing'),
       (3, 'HR');

SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department = departments.department_name;
copy to clipboard
Aggregate Functions (COUNT, AVG, MAX, MIN, SUM)
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department;

SELECT AVG(age) AS average_age FROM employees;

SELECT MAX(age) AS oldest_employee_age FROM employees;

SELECT MIN(age) AS youngest_employee_age FROM employees;

SELECT SUM(age) AS total_age FROM employees;
copy to clipboard
Using GROUP BY with HAVING
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department
HAVING COUNT(*) > 1;
copy to clipboard
Using LIKE Operator for Pattern Matching
SELECT name FROM employees
WHERE name LIKE 'J%';
copy to clipboard
Working with NULL Values
SELECT name, age FROM employees
WHERE age IS NULL;
copy to clipboard
Subqueries (Nested Queries)
SELECT name, age
FROM employees
WHERE age > (SELECT AVG(age) FROM employees);
copy to clipboard

UNION and UNION ALL
SELECT name, age FROM employees WHERE department = 'Engineering'
UNION
SELECT name, age FROM employees WHERE department = 'Marketing';

SELECT name, age FROM employees WHERE department = 'Engineering'
UNION ALL
SELECT name, age FROM employees WHERE department = 'Marketing';
copy to clipboard
Creating and Using Views
CREATE VIEW employee_summary AS
SELECT name, department, age
FROM employees;

SELECT * FROM employee_summary;
copy to clipboard
Creating Indexes to Improve Query Performance
CREATE INDEX idx_department ON employees(department);

SELECT * FROM employees WHERE department = 'Engineering';
copy to clipboard
Using Transactions (BEGIN, COMMIT, ROLLBACK)
BEGIN;

UPDATE employees SET age = 40 WHERE name = 'Santosh K';

COMMIT;

-- ROLLBACK example:
-- BEGIN;
-- DELETE FROM employees WHERE name = 'Santosh K';
-- ROLLBACK;
copy to clipboard
Advanced JOINs (LEFT JOIN, RIGHT JOIN, FULL JOIN)
-- Left Join
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department = departments.department_name;

-- Right Join
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments
ON employees.department = departments.department_name;

-- Full Join (if supported by your DBMS)
SELECT employees.name, departments.department_name
FROM employees
FULL JOIN departments
ON employees.department = departments.department_name;
copy to clipboard
Using CASE Statements for Conditional Logic
SELECT name, age,
       CASE
         WHEN age >= 30 THEN 'Senior'
         WHEN age < 30 THEN 'Junior'
         ELSE 'Unknown'
       END AS experience_level
FROM employees;
copy to clipboard
Using Stored Procedures
DELIMITER //

CREATE PROCEDURE get_employee_by_department(dept VARCHAR(50))
BEGIN
  SELECT name, age
  FROM employees
  WHERE department = dept;
END //

DELIMITER ;

-- Call the stored procedure:
CALL get_employee_by_department('Engineering');
copy to clipboard