Join tables in the specific database
Consider a case, where there is too many records and tables in a database. Now to retrieve a particular row from a table or database is a very time consuming. So, what the alternative to that, divide the table in more than one table. In this section, we are going to see how to join two or more tables in a specific database. For this you need to have two or more table in the database. If two or more tables are available in the database then Join operation is performed otherwise not. Firstly, it is important to know about the join operation. Join operation provides the facility to combine records between two or more tables. It relates one table to another. Joining is the type of query for retrieving data two or more table in specific database. You can join the tables various types like: Natural join, Natural left join, Natural right join and so on. Here we are providing you an example with code that joins two tables through the NATURAL JOIN. Brief information given below:
Join: A join provides the facility to connect two tables are merged to each other according to field that is common and creates a new virtual table.
NATURAL JOIN: It is a type of join that retrieves data within specified tables to specific field is matched.
NATURAL LEFT JOIN: In this operation both tables are merged to each other according to common fields but the priority is given to the first table in database.
NATURAL RIGHT JOIN: It also same as Natural left join but it retrieves the data from the second table in the database.
Description of program:
First of all, this program establishes the connection with MySQL database through the JDBC driver. After establishing the connection the NATURAL JOIN operation is performed within two tables say: employee and Emp_sal. The employee table holds the Emp_ed and Emp_name fields and Emp_sal table contains the Emp_name and Emp_sal. We are making use of the emp_name to join the tables.
Description of code:
SELECT *FROM employee NATURAL JOIN Emp_sal:
This code is used to show all fields that matches in the both tables on the
basis of Emp_name field.
Here is the code of program:
import java.sql.*; public class NatJoinTable{ public static void main(String[] args) { System.out.println("Natural Join Tables Example!"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/jdbctutorial","root","root"); try{ Statement st = con.createStatement(); ResultSet res = st.executeQuery ("SELECT *FROM "+"employee"+" NATURAL JOIN "+"Emp_sal"); //Join two tables System.out.println("Emp_name" + "\t" + "Emp_ed" + "\t" + "Emp_sal"); while(res.next()){ String name = res.getString("Emp_name"); int ed = res.getInt("Emp_ed"); int sal = res.getInt("Emp_sal"); System.out.println(name + "\t\t" + ed + "\t" + sal); } } catch (SQLException s){ System.out.println("SQL statement is not executed!"); } } catch (Exception e){ e.printStackTrace(); } } }
Table:-
employee:
Emp_ed | Emp_name |
2
10 13 |
santosh
deepak Aman |
Table:- Emp_sal:
Emp_name | Emp_sal |
Aman
santosh |
8000
4500 |
Output of program:
C:\vinod\jdbc\jdbc\jdbc-mysql>javac NatJoinTable.java C:\vinod\jdbc\jdbc\jdbc-mysql>java NatJoinTable Natural Join Tables Example! Emp_name Emp_ed Emp_sal santosh 2 4500 Aman 13 8000 |