0% found this document useful (0 votes)
50 views30 pages

Class Note 05 - OOP

The document discusses different ways to implement event handling in Java GUI applications using interfaces like ActionListener, MouseListener and inner classes. It provides examples of using these interfaces and anonymous inner classes to handle button click and mouse events. It also discusses exercises to set the title of a frame by getting text from a text field on button click and provides multiple options to solve it using inner classes.

Uploaded by

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

Class Note 05 - OOP

The document discusses different ways to implement event handling in Java GUI applications using interfaces like ActionListener, MouseListener and inner classes. It provides examples of using these interfaces and anonymous inner classes to handle button click and mouse events. It also discusses exercises to set the title of a frame by getting text from a text field on button click and provides multiple options to solve it using inner classes.

Uploaded by

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

CMJD Diploma in Comprehensive Master Java Developer

Interface as a Contract

01.

import javax.swing.*;
import java.awt.*;
class Calculator extends JFrame{
JButton exitButton;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

exitButton=new JButton("Exit");
exitButton.setFont(new Font("",1,25));
exitButton.add(new MyClass());
add(exitButton);
setVisible(true);
}
}
class MyClass{
public void myMethod(){
System.out.println("You presss the exit button..");
System.exit(0);
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}

02.
ActionListener vs ActionEvent
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton exitButton;
Calculator(){
setSize(300,300);

Page 1 of 30
CMJD Diploma in Comprehensive Master Java Developer

setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

exitButton=new JButton("Exit");
exitButton.setFont(new Font("",1,25));
exitButton.addActionListener(new MyClass());
add(exitButton);

setVisible(true);
}
}
/*
interface ActionListener{
public void actionPerformed(ActionEvent evt);
}
*/

class MyClass implements ActionListener{


public void actionPerformed(ActionEvent evt){
System.out.println("You pressed the exit button..");
System.exit(0);
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}

03.
MouseListener vs MouseEvent

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton exitButton;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);

Page 2 of 30
CMJD Diploma in Comprehensive Master Java Developer

setLayout(new FlowLayout());

exitButton=new JButton("Exit");
exitButton.setFont(new Font("",1,25));
exitButton.addMouseListener(new MyClass());
add(exitButton);

setVisible(true);
}
}
/*
interface MouseListener{
public void mouseEntered(MouseEvent evt);
public void mousePressed(MouseEvent evt);
public void mouseReleased(MouseEvent evt);
public void mouseClicked(MouseEvent evt);
public void mouseExited(MouseEvent evt);
}
*/

class MyClass implements MouseListener{


public void mouseEntered(MouseEvent evt){
System.out.println("mouseEntered");
}
public void mousePressed(MouseEvent evt){
System.out.println("mousePressed");
}
public void mouseReleased(MouseEvent evt){
System.out.println("mouseReleased");
}
public void mouseClicked(MouseEvent evt){
System.out.println("mouseClicked");
}
public void mouseExited(MouseEvent evt){
System.out.println("mouseExited");
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}

Page 3 of 30
CMJD Diploma in Comprehensive Master Java Developer

04. Exercise

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;

Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);

setTitleButton=new JButton("Set Title");


setTitleButton.setFont(new Font("",1,25));
setTitleButton.addActionListener(new SetTitleButtonAction());
add(setTitleButton);

setVisible(true);
}
}

class SetTitleButtonAction implements ActionListener{


public void actionPerformed(ActionEvent evt){
String title=textField.getText(); //Illegal
setTitle(title); //Illegal
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}

Page 4 of 30
CMJD Diploma in Comprehensive Master Java Developer

05 Option 1 for 04.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);

setTitleButton=new JButton("Set Title");


setTitleButton.setFont(new Font("",1,25));
setTitleButton.addActionListener(new SetTitleButtonAction(this));
add(setTitleButton);

setVisible(true);
}
}

