0% found this document useful (0 votes)
5 views18 pages

Chapter Eng Table Joins and Indexes in SQL

Uploaded by

Pritika Sachdeva
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views18 pages

Chapter Eng Table Joins and Indexes in SQL

Uploaded by

Pritika Sachdeva
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Table Joins and Indexes in SQL

Based on CBSE Curriculum


Class -11

By-
Neha
Tyagi
PGT CS
KV 5 Jaipur II
Shift Jaipur
Neha Tyagi, PGT Region
CS II Shift Jaipur
Introducti
• Sometimes on
we need an information
which is receiving data from multiple
tables.
• If the tables have some common field
then it become easier to join these
tables and can retrieve the data.
• In this chapter, we will learn joining of
tables and the process of information
retrieval.
• In this chapter we will also learn
indexes of SQL which facilitates
Neha Tyagi, KV 5 Jaipur II Shift
JOINS
• Join is a query which combine rows of two or
more tables.
• In a join-query, we need to provide a list of
tables in FROM Clause.
• The process of combining multiple tables in
order to retrieve data is called joining. For
ex-

SELECT * FROM emp1, dept;

• Unrestricted join or cartesian product of both


the tables gives all possible concatenations
of all the rows of both the tables.
Neha Tyagi, KV 5 Jaipur II Shift
Making Table ready for
join

In above given example there are two tables namely emp1 and dept.
In emp1 table, primary key is empcode and in table dept foreign key is
empcode which is referring empcode of emp1 table.

Neha Tyagi, KV 5 Jaipur II Shift


Making Table ready for
join By analyzing
the tables we
will be
informed
that how
table are
joined here.

Now we will
see that how
join works.

Neha Tyagi, KV 5 Jaipur II Shift


Join
query mysql>
SELECT *
from emp1,
dept;

Data from
each column
with the
combination
of each
record has
show on
execution of
query.
Neha Tyagi, KV 5 Jaipur II Shift
Condition is
Join
query
To get the details about the departments and their in-
charges, query will be-

mysql> SELECT name, deptname from emp1, dept


where emp1.empcode=dept.deptic;

When both the tables have same field name, then to


show a field from particular table, use the following
pattern to access a field- <Table name>.<Field
Name>
Ex- emp1.empcode
This is an example of Equi-
Join, in which columns are
compared for equality and
it is also an example of
Natural- Join, in which only
one of the identical columns
Additional search with Join
If Query
you want to get information that Ankit is in-charge
of which department, following query will be used.-

mysql> SELECT name, deptname from emp1, dept


where emp1.empcode=dept.deptic and
emp1.name=‘Ankit’;

Neha Tyagi, KV 5 Jaipur II Shift


Using Table
• Sometimes we Aliases
have very big file names and more than
one table have same filed names.
• In such cases, we need to write file names again and
again which
consumes time.
• This can be solved by using alias for
These are table aliases.
tables.
See the following example-
mysql> SELECT E.name, E.Salary,
D.DeptName
FROM emp1 E, dept D
WHERE
E.empcode=D.deptic;

Neha Tyagi, KV 5 Jaipur II Shift


Joining more than one
• table
Sometimes it is required to get the data from more than one
table. In such cases , tables are to be joined on the basis of
some matching columns.
• See the following example-
mysql> SELECT E.name, E.Salary, D.DeptName, G.grade
FROM emp1 E, dept D,
salarygrade G WHERE
E.empcode=D.deptic
AND E.salary BETWEEN G.lowsal
AND G.hisal;

This is an example of Non-


Equi-Join where condition is
given without using ‘=‘.

Neha Tyagi, KV 5 Jaipur II Shift


Joining table using JOIN
• Clause
SQL provides some special clauses for joining of tables-
JOIN (and NATURAL JOIN) clause .
mysql > SELECT * FROM <table1>
[CROSS] [NATURAL] JOIN <Table2>
[ON (<Join Condition>) |
USING(<JoinFields>)];

• For creating cartesian product -


