Best Tutorial
Best Tutorial
Share
Sahiti Kappagantula
Bookmark
In the era where data is being generated in humongous amounts, there is a constant need to handle
data in databases. Relational databases are one of the most popular databases, and SQL is the basis of
relational databases. Therefore SQL skills are indispensable in most of the job roles. In this article on SQL
Commands, I will discuss the top commands and statements that you need to understand in SQL.
The topics covered in this blog are mainly divided into 4 categories:
Data Definition Language(DDL) – Consists of commands which are used to define the database.
Data Control Language(DCL) – Consists of commands which deal with the user permissions and
controls of the database system.
Transaction Control Language(TCL) – Consist of commands which deal with the transaction of
the database.
Apart from the above commands, the following topics will also be covered in this article:
Comments in SQL
Nested Queries
Joins
Set Operations
Views
Stored Procedures
Triggers
In this article on SQL Commands, I am going to consider the below database as an example, to show you
how to write commands.
Emergency
EmployeeID EmployeeName PhoneNumber Address City Country
ContactName
Oberoi
01 Shanaya Abhinay 9898765612 Mumbai India
Street 23
Marathalli
02 Anay Soumya 9432156783 House No Delhi India
23
Queens
03 Preeti Rohan 9764234519 Bangalore India
Road 45
Brigade
04 Vihaan Akriti 9966442211 Road Block Hyderabad India
4
Mayo Road
05 Manasa Shourya 9543176246 Kolkata India
23
Comments in SQL
There are two ways in which you can comment in SQL, i.e. either the Single-Line Comments or the Multi-
Line Comments.
Single-Line Comments
The single line comment starts with two hyphens (–). So, any text mentioned after (–), till the end of a
single line will be ignored by the compiler.
Example:
1 --Select all:
Multi-Line Comments
The Multi-line comments start with /* and end with */. So, any text mentioned between /* and */ will
be ignored by the compiler.
Example:
This section of the article will give you an insight into the commands through which you can define your
database. The commands are as follows:
CREATE
DROP
TRUNCATE
ALTER
BACKUP DATABASE
CREATE
Syntax
Example
Syntax
Column1 datatype,
Column2 datatype,
Column3 datatype,
....
ColumnN datatype
);
Example
2 (
3 EmployeeID int,
4 EmployeeName varchar(255),
6 PhoneNumber int,
7 Address varchar(255),
8 City varchar(255),
9 Country varchar(255)
10 );
You can also create a table using another table. Refer the below sytax and example:
Syntax
FROM ExistingTableName
WHERE ....;
Example
3 FROM Employee_Info;
DROP
This statement is used to drop an existing database. When you use this statement, complete
information present in the database will be lost.
Syntax
Example
This statement is used to drop an existing table. When you use this statement, complete information
present in the table will be lost.
Syntax
Example
TRUNCATE
This command is used to delete the information present in the table but does not delete the table. So,
once you use this command, your information will be lost, but not the table.
Syntax
Example
ALTER
This command is used to delete, modify or add constraints or columns in an existing table.
The ‘ALTER TABLE’ Statement
You can use the ALTER TABLE statement with ADD/DROP Column command according to your need. If
you wish to add a column, then you will use the ADD command, and if you wish to delete a column, then
you will use the DROP COLUMN command.
Syntax
ALTER TABLE TableName
ADD ColumnName Datatype;
ALTER TABLE TableName
Example
2
3 ALTER TABLE Employee_Info
5
7
8 ALTER TABLE Employee_Info
Syntax
ALTER TABLE TableName
ALTER COLUMN ColumnName Datatype;
Example
3 ALTER TABLE Employee_Info
4 ADD DOB year;
5
6 ALTER TABLE Employee_Info
7 ALTER DOB date;
BACKUP DATABASE
Syntax
TO DISK = 'filepath';
Example
2 TO DISK = 'C:UsersSahitiDesktop';
You can also use a differential back up. This type of back up only backs up the parts of the database,
which have changed since the last complete backup of the database.
Syntax
TO DISK = 'filepath'
WITH DIFFERENTIAL;
Example
2 TO DISK = 'C:UsersSahitiDesktop'
3 WITH DIFFERENTIAL;
Now that you know the data definition commands, let me take you through the various types of Keys
and Constraints that you need to understand before learning how to manipulate the databases.
There are mainly 7 types of Keys, that can be considered in a database. I am going to consider the below
tables to explain to you the various keys.
Candidate Key – A set of attributes which can uniquely identify a table can be termed as a
Candidate Key. A table can have more than one candidate key, and out of the chosen candidate
keys, one key can be chosen as a Primary Key. In the above example, since EmployeeID,
InsuranceNumber and PanNumber can uniquely identify every tuple, they would be considered
as a Candidate Key.
Super Key – The set of attributes which can uniquely identify a tuple is known as Super Key. So,
a candidate key, primary key, and a unique key is a superkey, but vice-versa isn’t true.
Primary Key – A set of attributes which are used to uniquely identify every tuple is also a
primary key. In the above example, since EmployeeID, InsuranceNumber and PanNumber are
candidate keys, any one of them can be chosen as a Primary Key. Here EmployeeID is chosen as
the primary key.
Alternate Key – Alternate Keys are the candidate keys, which are not chosen as a Primary key.
From the above example, the alternate keys are PanNumber and Insurance Number.
Unique Key – The unique key is similar to the primary key, but allows one NULL value in the
column. Here the Insurance Number and the Pan Number can be considered as unique keys.
Foreign Key – An attribute that can only take the values present as the values of some other
attribute, is the foreign key to the attribute to which it refers. in the above example, the
Employee_ID from the Employee_Information Table is referred to the Employee_ID from the
Employee_Salary Table.
Composite Key – A composite key is a combination of two or more columns that identify each
tuple uniquely. Here, the Employee_ID and Month-Year_Of_Salary can be grouped together to
uniquely identify every tuple in the table.
Constraints are used in a database to specify the rules for data in a table. The following are the different
types of constraints:
NOT NULL
UNIQUE
CHECK
DEFAULT
INDEX
NOT NULL
Example
2
4 (
9 Address varchar(255),
10 City varchar(255),
11 Country varchar(255)
12 );
13
UNIQUE
This constraint ensures that all the values in a column are unique.
Example
2
4 (
9 Address varchar(255),
10 City varchar(255),
11 Country varchar(255)
12 );
13
15
17 (
22 Address varchar(255),
23 City varchar(255),
24 Country varchar(255),
26 );
27
29
30 ALTER TABLE Employee_Info
31 ADD UNIQUE (Employee_ID);
32
34
35 ALTER TABLE Employee_Info
36 DROP CONSTRAINT UC_Employee_Info;
CHECK
This constraint ensures that all the values in a column satisfy a specific condition.
Example
2
4 (
6 EmployeeName varchar(255),
8 PhoneNumber int,
9 Address varchar(255),
10 City varchar(255),
13
15
17 (
19 EmployeeName varchar(255),
21 PhoneNumber int,
22 Address varchar(255),
23 City varchar(255),
25 );
26
28
31
33
36
38
DEFAULT
This constraint consists of a set of default values for a column when no value is specified.
Example
2
4 (
6 EmployeeName varchar(255),
8 PhoneNumber int,
9 Address varchar(255),
10 City varchar(255),
12 );
13
15
16 ALTER TABLE Employee_Info
17 ADD CONSTRAINT defau_Country
18 DEFAULT 'India' FOR Country;
19
21
22 ALTER TABLE Employee_Info
23 ALTER COLUMN Country DROP DEFAULT;
INDEX
This constraint is used to create indexes in the table, through which you can create and retrieve data
from the database very quickly.
Syntax
Example
2 ON Persons (EmployeeName);
3
5
Now, let us look into the next part of this article i.e. DML Commands.
This section of the article will give you an insight into the commands through which you can manipulate
the database. The commands are as follows:
Explore Curriculum
USE
INSERT INTO
UPDATE
DELETE
SELECT
Apart from these commands, there are also other manipulative operators/functions such as:
Operators
Aggregate Functions
NULL Functions
USE
The USE statement is used to select the database on which you want to perform operations.
Syntax
USE DatabaseName;
Example
1 USE Employee;
INSERT INTO
Syntax
--If you don't want to mention the column names then use the below syntax
2 VALUES ('06', 'Sanjana','Jagannath', '9921321141', 'Camel Street House No 12', 'Chennai', 'India');
3
UPDATE
This statement is used to modify the records already present in the table.
Syntax
UPDATE TableName
WHERE Condition;
Example
1 UPDATE Employee_Info
3 WHERE EmployeeID = 1;
DELETE
Syntax
Example
2 WHERE EmployeeName='Preeti';
SELECT
This statement is used to select data from a database and the data returned is stored in a result table,
called the result-set.
Syntax
FROM TableName;
--(*) is used to select all from the table
Example
2 FROM Employee_Info;
3
6
Apart from just using the SELECT keyword individually, you can use the following keywords with the
SELECT statement:
DISTINCT
ORDER BY
GROUP BY
HAVING Clause
INTO
Syntax
FROM TableName;
Example
1 SELECT DISTINCT PhoneNumber FROM Employee_Info;
The ‘ORDER BY’ statement is used to sort the required results in ascending or descending order. The
results are sorted in ascending order by default. Yet, if you wish to get the required results in descending
order, you have to use the DESC keyword.
Syntax
FROM TableName
Example
3 ORDER BY EmergencyContactName;
4
5 -- Select all employees from the 'Employee_Info' table sorted by EmergencyContactName in Descending order:
8
9 -- Select all employees from the 'Employee_Info' table sorted by EmergencyContactName and EmployeeName:
12
13 /* Select all employees from the 'Employee_Info' table sorted by EmergencyContactName in Descending order an
This ‘GROUP BY’ statement is used with the aggregate functions to group the result-set by one or more
columns.
Syntax
WHERE Condition
GROUP BY ColumnName(s)
ORDER BY ColumnName(s);
Example
2
4 FROM Employee_Info
5 GROUP BY City;
The ‘HAVING’ clause is used in SQL because the WHERE keyword cannot be used everywhere.
Syntax
SELECT ColumnName(s)
FROM TableName
WHERE Condition
GROUP BY ColumnName(s)
HAVING Condition
ORDER BY ColumnName(s);
Example
1 /* To list the number of employees in each city. The employees should be sorted high to low and only
2
4 FROM Employee_Info
5 GROUP BY City
The ‘SELECT INTO’ statement is used to copy data from one table to another.
Syntax
SELECT *
FROM OldTable
WHERE Condition;
Example
3 FROM Employee;
4
7 FROM Employee;
8
10 FROM Employee
Now, as I mentioned before, let us move onto our next section in this article on SQL Commands, i.e. the
Operators.
Operators in SQL
Arithmetic Operators
Operator Description
% Modulous [A % B]
/ Division [A / B]
* Multiplication [A * B]
– Subtraction [A – B]
+ Addition [A + B]
Bitwise Operators
Operator Description
| Bitwise OR [A | B]
Comparison Operators
Operator Description
= Equal to [A = B]
Compound Operators
Operator Description
%= Modulo equals [A %= B]
/= Divide equals [A /= B]
*= Multiply equals [A*= B]
-= Subtract equals [A-= B]
+= Add equals [A+= B]
Logical Operators
AND
OR
NOT
BETWEEN
LIKE
IN
EXISTS
ALL
ANY
AND Operator
This operator is used to filter records that rely on more than one condition. This operator displays the
records, which satisfy all the conditions separated by AND, and give the output TRUE.
Syntax
FROM TableName
Example
OR Operator
This operator displays all those records which satisfy any of the conditions separated by OR and give the
output TRUE.
Syntax
FROM TableName
Example
NOT Operator
The NOT operator is used, when you want to display the records which do not satisfy a condition.
Syntax
FROM TableName
Example
NOTE: You can also combine the above three operators and write a query as follows:
1 SELECT * FROM Employee_Info
NOTE: You can also combine the above three operators and write a query as follows:
BETWEEN Operator
The BETWEEN operator is used, when you want to select values within a given range. Since this is an
inclusive operator, both the starting and ending values are considered.
Syntax
SELECT ColumnName(s)
FROM TableName
Example
LIKE Operator
The LIKE operator is used in a WHERE clause to search for a specified pattern in a column of a table.
There are mainly two wildcards that are used in conjunction with the LIKE operator:
Syntax
SELECT ColumnName(s)
FROM TableName
Refer to the following table for the various patterns that you can mention with the LIKE operator.
WHERE CustomerName LIKE ‘v% Finds any values that start with “v”
WHERE CustomerName LIKE ‘%v’ Finds any values that end with “v”
WHERE CustomerName LIKE ‘%and%’ Finds any values that have “and” in any position
WHERE CustomerName LIKE ‘_q%’ Finds any values that have “q” in the second position.
Finds any values that start with “u” and are at least 3
WHERE CustomerName LIKE ‘u_%_%’
characters in length
WHERE ContactName LIKE ‘m%a’ Finds any values that start with “m” and end with “a”
Example
IN Operator
This operator is used for multiple OR conditions. This allows you to specify multiple values in a WHERE
clause.
Syntax
SELECT ColumnName(s)
FROM TableName
Example
EXISTS Operator
Syntax
SELECT ColumnName(s)
FROM TableName
WHERE EXISTS
Example
1 SELECT EmergencyContactName
2 FROM Employee_Info
3 WHERE EXISTS (SELECT EmergencyContactName FROM Employee_Info WHERE EmployeeId = 05 AND City = 'Kolkata
ALL Operator
The ALL operator is used with a WHERE or HAVING clause and returns TRUE if all of the subquery values
meet the condition.
Syntax
SELECT ColumnName(s)
FROM TableName
Example
1 SELECT EmployeeName
2 FROM Employee_Info
3 WHERE EmployeeID = ALL (SELECT EmployeeID FROM Employee_Info WHERE City = 'Hyderabad');
ANY Operator
Similar to the ALL operator, the ANY operator is also used with a WHERE or HAVING clause and returns
true if any of the subquery values meet the condition.
Syntax
SELECT ColumnName(s)
FROM TableName
Example
1 SELECT EmployeeName
2 FROM Employee_Info
3 WHERE EmployeeID = ANY (SELECT EmployeeID FROM Employee_Info WHERE City = 'Hyderabad' OR City = 'Kolkata'
Next, in this article on SQL Commands, let us look into the various Aggregate Functions provided in SQL.
Aggregate Functions
MIN()
MAX()
COUNT()
SUM()
AVG()
MIN() Function
The MIN function returns the smallest value of the selected column in a table.
Syntax
SELECT MIN(ColumnName)
FROM TableName
WHERE Condition;
Example
2 FROM Employee_Info;
MAX() Function
The MAX function returns the largest value of the selected column in a table.
Syntax
SELECT MAX(ColumnName)
FROM TableName
WHERE Condition;
Example
2 FROM Employee_Salary;
COUNT() Function
The COUNT function returns the number of rows which match the specified criteria.
Databases Training
Reviews
5(10391)
Reviews
5(6309)
Reviews
4(16193)
Reviews
5(12693)
Reviews
5(2837)
5(998)
Next
Syntax
SELECT COUNT(ColumnName)
FROM TableName
WHERE Condition;
Example
1 SELECT COUNT(EmployeeID)
2 FROM Employee_Info;
SUM() Function
The SUM function returns the total sum of a numeric column that you choose.
Syntax
SELECT SUM(ColumnName)
FROM TableName
WHERE Condition;
Example
1 SELECT SUM(Salary)
2 FROM Employee_Salary;
AVG() Function
The AVG function returns the average value of a numeric column that you choose.
Syntax
SELECT AVG(ColumnName)
FROM TableName
WHERE Condition;
Example
1 SELECT AVG(Salary)
2 FROM Employee_Salary;
NULL Functions
The NULL functions are those functions which let you return an alternative value if an expression is
NULL. In the SQL Server, the function is ISNULL().
Example
2 FROM Employee_Salary;
In this section of this article on SQL Commands, you will go through the Aliases and Case statement one
after the other.
Aliases
Aliases are used to give a column/table a temporary name and only exists for a duration of the query.
Syntax
FROM TableName;
SELECT ColumnName(s)
Example
2 FROM Employee_Info;
3
5 FROM Employee_Info;
Case Statement
This statement goes through all the conditions and returns a value when the first condition is met. So, if
no conditions are TRUE, it returns the value in the ELSE clause. Also, if no conditions are true and there
is no ELSE part, then it returns NULL.
Syntax
CASE
ELSE Result
END;
Example
1 SELECT EmployeeName, City
2 FROM Employee_Info
3 ORDER BY
4 (CASE
6 ELSE City
7 END);
Now, that I have told you a lot about DML commands in this article on SQL Commands, let me just tell
you in short about Nested Queries, Joins, Set Operations, and Dates & Auto Increment.
Nested queries are those queries which have an outer query and inner subquery. So, basically, the
subquery is a query which is nested within another query such as SELECT, INSERT, UPDATE or DELETE.
Refer to the image below:
SQL Commands: Joins
JOINS are used to combine rows from two or more tables, based on a related column between those
tables. The following are the types of joins:
INNER JOIN: This join returns those records which have matching values in both the tables.
FULL JOIN: This join returns all those records which either have a match in the left or the right
table.
LEFT JOIN: This join returns records from the left table, and also those records which satisfy the
condition from the right table.
RIGHT JOIN: This join returns records from the right table, and also those records which satisfy
the condition from the left table.
1 10 DevOps 04-01-2019
2 11 Blockchain 06-07-2019
3 12 Python 01-03-2019
INNER JOIN
Syntax
SELECT ColumnName(s)
FROM Table1
Example
2 FROM Technologies
FULL JOIN
Syntax
SELECT ColumnName(s)
FROM Table1
FULL OUTER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;
Example
2 FROM Employee_Info
4 ORDER BY Employee_Info.EmployeeName;
LEFT JOIN
Syntax
SELECT ColumnName(s)
FROM Table1
Example
2 FROM Employee_Info
4 ORDER BY Employee_Info.EmployeeName;
RIGHT JOIN
Syntax
SELECT ColumnName(s)
FROM Table1
Example
1 SELECT Technologies.TechID
2 FROM Technologies
4 ORDER BY Technologies.TechID;
There are mainly three set operations:UNION, INTERSECT, EXCEPT. You can refer to the image below to
understand the set operations in SQL.
UNION
Syntax
UNION
INTERSECT
This clause used to combine two SELECT statements and return the intersection of the data-sets of both
the SELECT statements.
Syntax
FROM TableName
WHERE Condition
INTERSECT
FROM TableName
WHERE Condition
EXCEPT
This operator returns those tuples that are returned by the first SELECT operation, and are not returned
by the second SELECT operation.
Syntax
SELECT ColumnName
FROM TableName
EXCEPT
SELECT ColumnName
FROM TableName;
Next, in this article, let us look into the date functions and auto-increment fields.
In this section of this article, I will explain to you how to use the Date functions and also the Auto-
Increment fields.
Dates
The following data types are present in a SQL Server to store a date or a date/time value in a database.
DATE YYYY-MM-DD
Example
1 SELECT * FROM Technologies WHERE ProjectStartDate='2019-04-01'
Auto Increment
This field generates a unique number automatically when a new record is inserted into a table. The MS
SQL Server uses the IDENTITY keyword for this feature.
Example
1 <span>/* To define the "EmployeeID" column to be an auto-increment primary key field in the "Employee_Info" tab
2
7 <span>);</span>
Now, that you guys know the DML commands, let’s move onto our next section in this article on SQL
Commands i.e. the DCL commands.
This section of the article will give you an insight into the commands which are used to enforce database
security in multiple user database environments. The commands are as follows:
GRANT
REVOKE
GRANT
This command is used to provide access or privileges on the database and its objects to the users.
Syntax
GRANT PrivilegeName
ON ObjectName
where,
WITH GRANT OPTION – To give the user access to grant other users with rights.
Example
REVOKE
This command is used to withdraw the user’s access privileges given by using the GRANT command.
Syntax
REVOKE PrivilegeName
ON ObjectName
Example
Now, next in this article on SQL Commands, I will discuss Views, Stored Procedures, and Triggers.
A view in SQL is a single table, which is derived from other tables. So, a view contains rows and columns
similar to a real table and has fields from one or more table.
Syntax
FROM TableName
WHERE Condition;
Example
3 FROM Employee_Info
Syntax
FROM TableName
WHERE Condition;
Example
3 FROM Employee_Info
Syntax
Example
A code which you can save and reuse it again is known as StoredProcedures.
Syntax
AS
SQLStatement
GO;
Example
1 EXEC ProcedureName;
Triggers are a set of SQL statements which are stored in the database catalog. These statements are
executed whenever an event associated with a table occurs. So, a trigger can be invoked
either BEFORE or AFTER the data is changed by INSERT, UPDATE or DELETE statement. Refer to the
image below.
Syntax
[BEFORE | AFTER]
on [TableName]
[TriggerBody]
Now, let’s move on to the last section of this article on SQL Commands i.e. the Transaction Control
Language Commands.
This section of the article will give you an insight into the commands which are used to manage
transactions in the database. The commands are as follows:
COMMIT
ROLLBACK
SAVEPOINT
COMMIT
Syntax
COMMIT;
ROLLBACK
This command is used to restore the database to the last committed state.
Syntax
ROLLBACK;
NOTE: When you use ROLLBACK with SAVEPOINT, then you can directly jump to a savepoint in an
ongoing transaction. Syntax: ROLLBACK TO SavepointName;
SAVEPOINT
This command is used to temporarily save a transaction. So if you wish to rollback to any point, then
you can save that point as a ‘SAVEPOINT’.
Syntax
SAVEPOINT SAVEPOINTNAME;
Consider the below example to understand the working of transactions in the database.
EmployeeID EmployeeName
01 Ruhaan
02 Suhana
03 Aayush
04 Rashi
Now, use the below SQL queries to understand the transactions in the database.
2 COMMIT;
4 SAVEPOINT S1;
6 SAVEPOINT S2;
8 SAVEPOINT S3;
10 SAVEPOINT S4;
EmployeeID EmployeeName
01 Ruhaan
02 Suhana
03 Aayush
04 Rashi
05 Akash
06 Sanjana
07 Sanjay
08 Veena
Now, if you rollback to S2 using the below queries, the output is mentioned in the below table.
1 ROLLBACK TO S2;
EmployeeID EmployeeName
01 Ruhaan
02 Suhana
03 Aayush
04 Rashi
05 Akash
06 Sanjana
By this, I come to the end of this article on SQL Commands. I hope you enjoyed reading this article on
SQL Commands. We have seen the different commands that will help you write queries and play around
with your databases. If you wish to learn more about MySQL and get to know this open source
relational database, then check out our MySQL DBA Certification Training which comes with instructor-
led live training and real-life project experience. This training will help you understand MySQL in depth
and help you achieve mastery over the subject.
Got a question for us? Please mention it in the comments section of ”SQL Commands” and I will get back
to you.