class SetTitleButtonAction implements ActionListener{


Calculator cal;
SetTitleButtonAction(Calculator cal){
this.cal=cal;
}
public void actionPerformed(ActionEvent evt){
String title=cal.textField.getText();
cal.setTitle(title);
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}

Page 5 of 30
CMJD Diploma in Comprehensive Master Java Developer

06. Option 2 for 04 (Regular Inner Classes)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);

setTitleButton=new JButton("Set Title");


setTitleButton.setFont(new Font("",1,25));
setTitleButton.addActionListener(new SetTitleButtonAction());
add(setTitleButton);

setVisible(true);
}
class SetTitleButtonAction implements ActionListener{
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
}

class Demo{
public static void main(String args[]){
new Calculator();
}
}

Page 6 of 30
CMJD Diploma in Comprehensive Master Java Developer

07. Option 3 for 04 (Local Inner Classes)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;

Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);

setTitleButton=new JButton("Set Title");


setTitleButton.setFont(new Font("",1,25));

//---------------Local Inner Classes-----------------


class SetTitleButtonAction implements ActionListener{
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
}

setTitleButton.addActionListener(new SetTitleButtonAction());
add(setTitleButton);

setVisible(true);
}

class Demo{
public static void main(String args[]){
new Calculator();

Page 7 of 30
CMJD Diploma in Comprehensive Master Java Developer

}
}

08. Option 4 for 04


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame implements ActionListener{
JButton setTitleButton;
JTextField textField;

Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);

setTitleButton=new JButton("Set Title");


setTitleButton.setFont(new Font("",1,25));

setTitleButton.addActionListener(this);
add(setTitleButton);

setVisible(true);
}
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}

class Demo{

public static void main(String args[]){


new Calculator();
}
}

Page 8 of 30
CMJD Diploma in Comprehensive Master Java Developer

09 Option 5 for 04 (Using anonymous inner classes)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setTitleButton=new JButton("Set Title");
setTitleButton.setFont(new Font("",1,25));
//---------------Anonymous Inner Classes-----------------
ActionListener ob=new ActionListener(){
int x;
public void myMethod(){
}
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
};
setTitleButton.addActionListener(ob);
add(setTitleButton);

setVisible(true);
}

}
class Demo{
public static void main(String args[]){
new Calculator();
}
}

Page 9 of 30
CMJD Diploma in Comprehensive Master Java Developer

10.
Anonymous Inner classes

class Vehicle{
public void park(){
System.out.println("Vehicle Parking...");
}
}
class Demo{
public static void main(String args[]){
Vehicle v1=new Vehicle();
v1.park();

Vehicle v2=new Vehicle(){


//
public void park(){
System.out.println("Car Parking...");
}
};
v2.park();
}
}

11.
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
//Vehicle v1=new Vehicle();//Illegal

Vehicle v2=new Vehicle(){


//
public void park(){
System.out.println("Car Parking...");
}
};
v2.park();
}
}

Page 10 of 30
CMJD Diploma in Comprehensive Master Java Developer

12.
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v2=new Vehicle(){
//
public void park(){
System.out.println("Car Parking...");
}
}//;//Illegal
v2.park();
}
}

13.
Option 6 for 04 (From Option4)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;

Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);

setTitleButton=new JButton("Set Title");


setTitleButton.setFont(new Font("",1,25));

//---------------Anonymous Inner Classes-----------------

Page 11 of 30
CMJD Diploma in Comprehensive Master Java Developer

setTitleButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
});
add(setTitleButton);

setVisible(true);
}

class Demo{
public static void main(String args[]){
new Calculator();
}
}

14.
Option 7 for 04 Using “Lambda expression”

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());

textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setTitleButton=new JButton("Set Title");
setTitleButton.setFont(new Font("",1,25));
ActionListener ob=(evt)->{
String title=textField.getText();
setTitle(title);
};

Page 12 of 30
CMJD Diploma in Comprehensive Master Java Developer

setTitleButton.addActionListener(ob);
add(setTitleButton);

setVisible(true);
}

class Demo{
public static void main(String args[]){
new Calculator();
}
}

Lambda Expression (Since JDK1.8)

