Essential SQL Queries Reference Guide
Essential SQL Queries Reference Guide
sql
Data Retrieval
Basic SELECT
sql
sql
-- Basic conditions
SELECT * FROM employees WHERE department_id = 50;
SELECT * FROM products WHERE price > 100;
SELECT * FROM orders WHERE order_date = '2023-01-15';
-- Multiple conditions
SELECT * FROM employees WHERE salary > 5000 AND department_id = 20;
SELECT * FROM products WHERE category = 'Electronics' OR category = 'Computers';
SELECT * FROM orders WHERE NOT status = 'Shipped';
-- Pattern matching
SELECT * FROM employees WHERE last_name LIKE 'S%'; -- Names starting with S
SELECT * FROM products WHERE description LIKE '%wireless%'; -- Contains "wireless"
sql
Data Aggregation
Aggregate Functions
sql
GROUP BY
sql
Joins
INNER JOIN
sql
sql
sql
sql
Self Join
sql
Subqueries
Subquery in WHERE
sql
Subquery in FROM
sql
Data Modification
INSERT
sql
UPDATE
sql
DELETE
sql
Table Operations
CREATE TABLE
sql
ALTER TABLE
sql
-- Add a column
ALTER TABLE employees ADD COLUMN phone VARCHAR(20);
-- Modify a column
ALTER TABLE employees ALTER COLUMN salary SET DEFAULT 5000;
ALTER TABLE employees MODIFY COLUMN first_name VARCHAR(100); -- MySQL syntax
-- Drop a column
ALTER TABLE employees DROP COLUMN temp_column;
DROP TABLE
sql
Advanced Queries
CASE Expression
sql
sql
WITH dept_salary AS (
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
)
SELECT e.employee_id, e.last_name, e.salary, ds.avg_salary
FROM employees e
JOIN dept_salary ds ON e.department_id = ds.department_id
WHERE e.salary > ds.avg_salary;
Window Functions
sql
-- Ranking
SELECT employee_id, last_name, department_id, salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rank
FROM employees;
-- Running totals
SELECT order_id, order_date, amount,
SUM(amount) OVER (ORDER BY order_date) AS running_total
FROM orders;
Indexes
sql
-- Create index
CREATE INDEX idx_last_name ON employees(last_name);
-- Drop index
DROP INDEX idx_last_name;
Transaction Control
sql
-- Begin transaction
BEGIN TRANSACTION; -- or START TRANSACTION; or BEGIN;
-- Commit changes
COMMIT;
-- Rollback changes
ROLLBACK;
-- Savepoint
SAVEPOINT my_savepoint;
ROLLBACK TO my_savepoint;