![]()
SQL (Structured Query Language) has been around for many years and is a very useful tool to access data in small or large scale. If you are like me, that may not be using SQL everyday, but need to use it once in a while. What I like to see is just a cheat sheet that give me the commonly used SQLs that I can quickly refresh my memory on their syntax.
Below is a short list, it is not meant to be extensive, it meant to be a reminder cheat sheet, and pretty much self explanatory with just a few comments.
If you are not familiar with SQL and like to learn more, I find w3schools provide very good tutorial and references for a few common languages, here is a link to SQL. What I like about w3schools and how it differentiate itself from some of the other site is that it provide interactive code editor that you can try out any example live.
-- Get all the fields in all the rows from a table
SELECT * FROM Products;
-- LIMIT or SELECT TOP - return only the first few rows, usually good to sample the data
SELECT * FROM films LIMIT 10; -- note that some database does not support LIMIT
SELECT TOP 10 * FROM Products; -- you can try TOP instead
-- DISTINCT - get only unique values
SELECT DISTINCT CategoryID FROM Products;
-- COUNT - return total number of rows
SELECT count(*) FROM Products;
-- WHERE - apply a filter to drill down to data you are looking for
SELECT ProductName, Price FROM Products WHERE Price < 10;
SELECT count(*) FROM Products where price < 10;
SELECT ProductName, Price, CategoryID FROM Products
WHERE (Price >= 10 and Price <= 20) and (CategoryID = 1 or CategoryID = 5);
SELECT ProductName, Price, CategoryID FROM Products
WHERE Price between 10 and 20 and CategoryID in (1, 5);
SELECT ProductName FROM Products WHERE Price is null;
SELECT count(ProductName) FROM Products WHERE Price is null;
-- Wildcards
-- % wildcard will match zero, one, or many characters
SELECT ProductName FROM Products WHERE ProductName like 'C%';
-- _ wildcard will match a single character
-- this will match any word that has h in the second character
SELECT ProductName FROM Products WHERE ProductName like '_h%';
-- this will match any product name that does not start with A
SELECT ProductName FROM Products WHERE ProductName not like 'A%';
-- Aggregate Functions
SELECT avg(price) FROM Products;
SELECT sum(price) FROM Products;
SELECT min(price) FROM Products;
SELECT max(price) FROM Products;
-- AS for aliasing for each access
SELECT max(price) as max_price FROM Products;
-- ORDER BY - sort result, default sort is ascending.
SELECT ProductName, Price FROM Products ORDER BY Price;
SELECT ProductName, Price FROM Products ORDER BY Price DESC;
SELECT ProductName, SupplierID, Price FROM Products ORDER BY SupplierID, Price;
-- GROUP BY - return subtotals by the group by field
SELECT SupplierID, count(*) FROM Products Group BY SupplierID;
-- HAVING
SELECT SupplierID, count(*) FROM Products Group BY SupplierID HAVING count(SupplierID) > 3;
-- JOINS - Inner Join
SELECT ProductName, Products.SupplierID, Suppliers.SupplierName, Suppliers.Country
FROM Products INNER JOIN Suppliers ON Products.SupplierID = Suppliers.SupplierID;
Hope you find this 1-pager handy and useful.