15.
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=new Vehicle(){
public void park(){
System.out.println("Car Parking...");
}
};
v1.park();

Vehicle v2=()->{
System.out.println("Car Parking... Lambda Expression");
};
v2.park();
}
}

16. Case I
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->System.out.println("Car Parking... Lambda Expression");

Page 13 of 30
CMJD Diploma in Comprehensive Master Java Developer

v1.park();
}
}

17. Case II

interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->{
System.out.println("Statement 1 ");
System.out.println("Statement 2 ");
};
v1.park();
}
}

18. Case III


interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->{
System.out.println("Statement 1 ");
System.out.println("Statement 2 ");
} //; //Illegal
v1.park();
}
}

19. Case IV

interface Vehicle{
public void park(int location);
}
class Demo{
public static void main(String args[]){
Vehicle v1=(x)->{
System.out.println("Car Parking "+x);
};
v1.park(1001);

Page 14 of 30
CMJD Diploma in Comprehensive Master Java Developer

Vehicle v2=(int location)->{


System.out.println("Car Parking "+location);
};
v2.park(1002);
}
}

20 Case V

interface Vehicle{
public boolean park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->true;
//Vehicle v2=()->return true;

Vehicle v3=()->{
//
//
return true;
};

}
}

21. Case VI

interface Vehicle{
public void park();
public void start();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->{ //illegal

};

22. Case VII

Page 15 of 30
CMJD Diploma in Comprehensive Master Java Developer

interface Vehicle{
public void park();
default public void start(){
System.out.println("Default Implementation of start");
}
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->{ //illegal
System.out.println("Car Parking.");
};
v1.park();
v1.start();

}
}
//Vehicle is a functional interface

23. Exercise

interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){

}
}

24.

interface Math{
public int operate(int num1,int num2);
}
class Addition implements Math{
public int operate(int num1,int num2){
return num1+num2;
}
}
class Substraction implements Math{
public int operate(int num1,int num2){
return num1-num2;

Page 16 of 30
CMJD Diploma in Comprehensive Master Java Developer

}
}
class Division implements Math{
public int operate(int num1,int num2){
return num1/num2;
}
}
class Multiplication implements Math{
public int operate(int num1,int num2){
return num1*num2;
}
}
class Demo{
public static void main(String args[]){
int a=100,b=50;
int result;
Addition add=new Addition();
Substraction sub=new Substraction();
Division div=new Division();
Multiplication mul=new Multiplication();

System.out.println(a+" + "+b+" = "+add.operate(a,b));


System.out.println(a+" - "+b+" = "+sub.operate(a,b));
System.out.println(a+" / "+b+" = "+div.operate(a,b));
System.out.println(a+" * "+b+" = "+mul.operate(a,b));

}
}

25 From 24 (Local Inner)

interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){
class Addition implements Math{
public int operate(int num1,int num2){
return num1+num2;
}
}
class Substraction implements Math{
public int operate(int num1,int num2){
return num1-num2;

Page 17 of 30
CMJD Diploma in Comprehensive Master Java Developer

}
}
class Division implements Math{
public int operate(int num1,int num2){
return num1/num2;
}
}
class Multiplication implements Math{
public int operate(int num1,int num2){
return num1*num2;
}
}

int a=100,b=50;
int result;
Addition add=new Addition();
Substraction sub=new Substraction();
Division div=new Division();
Multiplication mul=new Multiplication();

System.out.println(a+" + "+b+" = "+add.operate(a,b));


System.out.println(a+" - "+b+" = "+sub.operate(a,b));
System.out.println(a+" / "+b+" = "+div.operate(a,b));
System.out.println(a+" * "+b+" = "+mul.operate(a,b));

}
}

26 From 24.
Using Anonymous

interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){
Addition add=new Addition(){
public int operate(int num1,int num2){
return num1+num2;
}
};
Substraction sub= new Substraction(){
public int operate(int num1,int num2){

Page 18 of 30
CMJD Diploma in Comprehensive Master Java Developer

return num1-num2;
}
};
Division div=new Division(){
public int operate(int num1,int num2){
return num1/num2;
}
};
Multiplication mul=new Multiplication(){
public int operate(int num1,int num2){
return num1*num2;
}
};

int a=100,b=50;
int result;

System.out.println(a+" + "+b+" = "+add.operate(a,b));


System.out.println(a+" - "+b+" = "+sub.operate(a,b));
System.out.println(a+" / "+b+" = "+div.operate(a,b));
System.out.println(a+" * "+b+" = "+mul.operate(a,b));

}
}

27 From 24.
Using Lambda Expression

interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){
Math add=(num1,num2)->num1+num2;
Math sub=(num1,num2)->num1-num2;
Math div=(num1,num2)->num1/num2;
Math mul=(num1,num2)->num1*num2;

int a=100,b=50;
int result;

System.out.println(a+" + "+b+" = "+add.operate(a,b));


System.out.println(a+" - "+b+" = "+sub.operate(a,b));

Page 19 of 30
CMJD Diploma in Comprehensive Master Java Developer

System.out.println(a+" / "+b+" = "+div.operate(a,b));


System.out.println(a+" * "+b+" = "+mul.operate(a,b));

}
}

Garbage Collections

28.
class MyClass{
long[] ar=new long[100000];
}
class Demo{
public static void main(String args[]){
System.out.println("Start main");
for (int i = 0; i < 10000; i++){
System.out.println("i : "+i);
new MyClass();
}
System.out.println("End main");
}
}

29 From 28

class MyClass{
long[] ar=new long[100000];
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
for (int i = 0; i < 10000; i++){
System.out.println("i : "+i);
cr[i]=new MyClass();
}
System.out.println("End main");
}
}
30 Case I.

Page 20 of 30
CMJD Diploma in Comprehensive Master Java Developer

class MyClass{
long[] ar=new long[100000];
public void finalize(){
System.out.println("Deleted...");
}
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
for (int i = 0; i < 10000; i++){
System.out.println("i : "+i);
new MyClass();
}
System.out.println("End main");
}
}

31 Case II

class MyClass{
long[] ar=new long[100000];
public void finalize(){
System.out.println("Deleted...");
}
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
new MyClass();
new MyClass();
new MyClass();
try{Thread.sleep(2000);}catch(Exception ex){}
System.out.println("End main");

}
}

32 Case III

Page 21 of 30
CMJD Diploma in Comprehensive Master Java Developer

class MyClass{
long[] ar=new long[100000];
public void finalize(){
System.out.println("Deleted...");
}
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
new MyClass();
new MyClass();
new MyClass();

System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(2000);}catch(Exception ex){}
System.out.println("End main");
}
}

34 Case IV

(Null Referencing)
class MyClass{
int a;
MyClass(int a){this.a=a;}

public void finalize(){


System.out.println("Deleted..."+a);
}
}
class Demo{
public static void main(String args[]){
MyClass c1=new MyClass(100);
//c1.ff
//c1.
c1=null;
System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(1000);}catch(Exception ex){}
System.out.println("End main");
}
}
35 Case V (Re-assigning)

Page 22 of 30
CMJD Diploma in Comprehensive Master Java Developer

class MyClass{
int a;
MyClass(int a){this.a=a;}
public void finalize(){
System.out.println("Deleted..."+a);
}
}
class Demo{
public static void main(String args[]){
MyClass c1=new MyClass(100);
//c1.ff
//c1.
//
c1=new MyClass(200);
System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(1000);}catch(Exception ex){}
System.out.println("End main");
}
}

36 Case VI

class MyClass{
int a;
MyClass(int a){this.a=a;}
public void finalize(){
System.out.println("Deleted..."+a);
}
public void callMethod(){
System.out.println("Running ");
}
}
class Demo{
public static void main(String args[]){
new MyClass(100).callMethod();
//
//
System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(1000);}catch(Exception ex){}
System.out.println("End main");
}
}

37 Case VII.

Page 23 of 30
CMJD Diploma in Comprehensive Master Java Developer

