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

Lab # 08 Implementation of SQL Joins

The document discusses different types of SQL joins: 1) INNER JOIN returns rows when there is a match between both tables. LEFT JOIN returns all rows from the left table, even without matches in the right table. RIGHT JOIN returns all rows from the right table, even without matches in the left table. 2) FULL JOIN returns rows when there is a match in either table. 3) Examples demonstrate INNER, LEFT, RIGHT and FULL JOINs using Persons and Orders tables related by Person ID. The results set shows how each type of join handles rows with and without matches between the tables.

Uploaded by

Mehak Fatima
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views

Lab # 08 Implementation of SQL Joins

The document discusses different types of SQL joins: 1) INNER JOIN returns rows when there is a match between both tables. LEFT JOIN returns all rows from the left table, even without matches in the right table. RIGHT JOIN returns all rows from the right table, even without matches in the left table. 2) FULL JOIN returns rows when there is a match in either table. 3) Examples demonstrate INNER, LEFT, RIGHT and FULL JOINs using Persons and Orders tables related by Person ID. The results set shows how each type of join handles rows with and without matches between the tables.

Uploaded by

Mehak Fatima
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 14

LAB # 08

SQL Joins

Lab Instructor: Mehk Fatima Page 1


Lab Objective:
Understand the different commands used in SQL.

SQL JOIN
SQL joins are used to query data from two or more tables, based on a relationship between certain
columns in these tables. The JOIN keyword is used in an SQL statement to query data from two or
more tables, based on a relationship between certain columns in these tables. Tables in a database are
often related to each other with keys. A primary key is a column (or a combination of columns) with
a unique value for each row. Each primary key value must be unique within the table. The purpose is
to bind data together, across tables, without repeating all of the data in every table.

Look at the "Persons" table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Note that the "P_Id" column is the primary key in the "Persons" table. This means that no two
rows can have the same P_Id. The P_Id distinguishes two persons even if they have the same
name.

Next, we have the "Orders" table:

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

Lab Instructor: Mehk Fatima Page 2


5 34764 15

Note that the "O_Id" column is the primary key in the "Orders" table and that the "P_Id"
column refers to the persons in the "Persons" table without using their names.

Notice that the relationship between the two tables above is the "P_Id" column.

Different SQL JOINs


Before we continue with examples, we will list the types of JOIN you can use, and
the differences between them.

 JOIN: Return rows when there is at least one match in both tables
 LEFT JOIN: Return all rows from the left table, even if there are no matches in the
right table
 RIGHT JOIN: Return all rows from the right table, even if there are no matches in the
left table
 FULL JOIN: Return rows when there is a match in one of the tables

Lab Instructor: Mehk Fatima Page 3


SQL INNER JOIN Keyword
The INNER JOIN keyword return rows when there is at least one match in both tables.

SQL INNER JOIN Syntax

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

PS: INNER JOIN is the same as JOIN.

SQL INNER JOIN Example

The "Persons" table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

The "Orders" table:

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

Lab Instructor: Mehk Fatima Page 4


5 34764 15

Now we want to list all the persons with any orders.

We use the following SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo


FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

The result-set will look like this:

LastName FirstName OrderNo

Hansen Ola 22456

Hansen Ola 24562

Pettersen Kari 77895

Pettersen Kari 44678

The INNER JOIN keyword return rows when there is at least one match in both tables. If there are
rows in "Persons" that do not have matches in "Orders", those rows will NOT be listed

SQL LEFT JOIN Keyword


The LEFT JOIN keyword returns all rows from the left table (table_name1), even if there are
no matches in the right table (table_name2).

SQL LEFT JOIN Syntax

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2

Lab Instructor: Mehk Fatima Page 5


ON table_name1.column_name=table_name2.column_name

PS: In some databases LEFT JOIN is called LEFT OUTER JOIN.

SQL LEFT JOIN Example

The "Persons" table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

The "Orders" table:

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Now we want to list all the persons and their orders - if any, from the tables

above. We use the following SELECT statement:

Lab Instructor: Mehk Fatima Page 6


SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

The result-set will look like this:

LastName FirstName OrderNo

Hansen Ola 22456

Hansen Ola 24562

Pettersen Kari 77895

Pettersen Kari 44678

Svendson Tove

The LEFT JOIN keyword returns all the rows from the left table (Persons), even if there are no
matches in the right table (Orders).

SQL RIGHT JOIN Keyword


The RIGHT JOIN keyword Return all rows from the right table (table_name2), even if there
are no matches in the left table (table_name1).

SQL RIGHT JOIN Syntax

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

PS: In some databases RIGHT JOIN is called RIGHT OUTER JOIN.

SQL RIGHT JOIN Example

Lab Instructor: Mehk Fatima Page 7


The "Persons" table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

The "Orders" table:

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Now we want to list all the orders with containing persons - if any, from the tables

above. We use the following SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo


FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

The result-set will look like this:

LastName FirstName OrderNo

Lab Instructor: Mehk Fatima Page 8


Hansen Ola 22456

Hansen Ola 24562

Pettersen Kari 77895

Pettersen Kari 44678

34764

The RIGHT JOIN keyword returns all the rows from the right table (Orders), even if there are no
matches in the left table (Persons).

SQL FULL JOIN Keyword


The FULL JOIN keyword return rows when there is a match in one of the tables.

SQL FULL JOIN Syntax

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SQL FULL JOIN Example

The "Persons" table:

P_Id LastName FirstName Address City

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

The "Orders" table:

O_Id OrderNo P_Id

Lab Instructor: Mehk Fatima Page 9


1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Now we want to list all the persons and their orders, and all the orders with their persons.

We use the following SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo


FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

The result-set will look like this:

LastName FirstName OrderNo

Hansen Ola 22456

Hansen Ola 24562

Pettersen Kari 77895

Pettersen Kari 44678

Svendson Tove

34764

The FULL JOIN keyword returns all the rows from the left table (Persons), and all the rows
from the right table (Orders). If there are rows in "Persons" that do not have matches in
"Orders", or if there are rows in "Orders" that do not have matches in "Persons", those rows will
be listed as well.

Lab Instructor: Mehk Fatima Page 10


Lab Tasks:

1): Consider the following two tables:

a) CUSTOMER table is as follow:

b) ORDER table is as follow:

 Write SQL statement(s) to extract the following information from the above tables.

2): Consider the following two tables:

a) SUPPLIER table is as follow:

Lab Instructor: Mehk Fatima Page 11


b) ORDER table is as follow:

 Write SQL statement(s) to extract the following information from the above tables.

a):

b):

c):

Lab Instructor: Mehk Fatima Page 12


3): Consider the following two tables:
Table: Buildings (Read-Only)
Building_name Capacity
1e 24
1w 32
2e 16
2w 20

Table: Employees (Read-Only)


Role Name Building Years_employed
Engineer Becky A. 1e 4
Engineer Malcom S. 1e 1
Artist Lillia A. 2w 7
Artist Brandon J. 2w 7
Manager Daria O. 2w 6

 List all buildings and the distinct employee roles in each building (including empty
buildings)

4): Consider the following two tables:


Table: Movies (Read-Only)
Id Title Director Year Length_minutes
1 Toy Story John Lasseter 1995 81
2 A Bug's Life John Lasseter 1998 95
3 Toy Story 2 John Lasseter 1999 93
4 Monsters, Inc. Pete Docter 2001 92
5 Finding Nemo Andrew Stanton 2003 107
6 The Incredibles Brad Bird 2004 116

Lab Instructor: Mehk Fatima Page 13

Table: Boxoffice (Read-Only)


Movie_id Rating Domestic_sales International_sales
5 8.2 380843261 555900000
4 7.4 268492764 475066843
1 8 206445654 417277164
2 6.4 191452396 368400000
3 7.9 245852179 239163000
6 8 261441092 370001000

 Find the domestic and international sales for each movie


 Show the sales numbers for each movie that did better internationally rather than
domestically
 List all the movies by their ratings in descending order

You might also like