0% found this document useful (0 votes)
2 views

SQL

Uploaded by

hanimukhtar512
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

SQL

Uploaded by

hanimukhtar512
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 70

Database Management System: SQL

Database: Database is a system that allows


users to store and organize data
Structured Query Language:
A programming language that is used to
interact with the database

There are 3 main types of SQL commands


Data Definition Language: Create, Alter, drop
Data Manipulation Language: select, insert,
update and delete
Data Control Language: Grant and revoke
permission to users

SQL (Structured Query Language) is a


programming language used to interact with
Database and RDBMS
RDBMS
Creating Database and Tables

Data Types
•Data type of a column defines what value the
column can store in table
•Defined while creating tables in database
•Data types mainly classified into three
categories
String: char, varchar, etc
Numeric: int, float, bool, etc
Date and time: date, datetime, etc
Primary and Foreign Keys:

Primary key (PK):


• A Primary key is a unique column we set in a
table to easily identify and locate data in
queries
• A table can have only one primary key,
which should be unique and NOT NULL
Constraints

Constraints
• Constraints are used to specify rules for
data in a table
• This ensures the accuracy and reliability of
the data in the table
• Constraints can be specified when the table
is created with the CREATE TABLE statement,
or
• after the table is created with the ALTER
TABLE statement
Commonly used constraints in SQL

• NOT NULL - Ensures that a column cannot


have a NULL value
• UNIQUE - Ensures that all values in a column
are different
• PRIMARY KEY - A combination of a NOT
NULL and UNIQUE
• FOREIGN KEY - Prevents actions that would
destroy links between tables (used to link
multiple tables together)
• DEFAULT - Sets a default value for a column
if no value is specified
Commonly used constraints in SQL

• NOT NULL - Ensures that a column cannot


have a NULL value
• UNIQUE - Ensures that all values in a column
are different
• PRIMARY KEY - A combination of a NOT
NULL and UNIQUE
• FOREIGN KEY - Prevents actions that would
destroy links between tables (used to link
multiple tables together)
• DEFAULT - Sets a default value for a column
if no value is specified
Create Table

The CREATE TABLE statement is used to create


a new table in a database
• Syntax
CREATE TABLE table_name (
column_name1 datatype constraint,
column_name2 datatype constraint,
column_name3 datatype constraint,
);
Insert values into table

The INSERT INTO statement is used to insert


new records in a table
• Syntax
INSERT INTO TABLE_NAME
(column1, column2, column3,...columnN)
VALUES
(value1, value2, value3,...valueN);
Update values in table

The UPDATE command is used to update


existing rows in a table
• Syntax
UPDATE TABLE_NAME
SET “Column_name1” = ‘value1’,
“Column_name2” = ‘value2’
WHERE “ID” = ‘value’
Commonly used constraints in SQL

The ALTER TABLE statement is used to add,


delete, or modify columns in an existing table
• Adding a Column
Syntax
ALTER TABLE table_name
ADD COLUMN column_name ;

• Dropping a column
Syntax
ALTER TABLE table_name
DROP COLUMN column_name;
Delete values in table

The DELETE statement is used to delete existing


records in a table

• Syntax
DELETE FROM table_name
WHERE condition;
SELECT CLAUSE

The SELECT statement is used to select data


from a database
• Syntax
SELECT column_name
FROM table_name;
Select all fields from table
• Syntax
SELECT *
FROM table_name;
Select distinct/unique fields from table
• Syntax
SELECT DISTINCT column_name
FROM table_name;
WHERE CLAUSE

WHERE clause is used to filter records.


It is used to extract only those records that
fulfill a specified condition
• Syntax
SELECT column_name
FROM table_name;
WHERE conditions;
RECAP: BASIC SQL

SELECT *
CREATE TABLE table_name( FROM table_name;
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
age INT NOT NULL CHECK (age >=18),
gender VARCHAR(10) NOT NULL,
phone VARCHAR(10) NOT NULL,
city VARCHAR(10) NOT NULL DEFAULT ‘Lahore’
);
AS operator

SELECT id AS ID, name AS “Student Name”


SELECT id AS ID, name AS Name FROM table_name
FROM table_name WHERE city=‘Lahore’
WHERE city=‘Lahore’
Relational operators