Local Scope
class MyClass{
int a;
MyClass(int a){this.a=a;}

public void finalize(){


System.out.println("Deleted..."+a);
}

}
class Demo{

public static void main(String args[]){

int x=100;
if(x>0){
MyClass c1=new MyClass(100);
//
//
//
}

System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(1000);}catch(Exception ex){}
System.out.println("End main");
}
}

Page 24 of 30
CMJD Diploma in Comprehensive Master Java Developer

SQL JOINS

Traditional Join

SELECT Customer.CustID, Customer.CustName,Orders.OrderId


FROM Customer, Orders WHERE Customer.CustId = Orders.CustID;

SELECT c.CustID, c.CustName,o.OrderId


FROM Customer c, Orders o WHERE c.CustId = o.CustID;

INNER JOIN

SELECT Customer.CustID, CustName, OrderId, OrderDate FROM Customer


INNER JOIN Orders ON Customer.CustID = Orders.CustID;

SELECT Customer.CustID, CustName, OrderId, OrderDate FROM Customer


JOIN Orders ON Customer.CustID = Orders.CustID;

LEFT JOIN

SELECT Customer.CustID, CustName, OrderId, OrderDate FROM Customer


LEFT JOIN Orders ON Customer.CustID = Orders.CustID;

RIGHT JOIN

SELECT Customer.CustID, CustName, OrderId, OrderDate FROM Customer


RIGHT JOIN Orders ON Customer.CustID = Orders.CustID;

Page 25 of 30
CMJD Diploma in Comprehensive Master Java Developer

1. Find the customers who have placed orders.

SELECT DISTINCT CustName FROM Customer c, Orders o WHERE c.CustID =


o.CustID;

SELECT DISTINCT CustName FROM Customer INNER JOIN Orders ON


Customer.CustID = Orders.CustID;

// wrong**
**SELECT DISTINCT CustName FROM Customer LEFT JOIN Orders ON
Customer.CustID = Orders.CustID;

SELECT DISTINCT CustName FROM Customer RIGHT JOIN Orders ON


Customer.CustID = Orders.CustID;

2. Find the customers who have placed orders in 2008.

SELECT DISTINCT CustName,CustAddress FROM Customer INNER JOIN


Orders ON Customer.CustID = Orders.CustID
WHERE year(OrderDate) = 2008;

3. Find the customers who have placed orders in April,May,June 2008.

SELECT DISTINCT CustName,CustAddress FROM Customer INNER JOIN


Orders ON Customer.CustID = Orders.CustID
WHERE monthname(Orderdate) IN ('April','May','June') && year(OrderDate) =
2008;

Page 26 of 30
CMJD Diploma in Comprehensive Master Java Developer

4. Find the customers who have placed orders between January and April
in 2008.

SELECT DISTINCT CustName,CustAddress FROM Customer INNER JOIN


Orders ON Customer.CustID = Orders.CustID
WHERE OrderDate BETWEEN '2008-01-01' AND '2008-04-30';

SELECT DISTINCT CustName,CustAddress FROM Customer INNER JOIN


Orders ON Customer.CustID = Orders.CustID
WHERE OrderDate >= '2008-01-01' AND OrderDate <= '2008-04-30';

SELECT DISTINCT CustName,CustAddress FROM Customer INNER JOIN


Orders ON Customer.CustID = Orders.CustID
WHERE month(Orderdate) IN (1,2,3,4) && year(OrderDate) = 2008;

5. Find the order count of each customer in 2008.

SELECT CustName,CustAddress, count(OrderID) AS NoOfOrders FROM


Customer INNER JOIN Orders
ON Customer.CustID = Orders.CustID WHERE year(OrderDate) = 2008 GROUP
BY CustName ORDER BY 3 desc;

6. Find the Order count received from each province

SELECT Province, count(OrderID) FROM Customer INNER JOIN Orders ON


Customer.CustID = Orders.CustID GROUP BY Province;

7. Find the numbers of item of each customer has bought so far

SELECT CustName, count(ItemCode) FROM Customer INNER JOIN Orders ON


