SQL
by
APNA
COLLEG
E
Database
Database is collection of data in a format that can be easily accessed (Digital)
A software application used to manage our DB is called DBMS (Database
Management System)
APN
COLLEG
A
Types of
Databases
Relational Non-relational
(NoSQL)
Data stored in
tables data not stored in
tables
** We use SQL to work with relational APN
COLLEG
DBMS
A
What is SQL?
Structured Query Language
SQL is a programming language used to interact with relational
databases. It is used to perform CRUD operations :
Create
Read
Updat
e
Delet APNA
COLLEG
e
Database Structure
Database
Table 1 Table 2
Data Data
APNA
COLLEG
What is a
table?
Student
table
APNA
COLLEG
Creating our First
Database
Our first SQL
Query
CREATE DATABASE db_name;
DROP DATABASE db_name;
APNA
COLLEG
Creating our First Table
USE db_name;
CREATE TABLE table_name
( column_name1 datatype
constraint, column_name2
datatype constraint,
column_name2 datatype
constraint
);
APNA
COLLEG
SQL
Datatypes
They define the type of values that can be stored in a
column
APNA
COLLEG
SQL
Datatypes
Signed &
Unsigned
TINYINT UNSIGNED (0 to
255)
TINYINT (-128 to 127)
APNA
COLLEG
Types of SQL Commands
DDL (Data Definition Language) : create, alter, rename, truncate
& drop
DQL (Data Query Language) : select
DML (Data Manipulation Language) : select, insert, update &
delete
DCL (Data Control Language) : grant & revoke permission to users
APN
TCL (Transaction Control Language) : start transaction, commit,
rollback etc.
COLLEG
A
Database related
Queries
CREATE DATABASE db_name;
CREATE DATABASE IF NOT EXISTS db_name;
DROP DATABASE db_name;
DROP DATABASE IF EXISTS db_name;
SHOW DATABASES;
APNA
SHOW
TABLES;
COLLEG
Table related Queries
Create
CREATE TABLE table_name
( column_name1 datatype
constraint, column_name2
datatype constraint,
);
APNA
COLLEG
Table related Queries
Select & View ALL
columns
SELECT * FROM
table_name;
APNA
COLLEG
Table related Queries
Insert
INSERT INTO table_name
(colname1, colname2);
VALUES
(col1_v1, col2_v1),
(col1_v2, col2_v2);
APNA
COLLEG
Key
s
Primary Key
It is a column (or set of columns) in a table that uniquely identifies each row.
(a unique id) There is only 1 PK & it should be NOT null.
Foreign Key
A foreign key is a column (or set of columns) in a table that refers to the primary key in
another table. There can be multiple FKs.
FKs can have duplicate & null
values. APNA
COLLEG
Key
s
table1 - table2 -
Student City
APNA
COLLEG
Constraints
SQL constraints are used to specify rules for data in a
table.
NOT NULL columns cannot have a null value
UNIQUE all values in column are
different
PRIMARY makes a column unique & not null but used only
KEY for one
APNA
COLLEG
Constraints
FOREIGN KEY prevent actions that would destroy links
between tables
DEFAULT sets the default value of a
column
APNA
COLLEG
Constraints
CHECK it can limit the values allowed in a
column
APNA
COLLEG
Create this sample Insert this data
table
APNA
COLLEG
Select in
Detail
used to select any data from the
database
Basic Syntax
SELECT col1, col2 FROM table_name;
To Select ALL
SELECT * FROM table_name;
APNA
COLLEG
Where
Clause
To define some conditions
SELECT col1, col2 FROM table_name
WHERE conditions;
APNA
COLLEG
Where
Clause
Using Operators in WHERE
Arithmetic Operators : +(addition) , -(subtraction), *(multiplication), /(division), %
(modulus) Comparison Operators : = (equal to), != (not equal to), > , >=, <, <=
Logical Operators : AND, OR , NOT, IN, BETWEEN, ALL, LIKE, ANY
Bitwise Operators : & (Bitwise AND), | (Bitwise OR)
APNA
COLLEG
Operators
AND (to check for both conditions to be
true)
OR (to check for one of the conditions to be
true)
APNA
COLLEG
Operators
Between (selects for a given
range)
In (matches any value in the
list)
APNA
NOT (to negate the given
condition)
COLLEG
Limit Clause
Sets an upper limit on number of (tuples)rows to be
returned
SELECT col1, col2 FROM table_name
LIMIT number;
APNA
COLLEG
Order By Clause
To sort in ascending (ASC) or descending order
(DESC)
SELECT col1, col2 FROM table_name
ORDER BY col_name(s) ASC;
APNA
COLLEG
Aggregate Functions
Aggregare functions perform a calculation on a set of values, and return a single
value.
COUNT(
) MAX( )
Get Maximum
MIN( )
Marks
SUM( )
AVG( )
Get Average
marks
APNA
COLLEG
Group By
Clause
Groups rows that have the same values into summary rows.
It collects data from multiple records and groups the result by one or more
column.
*Generally we use group by with some aggregation
function.
Count number of students in each
city
APNA
COLLEG
Having
Clause
Similar to Where i.e. applies some condition on rows.
Used when we want to apply any condition after
grouping.
Count number of students in each city where max marks
cross 90.
APNA
COLLEG
General
Order
SELECT column(s)
FROM table_name
WHERE condition
GROUP BY
column(s) HAVING
condition
ORDER BY
column(s) ASC;
APNA
COLLEG
Having
Clause
Similar to Where i.e. applies some condition on rows.
Used when we want to apply any condition after
grouping.
Count number of students in each city where max marks
cross 90.
APNA
COLLEG
Table related Queries
Update (to update existing
rows)
UPDATE table_name
SET col1 = val1, col2 = val2
WHERE condition;
APNA
COLLEG
Table related Queries
Delete (to delete existing
rows)
DELETE FROM table_name
WHERE condition;
APNA
COLLEG
Cascading for FK
On Delete Cascade
When we create a foreign key using this option, it deletes the referencing rows in
the child table when the referenced row is deleted in the parent table which has a
primary key.
On Update Cascade
When we create a foreign key using UPDATE CASCADE the referencing rows are updated
in the child table when the referenced row is updated in the parent table which has a
primary key.
APNA
COLLEG
Table related Queries
Alter (to change the schema)
ADD Column
ALTER TABLE table_name
ADD COLUMN column_name datatype constraint;
DROP Column
ALTER TABLE table_name
DROP COLUMN column_name;
RENAME Table APNA
COLLEG
ALTER TABLE table_name
RENAME TO
new_table_name;
Table related Queries
CHANGE Column (rename)
ALTER TABLE table_name
CHANGE COLUMN old_name new_name new_datatype
new_constraint;
MODIFY Column (modify datatype/ constraint)
ALTER TABLE table_name
MODIFY col_name new_datatype
new_constraint;
APNA
COLLEG
ADD DROP
Column Column
MODIFY RENAME Table
Column
CHANGE Column
(rename)
APNA
COLLEG
Table related Queries
Truncate (to delete table's data)
TRUNCATE TABLE table_name ;
APNA
COLLEG
Joins in SQL
Join is used to combine rows from two or more tables, based on a related column between
them.
APNA
COLLEG
Types of
Joins
Inner Left Right Full
Join Join Join Join
Outer
Joins
APNA
COLLEG
Inner
Join records that have matching values in both
Returns
tables
Syntax
SELECT column(s)
FROM tableA
INNER JOIN
tableB
ON
tableA.col_name =
tableB.col_name; APN
COLLEG
A
SELECT *
Inner FROM student
Join INNER JOIN course
ON student.student_id = course.student_id;
Example
student course
APN
Resul
t
COLLEG
A
Left Join
Returns all records from the left table, and the matched records
from the right table
Syntax
SELECT
column(s) FROM
tableA LEFT
JOIN tableB
ON
tableA.col_name
=
tableB.col_name; APNA
COLLEG
SELECT *
Left Join FROM student as s
Example LEFT JOIN course as c
ON s.student_id = c.student_id;
student course
Resul
t
APNA
COLLEG
Right Join
Returns all records from the right table, and the matched
records from the left table
Syntax
SELECT column(s)
FROM tableA
RIGHT JOIN
tableB
ON
tableA.col_name =
tableB.col_name;
APNA
COLLEG
SELECT *
Right Join FROM student as s
Example RIGHT JOIN course as c
ON s.student_id = c.student_id;
student course
Resul
t
APNA
COLLEG
Full
Join all records when there is a match in either left or right
Returns
table
Syntax in MySQL
LEFT JOIN UNION RIGHT JOIN
APNA
COLLEG
Full
Join
Example
course
student
Resul
t
APNA
COLLEG
Think & Ans
Qs: Write SQL commands to display the right
exclusive join :
Left Exclusive Right Exclusive
Join Join
APNA
COLLEG
Self Join
It is a regular join but the table is joined with
itself.
Syntax
SELECT
column(s) FROM
table as a JOIN
table as b
ON a.col_name =
b.col_name;
APNA
COLLEG
Self Join
Example
Employee
Resul
t
APNA
COLLEG
Union
It is used to combine the result-set of two or more SELECT
statements. Gives UNIQUE records.
To use it :
every SELECT should have same no. of
columns columns must have similar data types
columns in every SELECT should be in same
order
Syntax
SELECT column(s) FROM
tableA APNA
COLLEG
UNION
SELECT column(s) FROM
tableB
SQL Sub
Queries
A Subquery or Inner query or a Nested query is a query within another SQL
query.
It involves 2 select
Query
statements.
Syntax Sub
Query
SELECT column(s)
FROM table_name
WHERE col_name operator
( subquery );
APNA
COLLEG
SQL Sub
Queries
Example
Get names of all students who scored more than class
average.
Step 1. Find the avg of class
Step 2. Find the names of students with marks > avg
APNA
COLLEG
SQL Sub
Queries
Example
Find the names of all students with even roll
numbers.
Step 1. Find the even roll numbers
Step 2. Find the names of students with even roll no
APNA
COLLEG
SQL Sub
Queries
Example with FROM
Find the max marks from the students of Delhi
Step 1. Find the students of Mumbai
Step 2. Find their max marks using the sublist in step
1
APNA
COLLEG
MySQL Views
A view is a virtual table based on the result-set of an SQL
statement.
*A view always shows up-to-date data. The
database engine recreates the view, every time
APNA
a user queries it.
COLLEG