Home Blog Ultimate SQL Cheat Sheet 2021 (Download PDF) : Queries, Commands, Etc.
Ultimate SQL Cheat Sheet 2021 (Download PDF) : Queries, Commands, Etc.

Ultimate SQL Cheat Sheet 2021 (Download PDF): Queries, Commands, Etc.

This ultimate SQL Cheatsheet has been created to help you understand SQL as quickly as possible. It also contains the most commonly used SQL Keywords and commands that you would need. You can read this tutorial or download the SQL Cheat Sheet pdf for offline use. You can also edit PDF online.

Download SQL Cheat Sheet PDF

Ultimate SQL Cheat Sheet

Odoo CMS - a big picture

What is a Database?

Before we get started with SQL Cheat Sheet, we need to understand what is a database and why do we need SQL. If you want to learn this offline, you can download the SQL basics cheat sheet any time.

Odoo CMS - a big picture

Data is a collection of facts related to any object. For example: - Your name, number, birthday, phone number, email address, etc. is a collection of facts about you.

Therefore, a database is a systematic collection of small units of information (data). For example: - An organized list of all the students of a school along with their data (Name, Phone Number, Birthday, etc.) is referred to as a database.

What is an RDBMS(Relational Database Management System)?

RDBMS Stands for Relational DataBase Management System and is a collection of tools that allow users to organize, manipulate, and visualize databases. RDMBS follows some standards that allow for the fastest response from a database and make it easier for humans to interact with a database.

Think of an RDBMS as a tool that allows you to play with your data and generate insights or value from the database.

What is SQL(Structured Query Language)?

Now that you understand what a database is and what a DBMS is, let's understand what SQL is.

To recap, a database is a collection of data and an RDBMS is a tool that allows you to interact with your data. Therefore, you would need a "language" to communicate with the database that humans and computers can understand, and that language is known as SQL.

Odoo CMS - a big picture

SQL stands for Structured Query Language. As the name suggests, it is a structured language via which you can query the database for performing various tasks such as Storing, Manipulating, and retrieving data from a database.

SQL is the standard language when it comes to communicating with powerful relational databases such as Oracle, Sybase, Microsoft SQL Server, Access, Ingres, etc. Anything related to data in relational databases such as creating tables, limiting access to data, sorting, filtering, grouping, etc. is achieved using SQL.

In this SQL cheatsheet, we will be learning everything there is to learn about SQL.

SQL v/s MySQL: Difference Between Both

Most beginners usually get confused between the two terms - SQL and MySQL, and sometimes use the two interchangeably. However, there is a clear and vast difference between the two.

As defined earlier, SQL is a language that allows one to communicate with the database. MySQL on the other hand is an RDBMS in which you can type SQL commands to interact with the database.

SQL is the language/protocol that is used by relational database management systems to allow users to manipulate data in the database.

MySQL is a database management system that provides users with an interface to connect with databases. MySQL provides users with the ability to create various databases, tables, stored procedures, functions in their database servers. SQL is the language that is used to perform powerful operations on the database.

In this SQL Cheat Sheet, we would be looking at both SQL and MySQL which would help clarify the difference.

What Can SQL do?

SQL is a powerful programming language that allows you to communicate with the database. Almost all companies use databases to store and retrieve data in some form or the other.

Using SQL, you create Databases, and inside a database, you create various TABLES in which you can add all your data. Using SQL, you can:

  1. Create / Delete Databases
  2. Create / Delete Table(s) in a database
  3. SELECT particular data from table(s)
  4. INSERT data into tables
  5. UPDATE data in tables
  6. DELETE data from tables
  7. Create Views in the database
  8. Execute various aggregate functions

and tons of other cool stuff. So, let's see how we can harness this power.

How to get started with SQL?

To get started with writing SQL on your computer, you would need to install a Database Management Server. The RDBMS would then give you all the necessary tools to interact with your database.

There are various RDBMS that you can use, and it doesn't matter (much) what system you choose as long as it's working for you. Some of the most common RDBMS are:

  1. MySQL
  2. Oracle
  3. Microsoft SQL Server
  4. PostgreSQL
  5. Heidi SQL

