We covered some topics of Basic to Intermediate level SQL. It was 8 hours customized plan for a corporate client. Stay here for updated content and Videos.
A practical demonstration was given to the learners.
For any query/ training, please feel free to connect at partner@edu4sure.com / call or whatsapp at +91-9555115533.
Visit https://edu4sure.com/certificate-courses for more certificate training program
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. 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
4. 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
5. 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. SQL
Commands
DDL – Data Definition Language
DML – Data Manipulation Language
DCL – Data Control Language
TCL – Transaction Control Language
DQL- Data Query Language
17. Tables in SQL
Continues…
Key/entity/referential integrity constraints
Can be specified in CREATE TABLE
Can be added later using ALTER TABLE
Table can be deleted by DROP TABLE
statement
20. NOT NULL Constraint
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
)
21. 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
22. 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
23. 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
24. 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)
)
25. DEFAULT Constraint
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
26. 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)
28. 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
29. 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
30. 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
32. 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
33. 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’
34. 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
35. Select Query With DISTINCT
SELECT DISTINCT column1, column2, ...
FROM table_name;
SELECT distinct City FROM Customers
36. 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;
37. 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
38. 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%'
39. Aggregate Functions
SELECT FUNCTION(column_name), column1, Column2…..
FROM table_name
WHERE condition
GROUP BY(column1, column2)
Functions:
• MAX()
• MIN()
• COUNT()
• SUM()
• AVG()
• FIRST()
• LAST()
40. Super Aggregate Functions
• ROLLUP
• COALESCE
Select [Ship City], coalesce([ship name],'Total') as Ship, sum([shipping fee])
From Orders
group by rollup([Ship City],[Ship Name])
42. Group By
Group By :-
Used with Aggregate Functions, to group the result set
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);
43. Having Clause
Having:-
Just as Where clause, “Having” works as condition for aggregated result
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);
44. Over(Partition By…)
A step forward from Group By, this function is used to portion a results set according to specified
criteria.
Select [Ship Country/Region],[Ship City],
avg([shipping fee]) over (partition by [ship city]) as Fee
from Orders
45. 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
52. Indexes
Clustered Index
Non-Clustered Index
Only one Clustered index in a table
A table can have one or more non-clustered indexes and each non-clustered
index may include one or more columns of the table
53. Create Index
CREATE CLUSTERED/NONCLUSTERED INDEX index_name
ON schema_name.table_name (column_list)
NONCLUSTERED is the default index
Both Clustered & Non-Clustered Index can be made UNIQUE
54. Sub Query
One Query nested inside another
Statements can be SELECT, UPDATE,INSERT or
DELETE
Subqueries can be nested
56. 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
67. 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
68. 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
69. An Important Query - Find Duplicates
SELECT
col1,col2,...
COUNT(*)
FROM
table_name
GROUP BY
col1,col2,...
HAVING
COUNT(*) > 1
70. Want to move to Advanced SQL/ Any Customized
Topics of SQL or Any other Training
Connect at:
partner@edu4sure.com
+91-95.5511.5533
edu4sure.com/certificate-courses
Editor's Notes
Most of the companies do not incentivize their employees on their ideas and not just efforts….