SELECT *
SELECT * FROM table_name
FROM table_name WHERE age = 20;
WHERE age < 20;
SELECT *
SELECT * FROM table_name
FROM table_name WHERE age <> 20;
WHERE age > 20;

SELECT *
FROM table_name
WHERE age != 20;
Logical operator - OR

Student Table WHERE Age <= 26 OR Gender=‘Male’


Name Age Gender City
Name Age Gender City
Rana Umar 25 Male Lahore
Rana Umar 25 Male Lahore
Salman Khan 24 Male Multan
Salman Khan 24 Male Multan
Maryam Khan 25 Female Islamabad
Maryam Khan 25 Female Islamabad
Sania Mirza 27 Female Lahore
Babar Azam 26 Male Lahore
Babar Azam 26 Male Lahore
Logical operator - OR

Student Table WHERE City= “Lahore” OR City=“Islamabad”


Name Age Gender City
Name Age Gender City
Rana Umar 25 Male Lahore
Rana Umar 25 Male Lahore
Salman Khan 24 Male Multan
Maryam Khan 25 Female Islamabad
Maryam Khan 25 Female Islamabad
Sania Mirza 27 Female Lahore
Sania Mirza 27 Female Lahore
Babar Azam 26 Male Lahore
Babar Azam 26 Male Lahore
IN operator

SELECT column1, column2, column3, ....


SELECT column1, column2, column3, .... FROM table_name
FROM table_name WHERE column_name NOT IN
WHERE column_name IN (value1,value2,...);
(value1,value2,...);
IN Operator

Student Table WHERE City IN (“Lahore”, “Islamabad”)


Name Age Gender City
Name Age Gender City
Rana Umar 25 Male Lahore
Rana Umar 25 Male Lahore
Salman Khan 24 Male Multan
Maryam Khan 25 Female Islamabad
Maryam Khan 25 Female Islamabad
Sania Mirza 27 Female Lahore
Sania Mirza 27 Female Lahore
Babar Azam 26 Male Lahore
Babar Azam 26 Male Lahore
WHERE City NOT IN (“Lahore”, “Islamabad”)
Name Age Gender City
Salman Khan 24 Male Multan
Logical operator - AND

Student Table WHERE Age >= 25 AND AGE<=27


Name Age Gender DOB Name Age Gender DOB
Rana Umar 25 Male 1998-02-10 Rana Umar 25 Male 1998-02-10
Salman Khan 24 Male 1999-07-22 Maryam Khan 25 Female 1998-05-11
Maryam Khan 25 Female 1998-05-11 Sania Mirza 27 Female 1996-10-15
Sania Mirza 27 Female 1996-10-15 Babar Azam 26 Male 1997-03-12
Babar Azam 26 Male 1997-03-12
WHERE DOB >= 1998-01-01 AND DOB <=1998-06-30
Name Age Gender DOB
Rana Umar 25 Male 1998-02-10
Maryam Khan 25 Female 1998-05-11
Logical operator - AND

Student Table WHERE Age <= 26 AND Gender=‘Male’


Name Age Gender DOB Name Age Gender DOB
Rana Umar 25 Male 1998-02-10 Rana Umar 25 Male 1998-02-10
Salman Khan 24 Male 1999-07-22 Babar Azam 26 Male 1997-03-12
Maryam Khan 25 Female 1998-05-11
Sania Mirza 27 Female 1996-10-15
Babar Azam 26 Male 1997-03-12
BETWEEN operator

SELECT column1, column2, column3, ....


SELECT column1, column2, column3, .... FROM table_name
FROM table_name WHERE column_name NOT BETWEEN
WHERE column_name BETWEEN value1 value1 AND value2
AND value2
BETWEEN operator

Student Table WHERE Age BETWEEN 25 AND 27


Name Age Gender DOB Name Age Gender DOB
Rana Umar 25 Male 1998-02-10 Rana Umar 25 Male 1998-02-10
Salman Khan 24 Male 1999-07-22 Maryam Khan 25 Female 1998-05-11
Maryam Khan 25 Female 1998-05-11 Sania Mirza 27 Female 1996-10-15
Sania Mirza 27 Female 1996-10-15 Babar Azam 26 Male 1997-03-12
Babar Azam 26 Male 1997-03-12
WHERE DOB BETWEEN 1998-01-01 AND 1998-06-30
Name Age Gender DOB
Rana Umar 25 Male 1998-02-10
Maryam Khan 25 Female 1998-05-11
BETWEEN operator

