SQL Basics

A quick reference for common SQL statements and patterns.


1. Basic SELECT

SELECT column1, column2, ...
FROM table_name;

2. SELECT DISTINCT

SELECT DISTINCT column1, column2, ...
FROM table_name;

Example – count distinct values:

SELECT COUNT(DISTINCT Country)
FROM Customers;

3. WHERE clause

SELECT column1, column2, ...
FROM table_name
WHERE condition;

4. ORDER BY

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

5. Multiple AND conditions

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

6. Multiple OR conditions

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

Example – combining AND & OR:

SELECT *
FROM Customers
WHERE Country = 'Spain'
  AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

7. NOT operator

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

Common negations:

  • NOT LIKE
  • NOT BETWEEN
  • NOT IN
  • > / < negations (e.g. NOT ><=)

8. INSERT statements

  1. Specify columns & values:
    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES (value1, value2, value3, ...);
  2. Insert values for all columns (column list omitted):
    INSERT INTO table_name
    VALUES (value1, value2, value3, ...);

Examples

-- Insert full row
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
 
-- Insert into selected columns
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');
 
-- Insert multiple rows
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES
  ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'),
  ('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'),
  ('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK');

9. IS NULL / IS NOT NULL

-- Find rows where column is NULL
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
 
-- Find rows where column is NOT NULL
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

10. UPDATE

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition; -- Omit WHERE to update **all** rows!

11. DELETE & DROP

-- Delete rows
DELETE FROM table_name
WHERE condition; -- Omit WHERE to delete **all** rows
 
-- Delete a table
DROP TABLE Customers;

12. LIMIT

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

13. Aggregate functions

FunctionPurpose
MIN()Smallest value
MAX()Largest value
COUNT()Number of rows
SUM()Total of a numeric column
AVG()Average of a numeric column

14. Using MIN() / MAX()

SELECT MIN(column_name)
FROM table_name
WHERE condition;
 
-- Alias the result
SELECT MIN(Price) AS SmallestPrice
FROM Products;

15. More coming soon…

Feel free to append additional notes or examples as you learn more SQL!