Just install any of the RDBMS that you like from their official website and you should be able to create a database server by simply following their instructions. Once you have a database server ready, you can get access to a Query Editor where you can type all your SQL queries.

Now, let's get started with our cheat sheet and learn some SQL basics and SQL syntax to get the ball rolling.

Working with Tables

To work with SQL, you need to understand that data is organized into tables. One database would contain all the data for a single application (in most cases). A single database would have multiple tables that store values.

Odoo CMS - a big picture

For example:- If you have a restaurant management application or implemented E-Delivery solution for smooth operations, you would have a database that contains tables such as:

  1. Customers
  2. Orders
  3. Menu Items
  4. Receipts
  5. Combox

etc. Each table would contain a specific type of data and various tables could have different types of relations. Using SQL relations, we can combine values from different tables to fetch the data that we require. (More on relations in a later section)

To create a table, we would require two things. Firstly, we would need all the fields that we want to store in a table. Secondly, we want to define the type of data that would enter into a table.

Let's take the restaurant management application's Customers table as an example. We want to store some information about each of our customers such as their name, Phone Number, and Postal Code. Now that we are done with the first step, we need to define the data types of these values.

The name of a customer would be of character data type because we need to store alphabetical characters. Similarly, the phone number would be characters again because we would need to store country code, and special characters such as '+', '()', etc. The postal code would be of type integer because we need to store numbers. Here is how the table would look like:

NamePhonePostal Code
varchar(50)
varchar(15)
integer

To identify each customer uniquely, we add an ID to them so that we can use this ID to connect data from various tables. So, the final table structure could look something like this.

ID
Name
Phone
Postal Code
INTEGER
VARCHAR(50)
VARCHAR(15)
INTEGER

To create this table, we would use the CREATE SQL Command followed by the fields as follows:

CREATE TABLE customers(

ID INT NOT NULL,

name varchar(50),

phone varchar(15),

postalCode INT

);

To delete this table, we would use the DROP command as follows:

DROP TABLE customers;

SQL Data Types for Server

To create tables for manipulating data effectively, we need to work with the correct data type. Let's say we want to work with dates, it would be easier to create a column for holding DATE type values instead of storing them as a string and writing logic to manipulate the values.

Odoo CMS - a big picture

Every RDBMS is different and each RDBMS might have a different data type for working with certain values. The following sections of this SQL Cheat Sheet contain the various types of MySQL data types.

String Data Types

Data Type
Description
CHAR(size)
A fixed-length string that can contain numbers, letters, and special characters. The string length is from 0 - 255
VARCHAR(size)
Variable-length string similar to CHAR(), but with a length from 0 to 65535.
TEXT(size)
Holds a string of a maximum of 65,536 bytes.
TINY TEXTHolds a string of a maximum of 255 characters.
MEDIUM TEXTHolds a string with a maximum length of 16,777,215 characters.
LONG TEXT
Holds a string with a maximum length of 4,294,967,295 characters.
BINARY(size)
Similar to CHAR() but stores binary byte strings.
VARBINARY(size)
Similar to VARCHAR() but for binary byte strings.
BLOB(size)
For holding blobs of up to 65,536 bytes.
TINYBLOB
Used for BLOBs (Binary Large Objects). Has a max length of 255 bytes.
MEDIUMBLOB
Holds blobs of up to 16,777,215 bytes.
LONGBLOB
Holds blobs of size up to 4,294,967,295 bytes.
ENUM(val1,val2,…)
A string object that can have only one value is chosen from a list of possible values of up to 65535 values in an ENUM list. If the value inserted is not in the list, a blank value will be inserted.
SET(val1,val2,…)
A string object that can have 0 or more values, chosen from a list of possible values. You can list up to 64 values in a SET list.

Numeric Data Types

