Essential SQL commands: SELECT, INSERT, UPDATE, DELETE, and JOINs
Select all columns from a table
SELECT * FROM users;
Select specific columns
SELECT name, email FROM users;
Select unique values
SELECT DISTINCT category FROM products;
Filter results with conditions
SELECT * FROM users WHERE age > 18;
Sort results
SELECT * FROM users ORDER BY name ASC;
Limit number of results
SELECT * FROM users LIMIT 10;
Remove records
DELETE FROM users WHERE id = 1;
Join tables with matching records
SELECT u.name, p.title FROM users u INNER JOIN posts p ON u.id = p.user_id;
Include all records from left table
SELECT u.name, p.title FROM users u LEFT JOIN posts p ON u.id = p.user_id;
Include all records from right table
SELECT u.name, p.title FROM users u RIGHT JOIN posts p ON u.id = p.user_id;
Include all records from both tables
SELECT u.name, p.title FROM users u FULL JOIN posts p ON u.id = p.user_id;
Count number of records
SELECT COUNT(*) FROM users;
Sum of numeric values
SELECT SUM(price) FROM products;
Average of numeric values
SELECT AVG(price) FROM products;
Maximum value
SELECT MAX(price) FROM products;
Minimum value
SELECT MIN(price) FROM products;
Group results by column
SELECT category, COUNT(*) FROM products GROUP BY category;
Filter grouped results
SELECT category, COUNT(*) FROM products GROUP BY category HAVING COUNT(*) > 5;
Create, Read, Update, Delete operations
-- Create (INSERT)
INSERT INTO users (name, email, created_at)
VALUES ('John Doe', '[email protected]', NOW());
-- Read (SELECT)
SELECT * FROM users WHERE email = '[email protected]';
-- Update (UPDATE)
UPDATE users
SET name = 'Jane Doe', updated_at = NOW()
WHERE id = 1;
-- Delete (DELETE)
DELETE FROM users WHERE id = 1;
Joining multiple tables with conditions
SELECT
u.name,
p.title,
c.content
FROM users u
INNER JOIN posts p ON u.id = p.user_id
LEFT JOIN comments c ON p.id = c.post_id
WHERE p.status = 'published'
ORDER BY p.created_at DESC;
Using subqueries for complex queries
-- Subquery in WHERE clause
SELECT * FROM products
WHERE price > (SELECT AVG(price) FROM products);
-- Subquery in FROM clause
SELECT category, avg_price
FROM (
SELECT category, AVG(price) as avg_price
FROM products
GROUP BY category
) subquery;
Always use WHERE
clauses to limit data
Use LIMIT
for large result sets
Index frequently queried columns for better performance
Use EXPLAIN
to analyze query performance
Always backup data before running DELETE
or UPDATE