Student Table WHERE Name BETWEEN “a” AND “n”


Name Age Gender DOB Name Age Gender DOB
Rana Umar 25 Male 1998-02-10 Maryam Khan 25 Female 1998-05-11
Salman Khan 24 Male 1999-07-22 Babar Azam 26 Male 1997-03-12
Maryam Khan 25 Female 1998-05-11
Sania Mirza 27 Female 1996-10-15 WHERE Name BETWEEN “amir” AND “nauman”
Babar Azam 26 Male 1997-03-12
Name Age Gender DOB
Maryam Khan 25 Female 1998-05-11
Babar Azam 26 Male 1997-03-12
LIKE operator

SELECT column1, column2, column3, ....


SELECT column1, column2, column3, .... FROM table_name
FROM table_name AWHERE column_name NOT LIKE pattern
WHERE column_name LIKE pattern
LIKE operator’s wildcard patterns

Pattern Description
‘a%’ Start with “a”
‘%a’ Ends with “a”
‘%am%’ Has “am” in any position
‘a%m’ Starts with “a” and Ends with “m”
‘_a%’ “a” in the second position
‘__a%’ “a” in the third position
‘_oy’ “o” in teh second position and “y” in
third position
LIKE operator

Student Table WHERE Name LIKE “s%”


Name Age Gender DOB Name Age Gender DOB
Rana Umar 25 Male 1998-02-10 Salman Khan 24 Male 1999-07-22
Salman Khan 24 Male 1999-07-22 Sania Mirza 27 Female 1996-10-15
Maryam Khan 25 Female 1998-05-11
Sania Mirza 27 Female 1996-10-15 WHERE Name LIKE “%khan”
Babar Azam 26 Male 1997-03-12
Name Age Gender DOB
Salman Khan 24 Male 1999-07-22
Maryam Khan 25 Female 1998-05-11
BINARY LIKE operator

SELECT column1, column2, column3, ....


For case sensitive pattern FROM table_name
AWHERE BINARY column_name NOT LIKE
SELECT column1, column2, column3, .... pattern
FROM table_name
WHERE BINARY column_name LIKE
pattern
BINARY LIKE operator

Student Table WHERE BINARY Name LIKE “S%”


Name Age Gender DOB Name Age Gender DOB
Rana Umar 25 Male 1998-02-10 Salman Khan 24 Male 1999-07-22
Salman Khan 24 Male 1999-07-22 Sania Mirza 27 Female 1996-10-15
Maryam Khan 25 Female 1998-05-11
Sania Mirza 27 Female 1996-10-15 WHERE BINARY Name LIKE “s%”
Babar Azam 26 Male 1997-03-12
Name Age Gender DOB
ORDER BY ASC/DESC

SELECT column1, column2, column3, ....


SELECT column1, column2, column3, .... FROM table_name
FROM table_name ORDER BY column_name DESC
ORDER BY column_name ASC
ORDER BY ASC/DESC

Student Table SELECT *


FROM Student
ORDER BY Name
Name Age Gender DOB
Name Age Gender DOB
Rana Umar 25 Male 1998-02-10
Babar Azam 26 Male 1997-03-12
Salman Khan 24 Male 1999-07-22
Maryam Khan 25 Female 1998-05-11
Maryam Khan 25 Female 1998-05-11
Rana Umar 25 Male 1998-02-10
Sania Mirza 27 Female 1996-10-15
Salman Khan 24 Male 1999-07-22
Babar Azam 26 Male 1997-03-12
Sania Mirza 27 Female 1996-10-15

SELECT *
FROM Student
ORDER BY Age ASC, Name DESC
IS NULL

SELECT column1, column2, column3, ....


SELECT column1, column2, column3, .... FROM table_name
FROM table_name WHERE column_name IS NOT NULL
WHERE column_name IS NULL
IS NULL

Student Table SELECT * FROM Student