Data Type
Description
BIT(size)
A bit-value type. The size parameter can hold a value from 1 to 64. The default value for size is 1.
INT(size)
A medium integer with a signed range of -2147483648 to 2147483647, and an unsigned range from 0 to 4294967295.
TINYINT(size)
A very small integer. The signed range is from -128 to 127. The unsigned range is from 0 to 255.
SMALLINT(size)
A small integer. The signed range is from -32768 to 32767. The unsigned range is from 0 to 65535.
MEDIUMINT(size)
A medium integer. The signed range is from -8388608 to 8388607. The unsigned range is from 0 to 16777215.
BIGINT(size)
A large integer. The signed range is from -9223372036854775808 to 9223372036854775807. The unsigned range is from 0 to 18446744073709551615.
BOOL/BOOLEAN
Zero values are considered as FALSE and non-zero values are considered as TRUE.
FLOAT(p)
A floating-point value. If the precision parameter(p) is between 0 to 24, the data type is set to FLOAT(), and if it's from 25 to 53, the data type is set to DOUBLE(). This makes the storage of values more efficient.
DOUBLE(size,d)
A floating-point number value where the total digits are set by the size parameter,

and the number of digits after the decimal point is set by the d parameter.


DEC(size,d)/ DECIMAL(size,d)
An exact fixed-point number with the total number of digits set by the size parameters, and the total number of digits after the decimal point set by the d parameter. For size, the maximum number is 65 and the default is 10, while for d, the maximum number is 30 and the default being 10.

Note: All the numeric data types may have an extra option: UNSIGNED or ZEROFILL. If you add the UNSIGNED/ZEROFILL option, MySQL disallows negative values for the column.

Date/Time Data Types

Data Type
Description
DATE
A simple date in YYYY-MM–DD format, supporting a range from ‘1000-01-01’ to ‘9999-12-31’.
TIME(fsp)
A time in hh:mm:ss format, with a supported range from ‘-838:59:59’ to ‘838:59:59’
DATETIME(fsp)
A date and time combination in YYYY-MM-DD hh:mm:ss format. The supported range is from '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
TIMESTAMP(fsp)
A Unix Timestamp, which is a value relative to the number of seconds since the Unix epoch (‘1970-01-01 00:00:00’ UTC). This has a supported range from ‘1970-01-01 00:00:01’ UTC to ‘2038-01-09 03:14:07’ UTC.
YEAR
A year in four-digit format with the range as - 1901 to 2155

CRUD Operations with SQL

Now that we have our table(s) ready, let's see how we can store and retrieve data from the tables in our database. In the following sections of this SQL Basics Cheat Sheet, we would look at the most basic SQL operations.

Odoo CMS - a big picture

CRUD is an acronym that stands for Create, Read, Update, and Delete. These are the most fundamental operations that one can perform on any database. For creating any application, these 4 types of operations are crucial. They are:-

  1. INSERT (Create)
  2. SELECT (Read)
  3. UPDATE (Update)
  4. DELETE (Delete)

INSERT

To insert data into any table, we use the INSERT INTO statement. The general syntax for insert is:

INSERT INTO table_name(column1,column2,...)

       VALUES(val1,val2,...);

To insert data into our customer's table, we would use the following statement:

INSERT INTO customers(ID,name,phone,postalCode)

      VALUES(1,'Alice','+123456789',123456);

SELECT

To read data from a table, we would use the Select statement where we define the columns that we want to fetch. The general syntax is:

SELECT column1,column2,.. FROM table_name;

If we wanted to select the name and phone number of a customer from our table, we would use:

SELECT name, phone FROM customers;

Also, to read all the columns from our table, we can replace the column names with * as follows:

SELECT * FROM customers;

UPDATE

To update specific column(s) of specific row(s), we make use of the Update statement. The general syntax for an update statement is:

UPDATE table_name

  SET column1=value1,column2=value2,...

  WHERE conditions...;

For example, if we wanted to update the phone number of a customer that has an ID of 2, we would write our query as:

UPDATE customers

  SET phone='+2223334445'

  WHEREID=2;

We can update multiple columns by adding them to the SET statement and we can target multiple rows by adding them to the WHERE statement. We will look at WHERE in detail in later sections of this SQL commands cheat sheet.

DELETE

If we wanted to remove some rows from a table, we would use the delete statement. The general syntax is:

DELETE FROM table_name

    WHERE condition...;

Let's say we want to remove all the customers who live in a particular area. So, we simply delete those rows that have a specific area code:

DELETE FROM customers

    WHERE postalCode=223344;

