Introduction To SQL
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)
Types of Databases
Relational Non-relational (NoSQL)
Data stored in tables data not stored in tables
** We use SQL to work with relational DBMS
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
Update
Delete
Database
Structure
Database
Table 1 Table 2
Data Data
What is a table?
Student table
Creating our First
Database
Our first SQL Query
CREATE DATABASE db_name;
DROP DATABASE db_name;
Creating our First
Table
USE db_name;
CREATE TABLE table_name
( column_name1 datatype
constraint, column_name2
datatype constraint,
column_name2 datatype constraint
);
SQL
Datatypes
They define the type of values that can be stored in a column
SQL
Datatypes
Signed & Unsigned
TINYINT UNSIGNED (0 to 255)
TINYINT (-128 to 127)
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
D C L (Data Control Language) : grant & revoke permission to users
TC L (Transaction Control Language) : start transaction, commit, rollback etc.
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;
Table related
Queries
Create
CREATE TABLE table_name
( column_name1 datatype
constraint, column_name2
datatype constraint,
);
Table related
Queries
Select & View ALL columns
S E L EC T * FROM table_name;
Table related
Queries
Insert
INSERT INTO table_name
(colname1, colname2);
VALUES
(col1_v1, col2_v1),
(col1_v2,
col2_v2);
Keys
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 P K & 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 F Ks.
F K s can have duplicate & null values.
Keys
table1 - Student table2 - City
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 K E Y makes a column unique & not null but used only for one
Constraints
FOREIGN K E Y prevent actions that would destroy links between tables
DEFAULT sets the default value of a column
Constraints
CHECK it can limit the values allowed in a column
Create this sample table Insert this data
Select in
Detail
used to select any data from the database
Basic Syntax
S E L EC T col1, col2 FROM table_name;
To Select ALL
S E L EC T * FROM table_name;
Where Clause
To define some conditions
S E L EC T col1, col2 FROM table_name
WHERE conditions;
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)
Operators
AND (to check for both conditions to be true)
OR (to check for one of the conditions to be true)
Operators
Between (selects for a given range)
In (matches any value in the list)
NOT (to negate the given condition)
Limit
Clause
Sets an upper limit on number of (tuples)rows to be returned
S E L EC T col1, col2 FROM table_name
LIMIT number;
Order By
Clause
To sort in ascending (ASC) or descending order (DESC)
S E L EC T col1, col2 FROM table_name
ORDER BY col_name(s) ASC;
Aggregate
Functions
Aggregare functions perform a calculation on a set of values, and return a single value.
COUNT( )
MAX( )
Get Maximum Marks
MIN( )
SUM( )
AVG( )
Get Average marks
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
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.
General
Order
S E L EC T 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
FOnKDelete 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
ALTER TABLE table_name
APNA
RENAME TO new_table_name; COLLEG
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 Column DROP Column
MODIFY Column RENAME Table
CHANGE Column (rename)
APNA
COLLEG
Table related
Queries
Truncate (to delete table's data)
TRUNCATE TABLE table_name ;
APNA
COLLEG
Joins in S Q L
Join is used to combine rows from two or more tables, based on a related column between them.
APNA
COLLEG
Types of
Joins
Inner Join Left Join Right Join Full Join
Outer Joins
APNA
COLLEG
Inner
Join records that have matching values in both tables
Returns
Syntax
S E L EC T column(s)
FROM tableA
INNER JOIN tableB
ON
tableA.col_name =
tableB.col_name;
APNA
COLLEG
S E L EC T *
Inner FROM student
Join INNER JOIN course
ON student.student_id = course.student_id;
Example
student course
Result
APNA
COLLEG
Left Join
Returns all records from the left table, and the matched records from
the right table
Syntax
S E L EC T column(s)
FROM tableA
L E F T JOIN tableB
ON
tableA.col_name
=
tableB.col_name;
APNA
COLLEG
S E L EC T *
Left FROM student as s
Join L E F T JOIN course as c
ON s.student_id = c.student_id;
Example
student course
Result
APNA
COLLEG
Right Join
Returns all records from the right table, and the matched records
from the left table
Syntax
S E L EC T column(s)
FROM tableA
RIGHT JOIN tableB
ON
tableA.col_name =
tableB.col_name;
APNA
COLLEG
S E L EC T *
Right FROM student as s
Join RIGHT JOIN course as c
ON s.student_id = c.student_id;
Example
student course
Result
APNA
COLLEG
Full Join
Returns all records when there is a match in either left or right table
Syntax in MySQL
L E F T JOIN
UNION
RIGHT JOIN
APNA
COLLEG
Full
Join
E xample
course
student
Result
APNA
COLLEG
Think & Ans
Qs: Write SQL commands to display the right exclusive join :
Left Exclusive Join Right Exclusive Join
APNA
COLLEG
Self Join
It is a regular join but the table is joined with itself.
Syntax
S E L EC T column(s)
FROM table as a
JOIN table as b
ON a.col_name =
b.col_name;
APNA
COLLEG
Self
Join
Example
E mployee
Result
APNA
COLLEG
Union
It is used to combine the result-set of two or more S E L EC T statements.
Gives UNIQUE records.
To use it :
every S E L EC T should have same no. of columns
columns must have similar data types
columns in every S E L EC T should be in same
order
Syntax
S E L EC T column(s) FROM tableA
UNION APNA
S E L EC T column(s) FROM tableB
COLLEG
SQL Sub Queries
A Subquery or Inner query or a Nested query is a query within another SQL query.
It involves 2 select statements.
Query
Syntax Sub Query
S E L EC T 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 a
APNA
user queries it.
COLLEG