WHERE Age IS NULL
Name Age Gender DOB
Name Age Gender DOB
Rana Umar 25 Male 1998-02-10
Salman Khan Male 1999-07-22
Salman Khan Male 1999-07-22
Maryam Khan 25 Female 1998-05-11 SELECT * FROM Student
Sania Mirza 27 Female 1996-10-15 WHERE Age IS NOT NULL
Babar Azam 26 Male 1997-03-12 Name Age Gender DOB
Rana Umar 25 Male 1998-02-10
Maryam Khan 25 Female 1998-05-11
Sania Mirza 27 Female 1996-10-15
Babar Azam 26 Male 1997-03-12
LIMIT CLAUSE and Offset

SELECT column1, column2, column3, ....


SELECT column1, column2, column3, .... FROM table_name
FROM table_name WHERE condition
WHERE condition LIMIT offset, NumberOfRows
LIMIT number
LIMIT CLAUSE

Student Table SELECT * FROM Student


LIMIT 3
Name Age Gender DOB Name Age Gender DOB
Rana Umar 25 Male 1998-02-10 Rana Umar 25 Male 1998-02-10
Salman Khan 24 Male 1999-07-22 Salman Khan 24 Male 1999-07-22
Maryam Khan 25 Female 1998-05-11 Maryam Khan 25 Female 1998-05-11
SELECT * FROM Student SELECT * FROM Student
Sania Mirza 27 Female 1996-10-15 SELECT * FROM Student
Babar Azam 26 Male 1997-03-12 LIMIT 1,3
Name Age Gender DOB
Maryam Khan 25 Female 1998-05-11
Sania Mirza 27 Female 1996-10-15
Babar Azam 26 Male 1997-03-12
Aggregate Functions

SELECT COUNT (columnName)


COUNT(columnName) FROM table_name
WHERE condition
MAX (columnName)
SELECT SUM (columnName)
MIN (columnName) FROM table_name
WHERE condition

SUM (columnName)

AVG (columnName)
Aggregate functions

Student Table SELECT COUNT(Name) FROM student


COUNT(Name)
Name Age Gender City
Rana Umar 25 Male Lahore 5
Salman Khan 24 Male Multan SELECT COUNT(*) FROM student
Maryam Khan 25 Female Islamabad
COUNT(*)
Sania Mirza 27 Female Lahore
5
Babar Azam 26 Male Lahore
SELECT COUNT(DISTINCT City) AS CityCount
FROM student
SELECT MIN(Age) AS minAge, Name, Gender, City CityCount
FROM student
3
ROLLBACK and COMMIT

Works for

INSERT
UPDATE
DELETE
ROLLBACK and COMMIT

Student Table SELECT * FROM Student


UPDATE student
Name Age Gender DOB SET Age=26 WHERE Name=‘Rana Umar’
Rana Umar 25 Male 1998-02-10 COMMIT;
Salman Khan 24 Male 1999-07-22 UPDATE student
SET Age=27 WHERE Name=‘Babar Azam’
Maryam Khan 25 Female 1998-05-11 ROLLBACK;
Sania Mirza 27 Female 1996-10-15 SELECT * FROM Student
Babar Azam 26 Male 1997-03-12
PRIMARY KEY and FOREIGN KEY

ALTER TABLE table_name


CREATE TABLE studentTable( ADD PRIMARY KEY (id);
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL CHECK (age >=18),
city VARCHAR(10) NOT NULL DEFAULT ‘Lahore’
PRIMARY KEY (id)
);
PRIMARY KEY and FOREIGN KEY

Student Table City Table


id Name Age City
cid Cityname
1 Rana Umar 25 Lahore
1 Lahore
2 Salman Khan 24 Multan
2 Islamabad
3 Maryam Khan 25 Islamabad
3 Multan
4 Sania Mirza 27 Lahore
5 Babar Azam 26 Lahore
PRIMARY KEY and FOREIGN KEY

Student Table City Table


id Name Age City
LINK cid Cityname
1 Rana Umar 25 1
1 Lahore
2 Salman Khan 24 3
2 Islamabad
3 Maryam Khan 25 2
3 Multan
4 Sania Mirza 27 1
5 Babar Azam 26 1

PRIMARY KEY

FOREIGN KEY
PRIMARY KEY
PRIMARY KEY and FOREIGN KEY

ALTER TABLE table_name


CREATE TABLE studentTable( ADD FOREIGN KEY (city) REFERENCES City (cid)
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL CHECK (age >=18),
city VARCHAR(10) NOT NULL DEFAULT ‘Lahore’
PRIMARY KEY (id),
FOREIGN KEY (city) REFERENCES City (cid)
);
SQL JOINS