List of useful SQL Keywords

In the following section of this SQL Server Cheat Sheet, we will have a look at all the commands/keywords that we can use in SQL to work with data, tables, and databases.

Odoo CMS - a big picture


Keyword
Description
ADD
Add a new column to an existing table. Eg: ALTER TABLE customers ADD email_address VARCHAR(255);
ALTER TABLE

Adds, deletes, or edits columns/constraints in a table. Eg: ALTER TABLE customers DROP COLUMN email_address;

ALTER COLUMN
Changes the data type of a table’s column. Eg: ALTER TABLE customers ALTER COLUMN phone varchar(50)
AS
Renames a table or column with an alias value that only exists for the duration of the query. Eg: SELECT name AS customer_name, phone, postalCode FROM customers;
ASC
Used with ORDER BY to return the data in ascending order.
CHECK
Adds a constraint that limits the value which can be added to a column. Eg: CREATE TABLE Users(firstName varchar(255),age INT, CHECK(age>10));
CREATE DATABASE
Creates a new database. Eg: CREATE DATABASE my website;
CREATE TABLE
Creates a new table. Eg: CREATE TABLE users (id int,firsr_name varchar(255), surname varchar(255), address varchar(255), contact_number int);
DEFAULT
Set the default value for a column. Eg: CREATE TABLE products(ID int, name varchar(255) DEFAULT 'Username', from date DEFAULT GETDATE());
DELETE
Delete values from a table. DELETE FROM users WHERE user_id= 674;
DESC
Used with ORDER BY to return the data in descending order.
DROP COLUMN
Deletes a column from a table. ALTER TABLE users DROP COLUMN first_name;
DROP DATABASE
Deletes a complete database along with all the tables and data inside. Eg: DROP DATABASE my website;
DROP DEFAULT
Removes a default value for a column. Eg: ALTER TABLE products ALTER COLUMN name DROP DEFAULT;
DROP TABLE
Delete a table from a database. Eg: DROP TABLE customers;
FROM
Specifies which table to select or delete data from. Eg: SELECT * FROM customers;
IN
Used with a WHERE clause as a shorthand for multiple OR conditions. Eg: SELECT * FROM users WHERE country IN('USA', 'United Kingdom','Russia');
IS NULL
Tests for empty (NULL) values. Eg: SELECT * FROM users WHERE phone IS NULL;
IS NOT NULL
Opposite of IS NULL. Tests for values that are not null.
LIKE
Returns true if the operand value matches a pattern. SELECT * FROM users WHERE first_name LIKE '%son';
ORDER BY
Used to sort the resultant data in ascending (default) or descending order.
SELECT DISTINCT
Same as SELECT, except duplicate values are excluded. Eg: SELECT DISTINCT postalCode from customers;
TOP
Used alongside SELECT to return a set number of records from a table. Eg: SELECT TOP 5 * FROM customers;
VALUES
Used alongside the INSERT INTO keyword to add new values to a table. Eg: INSERT INTO cars (name, model, year) VALUES ('Ford', 'Fiesta', 2010);
WHERE
Filters result only includes data that meets the given condition. SELECT * FROM orders WHERE quantity > 1;

Operators in SQL

SQL has various operators that allow you to manipulate and compare multiple values. These are very useful and handy while creating queries.

Odoo CMS - a big picture
SQL Arithmetic Operators

Operator
Description
+
Addition
-
Subtraction
*
Multiply
/
Divide
%
Modulo
SQL Bitwise Operators

Operator
Description
&
Bitwise AND
|
Bitwise OR
^
Bitwise Exclusive OR
SQL Comparison Operators

Operator
Description
=
Equal to
>
Greater Than
<
Less Than
>=
Greater than or equal to
<=
Less than or equal to
<>
Not Equal to
SQL Compound Operators

Operator
Description
+=
Add Equals
-=
Subtract Equals
*=
Multiply Equals
/=
Divide Equals
%=
Modulo Equals
&=
Bitwise AND Equals
^-=
Bitwise Exclusive Equals
|*=
Bitwise OR Equals
SQL Logical Operators