SELECT * FROM emp1 JOIN
• dept;
For creating CROSS JOIN - same output as we
have
Theseseen
will in previous
SELECT * FROM emp1 CROSS JOIN dept; give the
slides.
• For creating EQUI- JOIN-
SELECT * FROM emp1 e. JOIN dept d
ON (e.empcode=d.deptic);

• For creating NATURAL JOIN-


SELECT * FROM emp1 NATURAL JOIN
dept; Neha Tyagi, KV 5 Jaipur II Shift
LEFT-JOIN
• When we use LEFT-JOIN, it returns all rows from first table
whether it has matching rows in second table or not.
• It shows NULL in columns for the unmatched rows of first table.

mysql>SELECT <Col List> FROM <table1> LEFT JOIN <table2>


ON <joining Condition>

Right-
• JOIN
When we use RIGHT-JOIN, it returns all rows from second table
whether it has matching rows in first table or not.
• It shows NULL in columns for the unmatched rows of second
table.

mysql>SELECT <Col List> FROM <table1> RIGHT JOIN <table2>


ON <joining Condition>

Neha Tyagi, KV 5 Jaipur II Shift


Indexes in
• Database
Index is a data structure maintained by a database that helps to
find records within a table more quickly.
• An index stores the sorted/ordered values within the index field
and their location in the actual table.
• An index in a database is also a table which stores arranged
values of one
or more columns in a specific order.

Neha Tyagi, KV 5 Jaipur II Shift


Creation of Indexes in
• MySQL
We can create indexes in MySQL by two methods-
1. At the time of table creation.
2. Creation of index at some already existing table.
• Syntax for first case–
CREATE TABLE <TableName> (<Col1> <type(Size)>
<Constraint>,
<Col2> <type(Size)> <Constraint>,
<Col3> <type(Size)> <Constraint>, . . . .
INDEX <IndexName> (<IndexCol1Name> <Length>
<ASC/DESC>,
<IndexCol2Name>
<Length> <ASC/DESC>, . . ));
• Example :
mysql>Create table PLAYERS ( PLAYERNO INT NOT NULL,
NAME CHAR(15) NOT
NULL, DOB DATE,
SEX CHAR(1) NOT NULL,
ADDRESS VARCHAR(100)
NOT NULL,
PHONE CHAR(10),
Neha Tyagi, KV 5 Jaipur II Shift
Creation of Indexes in
• SyntaxMySQL
for second case-

CREATE INDEX <IndexName> ON


<TableName> (<Col1name> [ASC|DESC],
<Col2name> [ASC|
DESC], . . );
Or to keep unique vales-
CREATE UNIQUE INDEX <IndexName> ON
<TableName> (<Col1name> [ASC|DESC],
<Col2name> [ASC|
DESC], . . );

Example:
mysql>Create index Player_idx on Players (name(5));
OR
Create Unique index Player_idx on Players
(Teamno);
Neha Tyagi, KV 5 Jaipur II Shift
Indexes in
• To show theDatabase
Indexes, use the following
command –
mysql> SHOW INDEXES FROM
<TableName>; Example :
mysql> SHOW INDEXES FROM Players;
• To delete the Indexe, use the
following command
mysql> DROP INDEX <IndexName> ON
<Tablename>; Example:
mysql> Drop Index Player_idx ON Players;

• To rename the Indexe, use the


following command
mysql> ALTER TABLE <TableName> RENAME
INDEX <OldName>
TO <NewName>;
Example : Neha Tyagi, KV 5 Jaipur II Shift
Advantages & Disadvantages of
• Advantages
Indexes :
• With Indexes, queries gives much better
performance.
• Data retrieval is much faster with Indexes.
• Indexes are very useful for Sorting purpose.
• Unique indexes guarantee uniquely identifiable
records in the database.

• Disadvantages :
• With Indexes, the performance of insert, update and delete
decreases. As every time insert/update/delete operation
happens, the index is to be updated accordingly.
• Index consumes storage space and this increases with the
number of
fields used and the length of the table.
Neha Tyagi, KV 5 Jaipur II Shift
Thank
you
Please follow us on our
blog

www.pythontrends.wordpress.com

Neha Tyagi, KV 5 Jaipur II Shift

You might also like