SQL Cheat Sheet

This is a handy cheat sheet for simple SQL reporting.

Ordering Columns

Ordering by a single column criteria:

SELECT * FROM <table name> ORDER BY <column> [ASC|DESC];

ASC is used to order results in ascending order.

DESC is used to order results in descending order.

Examples:

SELECT * FROM books ORDER BY title ASC;
SELECT * FROM products WHERE name = "Sonic T-Shirt" ORDER BY stock_count DESC;
SELECT * FROM users ORDER BY signed_up_on DESC;
SELECT * FROM countries ORDER BY population DESC;

Ordering by multiple column criteria:

SELECT * FROM <table name> ORDER BY <column> [ASC|DESC],
                                   <column 2> [ASC|DESC],
                                   ...,
                                   <column n> [ASC|DESC];

Ordering is prioritized left to right.

Examples:

SELECT * FROM books ORDER BY    genre ASC, 
                               title ASC;

SELECT * FROM books ORDER BY    genre ASC,
                               year_published DESC;

SELECT * FROM users WHERE email LIKE "%@gmail.com"
                   ORDER BY last_name ASC,
                               first_name ASC;

Limiting Results

SQLite, PostgreSQL and MySQL

To limit the number of results returned, use the LIMIT keyword.

SELECT <columns> FROM <table> LIMIT <# of rows>;

MS SQL

To limit the number of results returned, use the TOP keyword.

SELECT TOP <# of rows> <columns> FROM <table>;

Oracle

To limit the number of results returned, use the ROWNUM keyword in a WHERE clause.

SELECT <columns> FROM <table> WHERE ROWNUM <= <# of rows>;

Paging Through Results

SQLite, PostgreSQL and MySQL

To page through results you can either use the OFFSET keyword in conjunction with the LIMIT keyword or just with LIMIT alone.

SELECT <columns> FROM <table> LIMIT <# of rows> OFFSET <skipped rows>;
SELECT <columns> FROM <table> LIMIT <skipped rows>, <# of rows>;

MS SQL and Oracle

To page through results you can either use the OFFSET keyword in conjunction with the FETCH keyword. Cannot be used with TOP.

SELECT <columns> FROM <table> OFFSET <skipped rows> ROWS FETCH NEXT <# of rows> ROWS ONLY;

Syntax definitions

  • Keywords: Commands issued to a database. The data presented in queries is unaltered.
  • Operators: Performs comparisons and simple manipulation
  • Functions: Presents data differently through more complex manipulation
  • Arguments or Parameters: Values passed in to functions.

A function looks like:

<function name>(<value or column>)

Examples:

SELECT UPPER("Yohan Park");
SELECT UPPER(name) FROM passport_holders;

Concatenating Strings

SQLite, PostgreSQL and Oracle

Use the concatenation operator ||.

SELECT <value or column> || <value or column> || <value or column>  FROM <table>; 

MS SQL

Use the concatenation operator +.

SELECT <value or column> + <value or column> + <value or column>  FROM <table>; 

MySQL, PostgreSQL and MS SQL

Use the CONCAT() function.

SELECT CONCAT(<value or column>, <value or column>, <value or column>) FROM <table>;

Finding Length of Strings

To obtain the length of a value or column use the LENGTH() function.

SELECT LENGTH(<value or column>) FROM <tables>;

Changing the Case of Strings

Use the UPPER() function to uppercase text.

SELECT UPPER(<value or column>) FROM <table>;

Use the LOWER() function to lowercase text.

SELECT LOWER(<value or column>) FROM <table>;

Create Excerpts with Substring

To create smaller strings from larger piece of text you can use the SUBSTR() funciton or the substring function.

SELECT SUBSTR(<value or column>, <start>, <length>) FROM <table>;
  • <start> : Specifies where to start in the string
    • if is 0 (zero), then it is treated as 1.
    • if is positive, then the function counts from the beginning of string to find the first character.
    • if is negative, then the function counts backward from the end of string.
  • <finish> : length of the desired substring
SELECT SUBSTR('abcdefg', 3,4);

OUTPUT: cdef

SELECT SUBSTR('abcdefg', -5,4);

OUTPUT: cdef

Replacing Portions of Text

To replace piece of strings of text in a larger body of text you can use the REPLACE() function.

SELECT REPLACE(<original value or column>, <target string>, <replacement string>) FROM <table>;

Counting Results

To count rows you can use the COUNT() function.

SELECT COUNT(*) FROM <table>;

To count unique entries use the DISTINCT keyword too:

SELECT COUNT(DISTINCT <column>) FROM <table>;

To count aggregated rows with common values use the GROUP BY keywords:

SELECT COUNT(<column>) FROM <table> GROUP BY <column with common value>;

Obtaining Totals

To total up numeric columns use the SUM() function.

SELECT SUM(<numeric column) FROM <table>;
SELECT SUM(<numeric column) AS <alias> FROM <table>
                                      GROUP BY <another column>
                                      HAVING <alias> <operator> <value>;

Calculating Averages

To get the average value of a numeric column use the AVG() function.

SELECT AVG(<numeric column>) FROM <table>;
SELECT AVG(<numeric column>) FROM <table> GROUP BY <other column>;

Finding the Maximum and Minimum Values

To get the maximum value of a numeric column use the MAX() function.

SELECT MAX(<numeric column>) FROM <table>;
SELECT MAX(<numeric column>) FROM <table> GROUP BY <other column>;

To get the minimum value of a numeric column use the MIN() function.

SELECT MIN(<numeric column>) FROM <table>;
SELECT MIN(<numeric column>) FROM <table> GROUP BY <other column>;

Mathematical Operators

  • * Multiply
  • / Divide
  • + Add
  • – Subtract

SELECT <numeric column> <mathematical operator> <numeric value> FROM <table>;

Up-to-the-Minute Dates and Times

SQLite

To get the current date use: DATE(“now”)

To get the current time use: TIME(“now”)

To get the current date time: DATETIME(“NOW”)

MS SQL

To get the current date use: CONVERT(date, GETDATE())

To get the current time use: CONVERT(time, GETDATE())

To get the current date time: GETDATE()

MySQL

To get the current date use: CURDATE()

To get the current time use: CURTIME()

To get the current date time: NOW()

Oracle and PostgreSQL

To get the current date use: CURRENT_DATE

To get the current time use: CURRENT_TIME

To get the current date time: CURRENT_TIMESTAMP

Leave a Comment