Operator
Description
ALL
TRUE if all of the subquery values meet the condition
AND
TRUE if all the conditions separated by AND is TRUE
ANY
TRUE if any of the subquery values meet the condition
BETWEEN
TRUE if the operand is within the range of comparisons
EXISTS
TRUE if the subquery returns one or more records
IN
TRUE if the operand is equal to one of a list of expressions
LIKE
TRUE if the operand matches a pattern
NOT
Displays a record if the condition(s) is NOT TRUE
OR
TRUE if any of the conditions separated by OR is TRUE
SOME
TRUE if any of the subquery values meet the condition

SQL Keys

In a database, different tables store different values and these values are related to each other. To identify each row uniquely, we make use of SQL keys. An SQL key is either a single column (or attribute) or a group of columns that can uniquely identify rows in a table. SQL Keys ensures that there aren't any rows with duplicate values.

Odoo CMS - a big picture

However, the most powerful use of keys is to establish relations between multiple tables in a database. To do so, we need to understand Primary Key and Foreign Key. The following sections of this SQL cheatsheet explain both of these concepts.

Primary Key

It is a key that uniquely identifies a single row in a table. For example, in a customer's table, the ID key can be used as a primary key to uniquely identify a single customer. This key can then be used to fetch data from multiple tables that have data related to the customer.

Key Points:
  1. There can only be One Primary Key for a Table.
  2. Primary Key should be unique for Each Row.
  3. Primary key cannot have Null Values.

Typically, the primary key in a table is the ID column and is usually paired with the AUTO_INCREMENT keyword to uniquely identify the row. To mark a column as the primary key, we use the PRIMARY KEY keyword followed by the column/columns that consist of the primary key. For Example: -

CREATE TABLE users (
    id int NOT NULL AUTO_INCREMENT,
    first_name varchar(255) NOT NULL,
    last_name varchar(255) NOT NULL,
    address varchar(255),
    email varchar(255) NOT NULL,
    PRIMARY KEY (id)
);

Foreign Key

A foreign key is a field in a table that references the PRIMARY KEY of another table. A foreign key is used to link two tables together by establishing a relationship.

The table that contains the foreign key is known as the child table, while the table containing the primary key for the foreign key is known as the parent table.

For example: Let's say we have 3 different tables to manage a restaurant - products, users, and orders. In our products table, we list all our products and in the user's table, we have details of all our users. When a user places an order, we save the data in the orders table. But, instead of saving the complete details of the product and all the information of the user, we save their primary keys in the orders table.

CREATE TABLE orders(
       order_id INT NOT NULL,
       user_id INT,
       product_id int,
       PRIMARY KEY(order_id),
       FOREIGN KEY(user_id) REFERENCES users(id),
       FOREIGN KEY(product_id) REFERENCES products(id)
    );

Here, we create a primary key for the order ID as it uniquely identifies an order. Also, we create two foreign keys that reference different primary keys.

SQL Joins

Once you understand Primary Key and Foreign Key, you can use joins to fetch data by combining multiple tables. Let's take the orders, customers, and products table as an example.

Odoo CMS - a big picture


Products:

product_id
product_name
price
1
Burger
10
2
Sandwich
15
Customers:

customer_id
customer_name
email
1
Alice
alice@alice.com
2
Bob
bob@bob.com
Orders:

order_id
customer_id
product_id
1
1
1
2
1
2
3
2
1

We can join the orders table with customers and products table to get only the information that we require. Let's say we want to see all the orders with the customer's name, product name, and product price as follows:

order_id
product_name
customer_name
price
1
Burger
Alice
10
2
Sandwich
Alice
15
3
Burger
Bob
10

To do so, we would use join in SQL as follows:

SELECT orders.order_id, products.product_name,customers.customer_name,products.price
FROM orders
INNER JOIN products ON products.product_id = order.product_id
INNER JOIN customers on customers.customer_id = order.customer_id;

SQL has Different Types of Joins that Help Achieve Different Results:

  1. INNER JOIN - Returns any records which have matching values in both tables.
  2. LEFT JOIN - Returns all of the records from the first table, along with any matching records from the second table
  3. RIGHT JOIN - Returns all of the records from the second table, along with any matching records from the first
  4. FULL JOIN - Returns all records from both tables when there is a match

