The PPT content is for reference only. The training will be hands-on & practical.
Training: SQL (Structured Query Language)
For any Training & Certificate, please email us at partner@edu4sure.com
or Call/ whatsapp at +91-9555115533
Or visit www.testformula.com (Our LMS to access Self-paced vidoes) or visit www.edu4sure.com
2. Introduction
SQL is a standard language for
storing, manipulating and retrieving
data in database
Same language can be used to query
data in MySQL, SQL Server, MS
Access, Oracle, Sybase, Informix,
Postgres, and other database
systems
3. Why SQL?
Universal Language
Open Source - Easy to Learn & Use
Manage Million Rows of Data
High in Demand
4. Data, Datasets And Database
Data
• Data are observations or
measurements
(unprocessed or
processed) represented as
text, numbers, or
multimedia
• Example: Details of
employees like Name, Age,
Town, etc. written
Dataset
• A dataset is a structured
collection of data generally
associated with a unique
body of work
• Example: Details of
employees of one town
organized alphabetically
Database
• A database is an organized
collection of data stored as
multiple datasets
• Example: Alphabetically
arranged details of all the
employees from all the
towns, stored in an
electronic unit
5. Why Database?
Need of Hour for every business – small or big
Manage vast volumes of data
Keeps your data safe & secure
Make meaningful decisions
Manipulate & update data
6. Understanding
Database
A database is an organized collection of
information or data
A database is stored in an electronic storage
Databases makes management of data easy
7. Relational
Database
• Stores data in form of tables
• Tables can be connected or related to each
other based on common data
• Supports SQL for querying
8. Use Case: Data Fetching Process
Database
API
Web Access
Any Program
Application
Programming
Interface
9. Data
Normalization
Data normalization is generally
considered the development of clean
data
Eliminating unstructured data and
redundancy (duplicates) in order to
ensure logical data storage
10. Data Normalization - 3 Normal Forms
1 NF
• Each entry must have only
one single value for each
cell
• Each record must be
unique
2 NF
• Data must have only one
Primary Key
• Then, relationships can be
created through new
foreign key labels
3 NF
• Data in a table must only
be dependent on the
primary key
• If the primary key is
changed, all data that is
impacted must be put into
a new table
12. PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20
Persons Table Orders Table
OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1
Notice that the "PersonID" column in the "Orders" table points to the "PersonID" column in the
"Persons" table
The "PersonID" column in the "Persons" table is the PRIMARY KEY in the "Persons" table
The "PersonID" column in the "Orders" table is a FOREIGN KEY in the "Orders" table
The FOREIGN KEY constraint prevents invalid data from being inserted into the foreign key
column, because it has to be one of the values contained in the parent table
13. A composite key is made by the combination of two or more columns in a table that can be used
to uniquely identify each row in the table when the columns are combined uniqueness of a row is
guaranteed, but when it is taken individually it does not guarantee uniqueness.
It can also be understood as a primary key made by the combination of two or more attributes to
uniquely identify every row in a table.
15. What is Schema
A schema is a list of logical structures of data.
Three Types
o Logical Schema: ER Diagram
o Physical Schema: The Physical Schemas shows the databases and the objects that
they contain. This tells how the data will be stored in the storage device.
o View Schema: It shows only those data to a view group in which they are interested
and hides the remaining details from them.
16. DATABASE TRANSACTION MODELS
ACID Model (Atomic, Consistent, Isolated, Durable)
BASE Model (Basically Available, Soft State, Eventually Consistent)
Deciding on the right database management system
17. ACID Database Model
• Atomic – Each transaction is either properly carried out or the process halts and the
database reverts back to the state before the transaction started. This ensures that all data
in the database is valid.
• Consistent – A processed transaction will never endanger the structural integrity of the
database.
• Isolated – Transactions cannot compromise the integrity of other transactions by
interacting with them while they are still in progress.
• Durable – The data related to the completed transaction will persist even in the cases of
network or power outages. If a transaction fails, it will not impact the manipulated data.
18. BASE Database Model
• Basically Available – Rather than enforcing immediate consistency, BASE-modelled
NoSQL databases will ensure availability of data by spreading and replicating it across the
nodes of the database cluster.
• Soft State – Due to the lack of immediate consistency, data values may change over time.
The BASE model breaks off with the concept of a database which enforces its own
consistency, delegating that responsibility to developers.
• Eventually Consistent – The fact that BASE does not enforce immediate consistency
does not mean that it never achieves it. However, until it does, data reads are still possible
(even though they might not reflect the reality).
19. Which Databases are ACID compliant?
Relational database management system
MySQL
PostgreSQL
Oracle
SQLite
Microsoft SQL Server
20. Which Databases are BASE compliant?
NoSQL databases
MongoDB
Cassandra
Redis
Amazon DynamoDB
Couchbase
22. SQL
Commands
DDL – Data Definition Language
DML – Data Manipulation Language
DCL – Data Control Language
TCL – Transaction Control Language
DQL- Data Query Language
32. Data Types (String)
Data Type Description Max Size Storage
char(n) Fixed width character string 8,000 characters Defined width
varchar(n) Variable width character string 8,000 characters 2 bytes + number of chars
varchar(max) Variable width character string 1,073,741,824 characters 2 bytes + number of chars
text Variable width character string 2GB of text data 4 bytes + number of chars
nchar Fixed width Unicode string 4,000 characters Defined width x 2
nvarchar Variable width Unicode string 4,000 characters
nvarchar(max) Variable width Unicode string 536,870,912 characters
ntext Variable width Unicode string 2GB of text data
binary(n) Fixed width binary string 8,000 bytes
varbinary Variable width binary string 8,000 bytes
varbinary(max) Variable width binary string 2GB
image Variable width binary string 2GB
33. Numeric Data Types
Data type Description Storage
bit Integer that can be 0, 1, or NULL
tinyint Allows whole numbers from 0 to 255 1 byte
smallint Allows whole numbers between -32,768 and
32,767
2 bytes
int Allows whole numbers between -2,147,483,648
and 2,147,483,647
4 bytes
bigint Allows whole numbers between -
9,223,372,036,854,775,808 and
9,223,372,036,854,775,807
8 bytes
decimal(p,s) Fixed precision and scale numbers.
Allows numbers from -10^38 +1 to 10^38 –1.
The p parameter indicates precision. p must be a
value from 1 to 38. Default is 18.
The s parameter indicates scale. s must be a value
from 0 to p. Default value is 0
5-17 bytes
numeric(p,s) Fixed precision and scale numbers.
Allows numbers from -10^38 +1 to
10^38 –1.
The p parameter indicates precision. p
must be a value from 1 to 38. Default is
18.
The s parameter indicates scale. s must
be a value from 0 to p. Default value is 0
5-17 bytes
smallmoney Monetary data from -214,748.3648 to
214,748.3647
4 bytes
money Monetary data from -
922,337,203,685,477.5808 to
922,337,203,685,477.5807
8 bytes
float(n) Floating precision number data from -
1.79E + 308 to 1.79E + 308.
The n parameter indicates whether the
field should hold 4 or 8 bytes. float(24)
holds a 4-byte field and float(53) holds
an 8-byte field. Default value of n is 53.
4 or 8 bytes
real Floating precision number data from -
3.40E + 38 to 3.40E + 38
4 bytes
34. Date and Time Data Types
Data type Description Storage
datetime From January 1, 1753 to December 31, 9999 with an accuracy of 3.33 milliseconds 8 bytes
datetime2 From January 1, 0001 to December 31, 9999 with an accuracy of 100 nanoseconds 6-8 bytes
smalldatetime From January 1, 1900 to June 6, 2079 with an accuracy of 1 minute 4 bytes
date Store a date only. From January 1, 0001 to December 31, 9999 3 bytes
time Store a time only to an accuracy of 100 nanoseconds 3-5 bytes
datetimeoffset The same as datetime2 with the addition of a time zone offset 8-10 bytes
timestamp Stores a unique number that gets updated every time a row gets created or modified. The
timestamp value is based upon an internal clock and does not correspond to real time.
Each table may have only one timestamp variable
37. NOT NULL Constraint
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
)
38. UNIQUE Constraint
CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
)
ID
11
12
13
14
ID
11
12
11
13
39. PRIMARY KEY Constraint
CREATE TABLE Persons (
ID int PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
)
PersonID FirstName LastNam
e
City Count
ry
P1 Will Kendy NYC US
P2 Mike Lauren NJ US
P3 Will Kendy Edison US
40. FOREIGN KEY Constraint
CREATE TABLE Orders (
OrderID
int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID
int FOREIGN KEY REFERENCES
Persons(PersonID)
)
PersonID FirstName LastName City Country
OrderID InvoiceN
um
PersonID
Primary
Key
Primary
Key
Foreign
Key
41. CHECK Constraint
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
)
CREATE TABLE PersonsTest (
ID int NOT NULL primary key,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND datalength(City)>3)
)
42. DEFAULT Constraint
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
43. Indexes
Clustered Index
Non-Clustered Index
Only one Clustered index in a table (with PK)
A table can have one or more non-clustered indexes and each non-clustered
index may include one or more columns of the table
44. Create Index
CREATE CLUSTERED/NONCLUSTERED INDEX index_name
ON table_name (column_list)
NONCLUSTERED is the default index
Both Clustered & Non-Clustered Index can be made UNIQUE
45. CREATE INDEX Statement
CREATE INDEX index_name
ON table_name (column1, column2, ...)
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...)
CREATE INDEX idx_lastname
ON Persons (LastName)
Drop Index idx_name
On tablename
47. Select Query With Where Clause
SELECT column1, column2, ...
FROM table_name
WHERE condition
Example :
SELECT * FROM Customers
Where City='Boston’
SELECT * FROM Customers
WHERE ID=1
48. Select Query With Where Clause
Operator Description Example
= Equal City='Boston’
> Greater than [Shipping Fee]>100
< Less than [Shipping Fee]<100
>= Greater than or equal [Shipping Fee]>=100
<= Less than or equal [Shipping Fee]<=100
<> Not equal City<>'Boston’
49. Select Query With Order By
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC
SELECT * FROM Customers
ORDER BY City
ASCENDING is the default order
50. Select Query With DISTINCT
SELECT DISTINCT column1, column2, ...
FROM table_name;
SELECT distinct City FROM Customers
51. AND, OR and NOT Operators
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
52. Predicates
Predicate Description Example
BETWEEN Between a certain range Price BETWEEN 50 AND 60
LIKE Search for a pattern City LIKE 's%'
IN To specify multiple possible values
for a column
City IN ('Paris','London')
IS NULL If Selected column has blank rows Address IS NULL
IS NOT NULL IF the row is not blank in that
column
Address IS NOT NULL
53. Aliases
SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers
SELECT [first name] + ',' + [Last name] as CustName
From Customers
SELECT o.[Order ID], o.[Order Date], c.[First Name]FROM
Customers AS c, Orders AS o
WHERE c.City like 'L%'
54. Group By
Used with Aggregate Functions, to group the result set
Different than Order By (Group By gives only distinct values)
Syntax: Example:
SELECT column_name(s) Select [Ship City], avg([shipping fee])
FROM table_name from Orders
WHERE condition Group By [Ship City]
GROUP BY column_name(s)
ORDER BY column_name(s);
55. Aggregate Functions
Always to be used with Group By
SELECT FUNCTION(column_name), column1, Column2…..
FROM table_name
WHERE condition
GROUP BY(column1, column2)
Functions:
• MAX()
• MIN()
• COUNT()
• SUM()
• AVG()
• FIRST()
• LAST()
57. Having Clause
Just as Where clause, “Having” works as condition for aggregated result while Where works for raw
data
Syntax: Example:
SELECT column_name(s) Select [Ship City], avg([shipping fee])
FROM table_name from Orders
WHERE condition Group By [Ship City]
GROUP BY column_name(s) having avg([Shipping fee]) >100
HAVING condition
ORDER BY column_name(s);
58. Over(Partition By…)
A step forward from Group By, this function is used to portion a results set according to specified
criteria.
Used with Aggregate Functions.
Select [Ship Country/Region],[Ship City],
avg([shipping fee]) over (partition by [ship city]) as Fee
from Orders
59. Ranking Functions
SELECT column1, Column2…. , FUNCTION Over(Order BY Column)
FROM table_name
Functions:
• Row_Number()
• Rank()
• Dense_Rank()
• NTILE(n)
Select [first name]+ ' ' + [last name] as EmpName, salary , Region, ntile(4)
over(partition by region order by salary desc) as Rnk
from employee
66. NATURAL INNER JOIN
Natural joins are supported in PostgreSQL, MySQL, MariaDB, SQLite, and Oracle.
However, natural joins are not supported in SQL Server (2019)
The SQL natural join is a type of equi-join that implicitly combines tables based on
columns with the same name and type. The join predicate arises implicitly by
comparing all columns in both tables that have the same column names in the
joined tables.
67. INNER JOIN-Theta
Theta Join allows you to merge two
tables based on the condition
represented by theta. Theta joins work
for all comparison operators. It is
denoted by symbol θ.
68. INNER JOIN - EQUI
EQUI Join is done when a Theta
join uses only the equivalence
condition.
69. CROSS JOIN
Table 1
Col A
1
2
Table 2
Col B
3
2
4
Answer
Col A Col B
1 3
1 2
1 4
2 3
2 2
2 4
73. Sub Query
Keywords
In place of an
expression
With IN or NOT
IN
With ANY or ALL
With EXISTS or
NOT EXISTS
In UPDATE,
DELETE, or
INSERT statement
In the FROM
clause
76. ROLES
To easily manage the permissions in your databases, SQL Server provides
several roles which are security principals that group other principals. They are
like groups in the Microsoft Windows operating system
There are two types of roles
- Server Level
- Application Level
77. Server Roles
Sysadmin -if a login is a member of this role, it can do anything within the SQL Server
Bulkadmin -This role allows the import of data from external files
Dbcreator - This role allows creation of databases within SQL Server
Diskadmin - This role allows management of backup devices, which aren't used very much in SQL Server any
more
Processadmin - This is a powerful role because it can kill connections to SQL Server. Should be used rarely
Securityadmin- This role controls logins for SQL Server
Serveradmin - This role manages the SQL Server configuration
Setupadmin - Setup admin basically gives control over linked servers
78. Thank You!
For any further queries, please connect us at +91-9555115533 or email us at
partner@edu4sure.com
Know us more at www.edu4sure.com
You can also check our Self-paced courses at www.testformula.com
Editor's Notes
Most of the companies do not incentivize their employees on their ideas and not just efforts….