INNER JOIN: returns matched records of RIGHT JOIN: returns all records from the RIGHT
table and the matched records in both tables
both tables

LEFT JOIN: returns all records from


the left table and the matched
records in both tables
INNER JOIN

Student Table City Table


id Name Age City
cid Cityname
1 Rana Umar 25 1 MATCH 1 Lahore
2 Salman Khan 24 3
2 Islamabad
3 Maryam Khan 25 2
3 Multan
4 Sania Mirza 27 1
5 Babar Azam 26 1

PRIMARY KEY

FOREIGN KEY
PRIMARY KEY
INNER JOIN

SELECT column1,column2,column3
FROM table1
INNER JOIN table2
ON
table1.columnName=table2.columnNa
me
INNER JOIN

Student Table SELECT * FROM Student


INNER JOIN City
id Name Age City
ON Student.City=City.cid
1 Rana Umar 25 1
id Name Ag City cid Cityname
2 Salman Khan 24 3 e
3 Maryam Khan 25 2
1 Rana Umar 25 1 1 Lahore
4 Sania Mirza 27 1
2 Salman Khan 24 3 3 Multan
5 Babar Azam 26 1
3 Maryam Khan 25 2 2 Islamabad
4 Sania Mirza 27 1 1 Lahore
City Table 5 Babar Azam 26 1 1 Lahore
cid Cityname
1 Lahore
2 Islamabad
3 Multan
INNER JOIN– viewing some columns

Student Table SELECT s.id, s.Name, s.Age, c.Cityname FROM Student s


INNER JOIN City c
id Name Age City
ON s.City=c.cid
1 Rana Umar 25 1
id Name Ag Cityname
2 Salman Khan 24 3 e
3 Maryam Khan 25 2
1 Rana Umar 25 Lahore
4 Sania Mirza 27 1
2 Salman Khan 24 Multan
5 Babar Azam 26 1
3 Maryam Khan 25 Islamabad
4 Sania Mirza 27 Lahore
City Table 5 Babar Azam 26 Lahore
cid Cityname
1 Lahore
2 Islamabad
3 Multan
INNER JOIN – table name alising

Student Table SELECT * FROM Student s


INNER JOIN City c
id Name Age City
ON s.City=c.cid
1 Rana Umar 25 1
id Name Ag City cid Cityname
2 Salman Khan 24 3 e
3 Maryam Khan 25 2
1 Rana Umar 25 1 1 Lahore
4 Sania Mirza 27 1
2 Salman Khan 24 3 3 Multan
5 Babar Azam 26 1
3 Maryam Khan 25 2 2 Islamabad
4 Sania Mirza 27 1 1 Lahore
City Table 5 Babar Azam 26 1 1 Lahore
cid Cityname
1 Lahore
2 Islamabad
3 Multan
INNER JOIN– missing entry

Student Table SELECT * FROM Student


INNER JOIN City
id Name Age City
ON Student.City=City.cid
1 Rana Umar 25 1
id Name Ag City cid Cityname
2 Salman Khan 24 e
3 Maryam Khan 25 2
1 Rana Umar 25 1 1 Lahore
4 Sania Mirza 27 1
3 Maryam Khan 25 2 2 Islamabad
5 Babar Azam 26 1
4 Sania Mirza 27 1 1 Lahore
5 Babar Azam 26 1 1 Lahore
City Table
cid Cityname
1 Lahore
2 Islamabad
3 Multan
LEFT JOIN

SELECT column1,column2,column3
FROM table1
LEFT JOIN table2
ON
table1.columnName=table2.columnNa
me
LEFT JOIN

Student Table SELECT * FROM Student


LEFT JOIN City
id Name Age City
ON Student.City=City.cid
1 Rana Umar 25 1
id Name Ag City cid Cityname
2 Salman Khan 24 3 e
3 Maryam Khan 25 2
1 Rana Umar 25 1 1 Lahore
4 Sania Mirza 27 1
2 Salman Khan 24 3 3 Multan
5 Babar Azam 26 1
3 Maryam Khan 25 2 2 Islamabad
4 Sania Mirza 27 1 1 Lahore
City Table 5 Babar Azam 26 1 1 Lahore
cid Cityname
1 Lahore
2 Islamabad
3 Multan
LEFT– missing entry