SQL Cheatsheet for SELECT Queries

1. Retrieve specific columns

SELECT userId,name,age,phone,country FROM Users;

2. Retrieve all Columns

SELECT * FROM Users;

3. Retrieve Filtered Rows

SELECT * FROM Users WHERE age>18;

4. Retrieve Distinct Rows

SELECT DISTINCT country from Users;

5. Count the Filtered Rows

SELECT COUNT(*) FROM users WHERE age>18;

6. Sort Rows Based on Criteria

SELECT * FROM Users ORDER BY userId ASC/DESC;

Note: You can use ASC for Ascending Order or DESC for descending order. If nothing is specified, sorting is done in Ascending order(ASC).

7. Retrieve Limited Rows
SELECT * FROM Users WHERE country=’india’ LIMIT 20;

8. Retrieve and Skip/Offset Rows

SELECT * FROM Users ORDER BY userId OFFSET 10 ROWS;

9. Get Average, Sum, Max, Min, etc. of Results

SELECT AVG(age) FROM USERS;

10. Get all Values from two Tables

SELECT * FROM Users INNER JOIN Wallets ON Users.walletId = Wallets.walletId;

Note:- We can use any type of join that we want. The condition via which we want to join the tables needs to be specified after the ON keyword.

11. Get selected values from two tables

SELECT us.userId,us.name,wall.walletId,wall.balance
FROM Users AS us
INNER JOIN Wallets AS wall

Note: - We use the AS keyword to give an alias to a table to make our SELECT statement shorter. We can even eliminate the AS keyword in this case and simply write the Alias after the table name.

SQL Cheatsheet for INSERT Queries

1. Insert All Values in Order a Table

INSERT INTO Users VALUES(‘Kanak Infosystems’,’sales@kanakinfosystems.com’,9876543210);

2. Insert Selected Values in a Table

INSERT INTO Users(userName,email) VALUES(‘Kanak Infosystems’,’sales@kanakinfosystems.com’);

3. Insert Multiple Rows
INSERT INTO User(userName) VALUES
(‘user1’),
(‘user2’);

Note: - We separate each row with a pair of brackets followed by a comma.

SQL Cheatsheet for TABLE Queries

1. Create a New Table
CREATE TABLE Users(
	id INT PRIMARY KEY,
	userName VARCHAR(50),
	age INT DEFAULT 10
     );
2. Delete a Table

DROP TABLE Users;

3. Remove all Values from a Table

TRUNCATE TABLE Users;

4. Add a Column to the Table

ALTER TABLE Users ADD COLUMN country VARCHAR(20);

5. Remove a Column from a Table

ALTER TABLE Users DROP COLUMN country;

6. Rename a Table

ALTER TABLE Users RENAME TO Customers;

7. Rename a Column

ALTER TABLE Users RENAME userName to name;

SQL Cheat Sheet for UPDATE/DELETE Queries

1. Update Column Value for all Rows

UPDATE Users SET country=’india’;

2. Update Column Value for Selected Rows

UPDATE Users SET isEligible=’true’ WHERE age>=18;

3. Delete all Rows

DELETE FROM Users;

4. Delete Specific Rows

DELETE FROM Users WHERE age<18;

SQL Cheat Sheet for SELECT Filters

1. Filter by Multiple Matching Conditions

SELECT * FROM Users WHERE age>=18 AND country=’india’;

2. Filter Rows by Multiple Parallel Conditions

SELECT * FROM Users WHERE country=’india’ OR name LIKE ‘Kan%’;

3. Filter Rows Based on Values in a List

SELECT * FROM Users WHERE age IN (15,18,22,27);

4. Filter Rows with Values in a Range

SELECT * FROM Users WHERE age BETWEEN 25 AND 30

Conclusion

SQL is a definite requirement when you are trying to build an application of any size and scale. Learning SQL might be tough for beginners, but once you get the hang of it, it's just like thinking.

Make sure to bookmark this page and download the SQL cheat sheet pdf if you are working with SQL. If you can remember a particular operation or keyword, you can open up this SQL commands cheat sheet to get all the required information.