Customer.CustID = Orders.CustID INNER JOIN
OrderDetail ON Orders.OrderID = OrderDetail.OrderID GROUP BY CustName;

Page 27 of 30
CMJD Diploma in Comprehensive Master Java Developer

8. Find the most movable 10 items of the shop

SELECT Item.ItemCode,Description,count(OrderID) AS Item_Count FROM


OrderDetail INNER JOIN Item
ON OrderDetail.ItemCode = Item.ItemCode GROUP BY Description ORDER BY
3 desc LIMIT 10;

9. Find the most movable 10 times of the shop in April 2008 who’s coming
from western province.

SELECT Item.ItemCode,Description,count(OrderDetail.OrderID) AS Item_Count


FROM OrderDetail INNER JOIN Item
ON OrderDetail.ItemCode = Item.ItemCode INNER JOIN Orders ON
Orders.OrderID = OrderDetail.OrderID
INNER JOIN Customer ON Customer.CustID = Orders.CustID
WHERE year(OrderDate) = 2008 && month(OrderDate) = 4 && Province =
'Western'
GROUP BY Description ORDER BY 3 desc LIMIT 10;

10. Find the total income of each order

SELECT OrderID, sum(OrderQTY*UnitPrice) AS Income FROM OrderDetail


INNER JOIN Item
ON Item.ItemCode = OrderDetail.ItemCode GROUP BY OrderID ORDER BY 1;

11. Find the total income of each order earned by the company in April
2008

SELECT Orders.OrderID, sum(OrderQTY*UnitPrice) AS Income FROM


OrderDetail INNER JOIN Item
ON Item.ItemCode = OrderDetail.ItemCode INNER JOIN Orders ON
Orders.OrderID = OrderDetail.OrderID

Page 28 of 30
CMJD Diploma in Comprehensive Master Java Developer

WHERE year(OrderDate) = 2008 && month(OrderDate) = 4 GROUP BY OrderID


ORDER BY 1;

12. Find the total income of each customer earned by the shop in 2008

SELECT CustName, sum(OrderQTY*UnitPrice) AS Income FROM Customer


INNER JOIN Orders ON Customer.CustID = Orders.CustID
INNER JOIN OrderDetail ON Orders.OrderID = OrderDetail.OrderID INNER
JOIN Item
ON OrderDetail.ItemCode = Item.ItemCode WHERE year(OrderDate) = 2008
GROUP BY CustName;

13. Find the total income of each customer earned by the shop in 2008 who
are above 65 years old.

SELECT CustName,(year(CurDate()) - year(DOB)) AS Age, DOB,


sum(OrderQTY*UnitPrice) AS Income FROM Customer INNER JOIN Orders ON
Customer.CustID = Orders.CustID
INNER JOIN OrderDetail ON Orders.OrderID = OrderDetail.OrderID INNER
JOIN Item
ON OrderDetail.ItemCode = Item.ItemCode WHERE year(OrderDate) = 2008
GROUP BY CustName HAVING Age >= 65;

SELECT CustName,(2008 - year(DOB)) AS Age, DOB,


sum(OrderQTY*UnitPrice) AS Income FROM Customer INNER JOIN Orders ON
Customer.CustID = Orders.CustID
INNER JOIN OrderDetail ON Orders.OrderID = OrderDetail.OrderID INNER
JOIN Item
ON OrderDetail.ItemCode = Item.ItemCode WHERE year(OrderDate) = 2008
GROUP BY CustName HAVING Age >= 65;

Page 29 of 30
CMJD Diploma in Comprehensive Master Java Developer

SUB Query
● SELECT * FROM Customer WHERE CustID IN (SELECT CustID FROM
Customer WHERE Salary > 40000);

● SELECT * FROM Customer WHERE Salary > 40000;

● DELETE FROM Customer WHERE CustID IN (SELECT CustID FROM


Customer WHERE Salary < 30000);

● DELETE FROM Customer WHERE WHERE Salary < 30000;

Page 30 of 30

You might also like