Student Table SELECT * FROM Student


LEFT JOIN City
id Name Age City
ON Student.City=City.cid
1 Rana Umar 25 1
id Name Ag City cid Cityname
2 Salman Khan 24 e
3 Maryam Khan 25 2
1 Rana Umar 25 1 1 Lahore
4 Sania Mirza 27 1
2 Salman Khan 24
5 Babar Azam 26 1
3 Maryam Khan 25 2 2 Islamabad
4 Sania Mirza 27 1 1 Lahore
City Table 5 Babar Azam 26 1 1 Lahore
cid Cityname
1 Lahore
2 Islamabad
3 Multan
RIGHT JOIN

SELECT column1,column2,column3
FROM table1
RIGHT JOIN table2
ON
table1.columnName=table2.columnNa
me
RIGHT JOIN – missing entry

Student Table SELECT * FROM Student


RIGHT JOIN City
id Name Age City
ON Student.City=City.cid
1 Rana Umar 25 1
id Name Ag City cid Cityname
2 Salman Khan 24 3 e
3 Maryam Khan 25 2
1 Rana Umar 25 1 1 Lahore
4 Sania Mirza 27 1
2 Salman Khan 24 3 3 Multan
5 Babar Azam 26 1
3 Maryam Khan 25 2 2 Islamabad
4 Sania Mirza 27 1 1 Lahore
City Table 5 Babar Azam 26 1 1 Lahore
cid Cityname 4 Karachi
1 Lahore
2 Islamabad
3 Multan
4 Karachi
LEFT JOIN– missing entry

Student Table SELECT * FROM Student


RIGHT JOIN City
id Name Age City
ON Student.City=City.cid
1 Rana Umar 25 1
id Name Ag City cid Cityname
2 Salman Khan 24 e
3 Maryam Khan 25 2
1 Rana Umar 25 1 1 Lahore
4 Sania Mirza 27 1
3 Maryam Khan 25 2 2 Islamabad
5 Babar Azam 26 1
4 Sania Mirza 27 1 1 Lahore
5 Babar Azam 26 1 1 Lahore
City Table 4 Karachi
cid Cityname
1 Lahore
2 Islamabad
3 Multan
4 Karachi
CROSS JOIN

SELECT column1,column2,column3
FROM table1
CROSS JOIN table2
ON
table1.columnName=table2.columnNa
me
INNER JOIN for multiple tables

SELECT columns
FROM table1
INNER JOIN table2
ON table1.columnName=table2.columnName
INNER JOIN table3
ON table1.columnName=table3.columnName
INNER JOIN for multiple tables

Student SELECT * FROM Student s


id Name Percent City Course INNER JOIN City c ON s.City=c.cid
INNER JOIN Courses cr ON s.Courses=cr.course_id
1 Rana Umar 75 1 1
2 Salman Khan 64 3 2 id Name Pe C Co ci Cname Cr_i C_nam
rc i urs d d
3 Maryam Khan 55 2 1 en
t t e
4 Sania Mirza 67 1 1 y
5 Babar Azam 96 1 3
1 Rana Umar 75 1 1 1 Lahore 1 Compute

City Courses 2 Salman Khan 64 3 2 3 Multan 2 Electroni

cid Cname Cr_id C_name


3 Maryam Khan 55 2 1 2 Islamabad 1 Compute
1 Lahore 1 Computer
2 Islamabad 2 Electronics 4 Sania Mirza 67 1 1 1 Lahore 1 Compute
3 Multan 3 Power
5 Babar Azam 96 1 3 1 Lahore 3 Power
INNER JOIN for multiple tables

Student SELECT s.id, s.Name, s.Percent, c.Cname, cr.Cr_name


id Name Percent City Course FROM Student s
INNER JOIN City c ON s.City=c.cid
1 Rana Umar 75 1 1
INNER JOIN Courses cr ON s.Courses=cr.course_id
2 Salman Khan 64 3 2
id Name Pe Cname Cr_name
3 Maryam Khan 55 2 1 rc
en
4 Sania Mirza 67 1 1 t
5 Babar Azam 96 1 3
1 Rana Umar 75 Lahore Computer

