Chapter 3 SQL Total PDF
Chapter 3 SQL Total PDF
What is SQL?
SQL stands for Structured Query Language
SQL lets you access and manipulate databases
SQL became a standard of the American National Standards Institute (ANSI) in 1986, and
of the International Organization for Standardization (ISO) in 1987
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:
Apart from the above commands, the following topics will also be covered in this article:
Comments in SQL
Different Types Of Keys In Database
Constraints Used In Database
Nested Queries
Joins
Set Operations
Dates & Auto Increment
Views
Stored Procedures
Triggers
Emergency
EmployeeI EmployeeNam PhoneNumb Countr
ContactNam Address City
D e er y
e
Oberoi
01 Shanaya Abhinay 9898765612 Street Mumbai India
23
Marathal
02 Anay Soumya 9432156783 li House Delhi India
No 23
Queens Bangalor
03 Preeti Rohan 9764234519 India
Road 45 e
Brigade
Hyderaba
04 Vihaan Akriti 9966442211 Road India
d
Block 4
Mayo
05 Manasa Shourya 9543176246 Kolkata India
Road 23
So, let’s get started now!
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:
2 SELECT * FROM Employee_Info;
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:
CREATE
DROP
TRUNCATE
ALTER
BACKUP DATABASE
CREATE
Syntax
Syntax
CREATE TABLE TableName (
Column1 datatype,
Column2 datatype,
Column3 datatype,
....
ColumnN datatype
);
Example
1
2 CREATE TABLE Employee_Info
(
3 EmployeeID int,
4 EmployeeName varchar(255),
5 Emergency ContactName varchar(255),
6 PhoneNumber int,
Address varchar(255),
7
City varchar(255),
8 Country varchar(255)
9 );
10
You can also create a table using another table. Refer the below sytax and example:
Syntax
This statement is used to drop an existing database. When you use this statement,
complete information present in the database will be lost.
Syntax
This statement is used to drop an existing table. When you use this statement, complete
information present in the table will be lost.
Syntax
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
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
Syntax
Syntax
Syntax
BACKUP DATABASE DatabaseName
TO DISK = 'filepath'
WITH DIFFERENTIAL;
Example
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.
NOT NULL
UNIQUE
CHECK
DEFAULT
INDEX
NOT NULL
Example
This constraint ensures that all the values in a column are unique.
Example
This constraint ensures that all the values in a column satisfy a specific condition.
Example
This constraint consists of a set of default values for a column when no value is
specified.
Example
1
2 --DEFAULT Constraint on CREATE TABLE
3
4 CREATE TABLE Employee_Info
5 (
6 EmployeeID int NOT NULL,
7 EmployeeName varchar(255),
Emergency ContactName varchar(255),
8 PhoneNumber int,
9 Address varchar(255),
10 City varchar(255),
11 Country varchar(255) DEFAULT 'India'
12 );
13
--DEFAULT Constraint on ALTER TABLE
14
15 ALTER TABLE Employee_Info
16 ADD CONSTRAINT defau_Country
17 DEFAULT 'India' FOR Country;
18
19 --To drop the Default Constraint
20
ALTER TABLE Employee_Info
21 ALTER COLUMN Country DROP DEFAULT;
22
23
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
--Create an Index where duplicate values are allowed
CREATE INDEX IndexName
ON TableName (Column1, Column2, ...ColumnN);
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
Aliases & Case Statement
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
This statement is used to modify the records already present in the table.
Syntax
UPDATE TableName
SET Column1 = Value1, Column2 = Value2, ...
WHERE Condition;
Example
1 UPDATE Employee_Info
2 SET EmployeeName = 'Aahana', City= 'Ahmedabad'
3 WHERE EmployeeID = 1;
DELETE
Syntax
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
DISTINCT
ORDER BY
GROUP BY
HAVING Clause
INTO
Syntax
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
This ‘GROUP BY’ statement is used with the aggregate functions to group the result-set
by one or more columns.
Syntax
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
The ‘SELECT INTO’ statement is used to copy data from one table to another.
Syntax
SELECT *
INTO NewTable [IN ExternalDB]
FROM OldTable
WHERE Condition;
Example
1
2 -- To create a backup of database 'Employee'
SELECT * INTO EmployeeBackup
3 FROM Employee;
4
5 --To select only few columns from Employee
6 SELECT EmployeeName, PhoneNumber INTO EmployeeContactDetails
7 FROM Employee;
8
SELECT * INTO BlrEmployee
9 FROM Employee
10 WHERE City = 'Bangalore';
11
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 Exclusive OR (XOR) [A ^ B]
| Bitwise OR [A | B]
& Bitwise AND [A & B]
Comparison Operators
Operator Description
<> Not Equal to [A < > B]
<= Less than or equal to [A <= B]
>= Greater than or equal to [A >= B]
< Less than [A < B]
> Greater than [A > B]
= Equal to [A = B]
Compound Operators
Operator Description
|*= Bitwise OR equals [A |*= B]
^-= Bitwise Exclusive equals [A ^-= B]
&= Bitwise AND equals [A &= B]
%= 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
This operator displays all those records which satisfy any of the conditions separated by
OR and give the output TRUE.
Syntax
The NOT operator is used, when you want to display the records which do not satisfy a
condition.
Syntax
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
WHERE ColumnName BETWEEN Value1 AND Value2;
Example
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:
SELECT ColumnName(s)
FROM TableName
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
WHERE ColumnName IN (Value1,Value2...);
Example
SELECT ColumnName(s)
FROM TableName
WHERE EXISTS
(SELECT ColumnName FROM TableName WHERE condition);
Example
1 SELECT EmergencyContactName
FROM Employee_Info
2 WHERE EXISTS (SELECT EmergencyContactName FROM Employee_Info WHERE
3 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
WHERE ColumnName operator ALL
(SELECT ColumnName FROM TableName WHERE condition);
Example
1 SELECT EmployeeName
FROM Employee_Info
2 WHERE EmployeeID = ALL (SELECT EmployeeID FROM Employee_Info WHERE City =
3 '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
WHERE ColumnName operator ANY
(SELECT ColumnName FROM TableName WHERE condition);
Example
1 SELECT EmployeeName
FROM Employee_Info
2 WHERE EmployeeID = ANY (SELECT EmployeeID FROM Employee_Info WHERE City =
3 '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()
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
The MAX function returns the largest value of the selected column in a table.
Syntax
SELECT MAX(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
Aliases
Aliases are used to give a column/table a temporary name and only exists for a duration
of the query.
Syntax
SELECT ColumnName(s)
FROM TableName AS AliasName;
Example
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
WHEN Condition1 THEN Result1
WHEN Condition2 THEN Result2
WHEN ConditionN THEN ResultN
ELSE Result
END;
Example
1
SELECT EmployeeName, City
2 FROM Employee_Info
3 ORDER BY
4 (CASE
5 WHEN City IS NULL THEN 'Country is India by default'
ELSE City
6 END);
7
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.
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.
Let’s consider the below table apart from the Employee_Info table, to understand the
syntax of joins.
Syntax
SELECT ColumnName(s)
FROM Table1
INNER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;
Example
Syntax
SELECT ColumnName(s)
FROM Table1
FULL OUTER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;
Example
1 SELECT Employee_Info.EmployeeName, Technologies.TechID
2 FROM Employee_Info
3 FULL OUTER JOIN Orders ON Employee_Info.EmpID=Employee_Salary.EmpID
4 ORDER BY Employee_Info.EmployeeName;
LEFT JOIN
Syntax
SELECT ColumnName(s)
FROM Table1
LEFT JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;
Example
RIGHT JOIN
Syntax
SELECT ColumnName(s)
FROM Table1
RIGHT JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;
Example
1 SELECT Technologies.TechID
2 FROM Technologies
3 RIGHT JOIN Employee_Info ON Technologies.EmpID = Employee_Info.EmployeeID
4 ORDER BY Technologies.TechID;
This operator is used to combine the result-set of two or more SELECT statements.
Syntax
This clause used to combine two SELECT statements and return the intersection of the
data-sets of both the SELECT statements.
Syntax
INTERSECT
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.
The following data types are present in a SQL Server to store a date or a date/time
value in a database.
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
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.
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
TO {UserName |PUBLIC |RoleName}
[WITH GRANT OPTION];
where,
Example
This command is used to withdraw the user’s access privileges given by using
the GRANT command.
Syntax
REVOKE PrivilegeName
ON ObjectName
FROM {UserName |PUBLIC |RoleName}
Example
Syntax
Syntax
Syntax
Syntax
Syntax
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
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.
1
2 INSERT INTO Employee_Table VALUES(05, 'Avinash');
COMMIT;
3
UPDATE Employee_Table SET name = 'Akash' WHERE id = '05';
4 SAVEPOINT S1;
5 INSERT INTO Employee_Table VALUES(06, 'Sanjana');
6 SAVEPOINT S2;
7 INSERT INTO Employee_Table VALUES(07, 'Sanjay');
SAVEPOINT S3;
8 INSERT INTO Employee_Table VALUES(08, 'Veena');
9 SAVEPOINT S4;
10 SELECT * FROM Employee_Table;
11
The output to the above set of queries would be as follows:
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;
2 SELECT * FROM Employee_Table;
EmployeeID EmployeeName
01 Ruhaan
02 Suhana
03 Aayush
04 Rashi
05 Akash
06 Sanjana
Constraints in DBMS
Constraints enforce limits to the data or type of data that can be inserted/updated/deleted from a
table. The whole purpose of constraints is to maintain the data integrity during an
update/delete/insert into a table. In this tutorial we will learn several types of constraints that can be
created in RDBMS.
Types of constraints
NOT NULL
UNIQUE
DEFAULT
CHECK
Key Constraints – PRIMARY KEY, FOREIGN KEY
Domain constraints
Mapping constraints
NOT NULL:
NOT NULL constraint makes sure that a column does not hold NULL value. When we don’t provide
value for a particular column while inserting a record into a table, it takes NULL value by default. By
specifying NULL constraint, we can be sure that a particular column(s) cannot have NULL values.
Example:
UNIQUE:
UNIQUE Constraint enforces a column or set of columns to have unique values. If a column has a
unique constraint, it means that particular column cannot have duplicate values in a table.
DEFAULT:
The DEFAULT constraint provides a default value to a column when there is no value provided while
inserting a record into a table.
CHECK:
This constraint is used for specifying range of values for a particular column of a table. When this
constraint is being set on a column, it ensures that the specified column must have the value falling
in the specified range.
Key constraints:
PRIMARY KEY:
Primary key uniquely identifies each record in a table. It must have unique values and cannot
contain nulls. In the below example the ROLL_NO field is marked as primary key, that means the
ROLL_NO field cannot have duplicate and null values.
Domain constraints:
Each table has certain set of columns and each column allows a same type of data, based on its
data type. The column does not accept values of any other data type.
Domain constraints are user defined data type and we can define them like this:
Domain Constraint = data type + Constraints (NOT NULL / UNIQUE / PRIMARY KEY / FOREIGN
KEY / CHECK / DEFAULT)