SQL
Structured Query
language
By: Tushar Bhadouria
Databas
e
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)
By: Tushar
Bhadouria
Types of Databases
Relational Non-relational (NoSQL)
Data stored in tables data not stored in tables
** We use SQL to work with relational
DBMS
By: Tushar
What is
SQL?Query Language
Structured
SQL is a programming language used to interact with relational
databases.
It is used to perform CRUD operations :
Create
Read
Update
Delete
By: Tushar
Database Structure
Database
Table 1 Table 2
Dat Dat
a a
By: Tushar
What is a table?
Student table
By: Tushar
Creating our First
Database
Our first SQL Query
CREATE DATABASE
db_name;
DROP DATABASE
db_name;
By: Tushar
Creating our First
Table
USE db_name;
CREATE TABLE table_name
( column_name1 datatype
constraint, column_name2
datatype constraint,
column_name2 datatype constraint
);
By: Tushar
SQL Datatypes
They define the type of values that can be stored in a
column
By: Tushar
SQL Datatypes
Signed & Unsigned
TINYINT UNSIGNED (0 to
255)
TINYINT (-128 to 127)
By: Tushar
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
TCL (Transaction Control Language) : start transaction, commit,
users
rollback etc.
By: Tushar
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;
SHOW TABLES;
By: Tushar Bhadouria
Table related Queries
Create
CREATE TABLE table_name
( column_name1 datatype
constraint, column_name2
datatype constraint,
);
By: Tushar
Table related Queries
Select & View ALL columns
SELECT * FROM table_name;
By: Tushar
Table related Queries
Insert
INSERT INTO table_name (colname1, colname2);
VALUES (col1_v1, col2_v1), (col1_v2, col2_v2);
By: Tushar
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.
By: Tushar
Key
s
table1 - table2 - City
Student
By: Tushar
Constraints
SQL constraints are used to specify rules for data in a
table.
NOT NULL columns cannot have a null value
UNIQU all values in column are
E different
PRIMARY makes a column unique & not null but used only for
KEY one
By: Tushar
Constraint
s
FOREIGN KEY prevent actions that would destroy links between
tables
DEFAUL sets the default value of a column
T
By: Tushar
Constraints
CHECK it can limit the values allowed in a
column
By: Tushar
Create this sample table Insert this data
By: Tushar
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;
By: Tushar
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)
By: Tushar
Where Clause
To define some conditions
SELECT col1, col2 FROM table_name
WHERE conditions;
By: Tushar
Operators
AND (to check for both conditions to be true)
OR (to check for one of the conditions to be true)
By: Tushar
Operators
Between (selects for a given
range)
In (matches any value in the
list)
NOT (to negate the given
condition)
By: Tushar
Limit Clause
Sets an upper limit on number of (tuples)rows to
be returned
SELECT col1, col2 FROM table_name
LIMIT number;
By: Tushar
Order By Clause
To sort in ascending (ASC) or descending
order (DESC)
SELECT col1, col2 FROM table_name
ORDER BY col_name(s) ASC;
By: Tushar
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
By: Tushar
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
By: Tushar
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.
By: Tushar
General Order
SELECT column(s)
FROM table_name
WHERE condition
GROUP BY column(s)
HAVING condition
ORDER BY column(s) ASC;
By: Tushar
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.
By: Tushar
Table related Queries
For undo safe mode:
Update (to update existing rows)
Set sql_safe_updates = 0;
UPDATE table_name
SET col1 = val1, col2 = val2
WHERE condition;
By: Tushar
Table related Queries
Delete (to delete existing rows)
DELETE FROM table_name
WHERE condition;
By: Tushar
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.
By: Tushar
Table related Queries
Alter (to change the schema)
ADD Column
ALTER TABLE table_name
ADD COLUMN column_name data type constraint;
DROP Column
ALTER TABLE table_name
DROP COLUMN column_name;
RENAME Table
ALTER TABLE table_name
RENAME TO new_table_name;
By: Tushar Bhadouria
Table related Queries
CHANGE Column (rename)
ALTER TABLE table_name
CHANGE COLUMN old_name new_name new_datatype new_constraint;
MODIFY Column (modify data type/ constraint)
ALTER TABLE table_name
MODIFY col_name new_datatype new_constraint;
By: Tushar
ADD DROP
Column Column
MODIFY RENAME
Column Table
CHANGE Column (rename)
By: Tushar
Table related Queries
Truncate (to delete table's
data)
TRUNCATE TABLE
table_name ;
By: Tushar
Joins in SQL
Join is used to combine rows from two or more tables, based on a related
column between them.
By: Tushar
Types of Joins
Inner Left Right Full
Join Join Join Join
Outer Joins
By: Tushar Bhadouria
Inner Join
Returns records that have matching values in both
tables
Syntax
SELECT column(s) FROM
tableA INNER JOIN tableB
ON tableA.col_name = tableB.col_name;
By: Tushar Bhadouria
SELECT * FROM student
Inner Join INNER JOIN course
Example ON student.student_id = course.student_id;
studen course
t
Result
By: Tushar Bhadouria
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;
By: Tushar Bhadouria
SELECT * FROM student as s
Left Join LEFT JOIN course as c
Example ON s.student_id = c.student_id;
studen course
t
Result
By: Tushar Bhadouria
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;
By: Tushar Bhadouria
SELECT * FROM student as s
Right Join RIGHT JOIN course as c
Example ON s.student_id = c.student_id;
studen course
t
Result
By: Tushar Bhadouria
Full Join
Returns all records when there is a match in either
left or right table
Syntax in MySQL
LEFT JOIN UNION RIGHT JOIN
By: Tushar Bhadouria
Full Join
Example
course
student
Result
By: Tushar Bhadouria
Think & Ans
Qs: Write SQL commands to display the right exclusive join :
Left Exclusive Right Exclusive
Join Join
By: Tushar Bhadouria
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;
By: Tushar Bhadouria
Self Join
Example
Employee
Result :
By: Tushar Bhadouria
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
UNION
SELECT column(s) FROM tableB
By: Tushar Bhadouria
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 a
user queries it.
By: Tushar Bhadouria