City
2 Salman Khan 64 Multan Electronics
Courses
cid Cname Cr_id Cr_name 3 Maryam Khan 55 Islamabad Computer
1 Lahore 1 Computer
2 Islamabad 2 Electronics 4 Sania Mirza 67 Lahore Computer
3 Multan 3 Power
5 Babar Azam 96 Lahore Power
INNER JOIN for multiple tables—
missing entry
Student SELECT * FROM Student s
id Name Percent City Course LEFT JOIN City c ON s.City=c.cid
LEFT JOIN Courses cr ON s.Courses=cr.course_id
1 Rana Umar 75 1 1
2 Salman Khan 64 3 2 id Name Pe C Co ci Cname Cr_i C_nam
rc i urs d d
3 Maryam Khan 55 2 1 en
t t e
4 Sania Mirza 67 1 y
5 Babar Azam 96 1 3
1 Rana Umar 75 1 1 1 Lahore 1 Compute

City Courses 3 Maryam Khan 55 2 1 2 Islamabad 1 Compute

cid Cname Cr_id C_name


5 Babar Azam 96 1 3 3 Lahore 3 Power
1 Lahore 1 Computer
2 Islamabad 2 Electronics
3 Power
LEFT JOIN & RIGHT JOIN for multiple tables

SELECT columns
SELECT columns FROM table1
RIGHT JOIN table2
FROM table1 ON table1.columnName=table2.columnName
LEFT JOIN table2 RIGHT JOIN table3
ON table1.columnName=table2.columnName ON table1.columnName=table3.columnName
LEFT JOIN table3
ON table1.columnName=table3.columnName
INNER JOIN for multiple tables

Student SELECT * FROM Student s


id Name Percent City Course LEFT JOIN City c ON s.City=c.cid
LEFT JOIN Courses cr ON s.Courses=cr.course_id
1 Rana Umar 75 1 1
2 Salman Khan 64 3 2 id Name Pe C Co ci Cname Cr_i C_nam
rc i urs d d
3 Maryam Khan 55 2 1 en
t t e
4 Sania Mirza 67 1 y
5 Babar Azam 96 1 3
1 Rana Umar 75 1 1 1 Lahore 1 Compute

City Courses 2 Salman Khan 64 3 2 2 Electroni

cid Cname Cr_id C_name


3 Maryam Khan 55 2 1 2 Islamabad 1 Compute
1 Lahore 1 Computer
2 Islamabad 2 Electronics 4 Sania Mirza 67 1 Lahore
3 Power
5 Babar Azam 96 1 3 3 Lahore 3 Power
GROUP BY and HAVING Clause

Used in conjunction with Aggregate HAVING Clause is used to check a condition after
functions to group rows together, by GROUP BY clause
common values
GROUP BY and HAVING Clause

Student Table SELECT City.Cityname, count(Student.city) AS Total


FROM Student INNER JOIN City ON Student.City=City.cid
id Name Age City
WHERE Student.Age >=20
1 Rana Umar 25 1 GROUP BY city;
2 Salman Khan 24 3
3 Maryam Khan 25 2
4 Sania Mirza 18 1
5 Babar Azam 26 1 Cityname Total
Lahore 2

City Table Islamabad


Multan
1
1
cid Cityname
1 Lahore
2 Islamabad
3 Multan
GROUP BY and HAVING Clause

Student Table SELECT City.Cityname, count(Student.city) AS Total


FROM Student INNER JOIN City ON Student.City=City.cid
id Name Age City
WHERE Student.Age >=20
1 Rana Umar 25 1 GROUP BY city
2 Salman Khan 24 3 HAVING count(Student.city) > 1;
3 Maryam Khan 25 2
4 Sania Mirza 18 1
5 Babar Azam 26 1 Cityname Total
Lahore 2

City Table
cid Cityname
1 Lahore
2 Islamabad
3 Multan
GROUP BY and HAVING Clause

Student Table SELECT City.Cityname, count(Student.city) AS Total


FROM Student INNER JOIN City ON Student.City=City.cid
id Name Age City
WHERE Student.Age >=20
1 Rana Umar 25 1 GROUP BY city
2 Salman Khan 24 3 HAVING count(Student.city) > =1
ORDER BY Total ASC;
3 Maryam Khan 25 2
4 Sania Mirza 18 1
5 Babar Azam 26 1 Cityname Total
Multan 1

City Table Islamabad


Lahore
1
2
cid Cityname
1 Lahore
2 Islamabad
3 Multan

You might also like