Queries
SELECT Statement
Basic SELECT
SELECT column1, column2 FROM $TABEL_NAME;
Select All Columns
SELECT * FROM $TABEL_NAME;
Select with Alias
SELECT column1 AS alias_name FROM $TABEL_NAME;
Select Distinct Values
SELECT DISTINCT column1 FROM $TABEL_NAME;
Select with Calculations
SELECT column1, column2 * 2 AS calculated_column FROM $TABEL_NAME;
Filtering
Basic WHERE Clause
SELECT * FROM $TABEL_NAME WHERE condition;
Comparison Operators
SELECT * FROM $TABEL_NAME WHERE column1 = 'value';SELECT * FROM $TABEL_NAME WHERE column1 != 'value';
SELECT * FROM $TABEL_NAME WHERE column1 > 100;
SELECT * FROM $TABEL_NAME WHERE column1 >= 100;
SELECT * FROM $TABEL_NAME WHERE column1 < 100;
SELECT * FROM table_name WHERE column1 <= 100;
Logical Operators
SELECT * FROM $TABEL_NAME WHERE condition1 AND condition2;
SELECT * FROM $TABEL_NAME WHERE condition1 OR condition2;
SELECT * FROM $TABEL_NAME WHERE NOT condition;
LIKE Pattern Matching
SELECT * FROM $TABEL_NAME WHERE column1 LIKE 'pattern%';
SELECT * FROM $TABEL_NAME WHERE column1 LIKE '%pattern';
SELECT * FROM $TABEL_NAME WHERE column1 LIKE '%pattern%';
SELECT * FROM $TABEL_NAME WHERE column1 LIKE '_pattern';
IN Operator
SELECT * FROM $TABEL_NAME WHERE column1 IN ('value1', 'value2', 'value3');
BETWEEN Operator
SELECT * FROM $TABEL_NAME WHERE column1 BETWEEN value1 AND value2;
NULL Values
SELECT * FROM $TABEL_NAME WHERE column1 IS NULL;
SELECT * FROM $TABEL_NAME WHERE column1 IS NOT NULL;
Sorting & Limiting
ORDER BY Ascending
SELECT * FROM $TABEL_NAME ORDER BY column1;
SELECT * FROM $TABEL_NAME ORDER BY column1 ASC;
ORDER BY Descending
SELECT * FROM $TABEL_NAME ORDER BY column1 DESC;
Multiple Column Sorting
SELECT * FROM $TABEL_NAME ORDER BY column1, column2 DESC;
Sort by Column Position
SELECT column1, column2 FROM $TABEL_NAME ORDER BY 2 DESC;
LIMIT Results
SELECT * FROM $TABEL_NAME LIMIT 10;
LIMIT with OFFSET
SELECT * FROM $TABEL_NAME LIMIT 10 OFFSET 20;
SELECT * FROM $TABEL_NAME LIMIT 20, 10;
Top N Results
SELECT * FROM $TABEL_NAME ORDER BY column1 DESC LIMIT 5;
Aggregate Functions
COUNT Function
SELECT COUNT(*) FROM $TABEL_NAME;
SELECT COUNT(column1) FROM $TABEL_NAME;
SELECT COUNT(DISTINCT column1) FROM $TABEL_NAME;
SUM Function
SELECT SUM(column1) FROM $TABEL_NAME;
AVG Function
SELECT AVG(column1) FROM $TABEL_NAME;
MIN and MAX Functions
SELECT MIN(column1) FROM $TABEL_NAME;
SELECT MAX(column1) FROM $TABEL_NAME;
Multiple Aggregates
SELECT COUNT(*), SUM(column1), AVG(column1), MIN(column1), MAX(column1) FROM $TABEL_NAME;
String Functions
SELECT CONCAT(column1, column2) FROM table_name;
SELECT LENGTH(column1) FROM $TABEL_NAME;
SELECT UPPER(column1) FROM $TABEL_NAME;
SELECT LOWER(column1) FROM $TABEL_NAME;
SELECT SUBSTRING(column1, 1, 3) FROM $TABEL_NAME;
Date Functions
SELECT NOW();
SELECT DATE(column1) FROM $TABEL_NAME;
SELECT YEAR(column1) FROM $TABEL_NAME;
SELECT MONTH(column1) FROM $TABEL_NAME;
SELECT DAY(column1) FROM $TABEL_NAME;
SELECT DATEDIFF(NOW(), column1) FROM $TABEL_NAME;
GROUP BY and HAVING
Basic GROUP BY
SELECT column1, COUNT(*) FROM $TABEL_NAME GROUP BY column1;
GROUP BY Multiple Columns
SELECT column1, column2, COUNT(*) FROM $TABEL_NAME GROUP BY column1, column2;
GROUP BY with Aggregates
SELECT column1, COUNT(*), SUM(column2), AVG(column2) FROM $TABEL_NAME GROUP BY column1;
HAVING Clause
SELECT column1, COUNT(*) FROM $TABEL_NAME GROUP BY column1 HAVING COUNT(*) > 5;
HAVING with Multiple Conditions
SELECT column1, AVG(column2) FROM $TABEL_NAME GROUP BY column1 HAVING AVG(column2) > 100 AND COUNT(*) > 3;
WHERE vs HAVING
SELECT column1, COUNT(*) FROM $TABEL_NAME WHERE column2 > 50 GROUP BY column1 HAVING COUNT(*) > 2;
Joins
INNER JOIN
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.table1_id;
LEFT JOIN
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.table1_id;
RIGHT JOIN
SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.table1_id;
FULL OUTER JOIN (MySQL Alternative)
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.table1_idUNIONSELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.table1_id;
CROSS JOIN
SELECT * FROM table1 CROSS JOIN table2;
SELF JOIN
SELECT t1.column1, t2.column1 FROM table1 t1 INNER JOIN table1 t2 ON t1.manager_id = t2.id;
Multiple Table JOIN
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.table1_idINNER JOIN table3 ON table2.id = table3.table2_id;
JOIN with WHERE
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.table1_id WHERE table1.column1 = 'value';
JOIN with GROUP BY
SELECT table1.column1, COUNT(*) FROM table1 INNER JOIN table2 ON table1.id = table2.table1_id GROUP BY table1.column1;
Last updated