Dokumen - Tips Dbms Worksheet
Dokumen - Tips Dbms Worksheet
By
G.BAKTAVATCHALAM (08MW03)
TABLES:
DEPOSIT TABLE:
BRANCH TABLE:
CUSTOMER TABLE:
BORROW TABLE:
QUERIES:
CNAME CITY
------------------ ------------------
Anil Calcutta
Sunil Delhi
Mehul Baroda
Mandar Patna
Madhuri Nagpur
Pramod Nagpur
Sandip Surat
Shivani Bombay
Kranti Bombay
Naren Bombay
BNAME CITY
------------------ ------------------
VRCE Nagpur
AJNI Nagpur
KAROLBAGH Delhi
CHANDNI Delhi
DHARAMPETH Nagpur
M.G.Road Bangalore
ANDHERI Bombay
VIRAR Bombay
NEHRU PLACE Delhi
POWAI Bombay
ACTNO AMOUNT
----- ----------
100 1000
101 5000
102 3500
104 1200
105 3000
106 2000
107 1000
108 5000
109 7000
CNAME ACTNO
------------------ -----
Anil 100
Sunil 101
Mehul 102
Madhuri 104
Pramod 105
Sandip 106
Shivani 107
Kranti 108
Minu 109
CNAME
------------------
Anil
Sunil
Mehul
Mandar
Madhuri
Pramod
Sandip
Shivani
Kranti
Naren
CNAME
------------------
Anil
Mehul
Sunil
Madhuri
Pramod
Kranti
CNAME
------------------
Madhuri
Pramod
CNAME
------------------
Sunil
Kranti
Minu
ADATE
---------
01-MAR-95
BNAME
------------------
ANDHERI
VIRAR
POWAI
CNAME
------------------
Anil
BNAME
------------------
KAROLBAGH
CHANDNI
NEHRU PLACE
CNAME
------------------
Sunil
Madhuri
Pramod
Sandip
18) select actno,amount from deposit where adate between '01-DEC-95' and '01-MAY-96';
ACTNO AMOUNT
----- ----------
101 5000
104 1200
105 3000
106 2000
CITY
------------------
Delhi
1)GIVE NAME OF CUSTOMER HAVING LIVING CITY BOMBAY AND BRANCH CITY NAGPUR.
CNAME
------------------
SUNIL
4)GIVE NAME OF BORROWERS HAVING LOAN AMOUNT GREATER THAN AMOUNT OF PRAMOD.
QUERY: SELECT BR1.CNAME,BR1.AMOUNT FROM BORROW BR1 WHERE BR1.AMOUNT > ALL
(SELECT BR2.AMOUNT FROM BORROW BR2 WHERE BR2.CNAME = 'PRAMOD');
NO ROWS SELECTED
SELECT B.CNAME FROM BORROW B WHERE AMOUNT > (SELECT AMOUNT FROM BORROW WHERE
CNAME='MADHURI' AND AMOUNT=2000.00);
CNAME
----------------
MEHUL
SUNIL
PRAMOD
KRANTI
5)GIVE NAME OF CUSTOMER LIVING IN SAME CITY WHERE BRANCH OF DEPOSITOR SUNIL IS
LOCATED.
QUERY: SELECT C.CNAME FROM CUSTOMER C WHERE C.CITY IN (SELECT B.CITY FROM
BRANCH B WHERE B.BNAME IN (SELECT D.BNAME FROM DEPOSIT D WHERE D.CNAME='SUNIL'));
CNAME
------------------
MADHURI
PRAMOD
6)GIVE LOANNO,LOAN AMOUNT OF BORROWERS HAVING SAME BRANCH WHERE SUNIL IS HAVING
BRANCH.
QUERY: SELECT BR1.LOANNO,BR1.AMOUNT FROM BORROW BR1 WHERE BR1.BNAME
(SELECT D1.BNAME FROM DEPOSIT D1 WHERE D1.CNAME = 'SUNIL');
LOANN AMOUNT
---------- ----------
206 5000
8)GIVE LOANNO,LOAN AMOUNT, ACCOUNT NO, DEPOSIT AMOUNT OF CUSTOMER HAVING BRANCH
LOCATED AT BOMBAY.
10)GIVE DEPOSIT DETAILS AND LOAN DETAILS OF CUSTOMER IN SAME CITY WHERE PRAMOD IS
LIVING.
QUERY:
SELECT D1.ACTNO , D1.CNAME,D1.BNAME ,D1.AMOUNT ,D1.ADATE , BR1.LOANNO ,
BR1.BNAME , BR1.AMOUNT FROM DEPOSIT D1 , BORROW BR1 , CUSTOMER C1 WHERE C1.CNAME =
D1.CNAME AND D1.CNAME = BR1.CNAME AND C1.CITY IN (SELECT C2.CITY FROM CUSTOMER C2
WHERE C2.CNAME = 'PRAMOD');
11)GIVE NAME OF DEPOSITORS HAVING SAME BRANCH CITY AS MR. SUNIL AND HAVING SAME
LIVING CITY AS MR. ANIL.
QUERY:
SELECT D1.CNAME FROM DEPOSIT D1,CUSTOMER C1,BRANCH B1 WHERE D1.CNAME =
C1.CNAME AND D1.BNAME = B1.BNAME AND B1.CITY IN (SELECT B2.CITY FROM BRANCH
B2,DEPOSIT D2 WHERE D2.CNAME = 'SUNIL' AND D2.BNAME = B2.BNAME) AND C1.CITY IN (SELECT
C2.CITY FROM CUSTOMER C2 WHERE C2.CNAME = 'ANIL');
CNAME
----------
ANIL
12) GIVE NAME OF DEPOSITORS HAVING AMOUNT GREATER THAN 1000 AND HAVING SAME LIVING
CITY AS MR. PRAMOD.
QUERY:
SELECT D1.CNAME FROM DEPOSIT D1,CUSTOMER C1 , CUSTOMER C2 WHERE C1.CITY =
C2.CITY AND C2.CNAME = 'PRAMOD' AND C1.CNAME = D1.CNAME AND D1.AMOUNT > 1000;
CNAME
---------------
MADHURI
PRAMOD
QUERY:
SELECT C1.CITY FROM CUSTOMER C1,DEPOSIT D1,DEPOSIT D2,BRANCH B1,BRANCH B2
WHERE D1.BNAME=B1.BNAME AND D2.BNAME = B2.BNAME AND D2.CNAME = 'PRAMOD' AND
B1.CITY = B2.CITY AND C1.CNAME = D1.CNAME;
CITY
-----------
NAGPUR
QUERY:
SELECT B1.CITY , C1.CITY FROM BRANCH B1,CUSTOMER C1, DEPOSIT D1 WHERE C1.CNAME
= 'PRAMOD' AND C1.CNAME = D1.CNAME AND D1.BNAME = B1.BNAME;
CITY CITY
------------- ---- - ------------------
BANGALORE NAGPUR
QUERY:
SELECT B1.CITY FROM DEPOSIT D1, BRANCH B1 WHERE D1.BNAME = B1.BNAME AND
D1.CNAME IN (‘SUNIL’ ,'ANIL');
CITY
---------
NAGPUR
NAGPUR
CNAME CITY
------------------ ------------
ANIL CALCUTTA
SUNIL DELHI
SET OPERATIONS:
1)LIST ALL THE CUSTOMER WHO ARE DEPOSITORS BUT NOT BORROWERS.
CNAME
-----------
MINU
SANDIP
SHIVANI
CNAME
------------------
ANIL
KRANTI
MADHURI
MEHUL
MINU
PRAMOD
SANDIP
SHIVANI
SUNIL
3)LIST ALL THE CUSTOMER WITH THEIR AMOUNT WHO ARE BORROWERS OR DEPOSITORS AND
LIVING IN CITY NAGPUR.
CNAME AMOUNT
------------------ ----------
MADHURI 1200
PRAMOD 3000
MADHURI 2000
PRAMOD 8000
4)LIST ALL THE DEPOSITORS HAVING DEPOSIT IN ALL THE BRANCHES WHERE SUNIL IS HAVING
BRANCHES.
QUERY:SELECT D1.CNAME FROM DEPOSIT D1 WHERE D1.BNAME IN (SELECT D2.BNAME FROM
DEPOSIT D2 WHERE D2.CNAME = 'SUNIL' );
CNAME
-----------
SUNIL
5)LIST ALL THE CUSTOMER LIVING IN CITY NAGPUR AND HAVING BRANCH CITY BOMBAY OR DELHI.
QUERY:
SELECT C1.CNAME FROM CUSTOMER C1,DEPOSIT D1, BRANCH B1 WHERE C1.CITY = 'NAGPUR' AND
C1.CNAME = D1.CNAME AND D1.BNAME = B1.BNAME AND B1.CITY IN ('BOMBAY','DELHI');
CNAME
-----------
MADHURI
6)LIST ALL THE CUSTOMER NAME AMOUNT OF DEPOSITOR LIVING IN CITY WHERE ANIL OR SUNIL IS
LIVING.
CNAME AMOUNT
------------------ ----------
ANIL 1000
SUNIL 5000
QUERY:
SELECT D1.AMOUNT FROM DEPOSIT D1, CUSTOMER C1 WHERE D1.CNAME = C1.CNAME AND
C1.CITY IN (SELECT C2.CITY FROM CUSTOMER C2 WHERE C2.CNAME = 'Anil');
AMOUNT
------------------
1000
8)LIST THE CITIES WHICH ARE BRANCH CITY OF ANIL OR LIVING CITY OF SUNIL.
CITY
-------------
DELHI
NAGPUR
9) LIST ALL THE CITIES WHERE BRANCHES OF ANIL AND SUNIL IS LOCATED.
CITY
------------
NAGPUR
NAGPUR
10)LIST THE CUSTOMER WHO ARE BORROWERS AND DEPOSITORS AND HAVING SAME BRANCH
CITY AS MR. ANIL.
CNAME
--------
ANIL
SUNIL
AGGREGATE FUNCTIONS:
SUM(AMOUNT)
-----------
22000
SUM(D1.AMOUNT)
--------------
4200
MAX(D1.AMOUNT)
--------------
5000
4) LIST TOTAL DEPOSIT OF CUSTOMER LIVING IN SAME CITY WHERE SUNIL IS LIVING.
SUM(D1.AMOUNT)
--------------
5000
5)COUNT TOTAL NUMBER OF BRANCH CITIES.
4
6)GIVE BRANCH NAME AND BRANCHWISE DEPOSIT.
BNAME SUM(AMOUNT)
------------------ ------------------------
AJNI 5000
ANDHERI 2000
CHANDNI 1200
KAROLBAGH 3500
M.G.ROAD 3000
NEHRU PLACE 5000
POWAI 7000
VIRAR 1000
VRCE 1000
CITY SUM(D1.AMOUNT)
------------------ -------------------------
BARODA 3500
BOMBAY 6000
CALCUTTA 1000
DELHI 5000
NAGPUR 4200
SURAT 2000
MAX(AMOUNT)
--------------------
1000
SUM(BR1.AMOUNT)
---------------
5000
3000
1000
3000
10000
COUNT(DISTINCT(CNAME))
---------------------------------------
6
GROUP BY AND HAVING FUNCTION:
QUERY:SELECT BNAME FROM DEPOSIT GROUP BY BNAME HAVING SUM(AMOUNT) > 5000;
BNAME
-----------
POWAI
2)LIST THE BRANCHES HAVING SUM OF DEPOSIT MORE THAN 50000 AND LOCATED IN CITY BOMBAY.
QUERY:SELECT D1.BNAME FROM DEPOSIT D1, BRANCH B1 WHERE D1.BNAME = B1.BNAME AND
B1.CITY ='BOMBAY' GROUP BY D1.BNAME HAVING SUM(D1.AMOUNT) > 5000;
BNAME
-----------
POWAI
CNAME
-----------
MINU
BNAME
------------------
AJNI
ANDHERI
CHANDNI
KAROLBAGH
M.G.ROAD
NEHRU PLACE
POWAI
VIRAR
VRCE
9 rows selected.
COUNT(D2.CNAME)
---------------------------
2
6) GIVE NAME OF CUSTOMER HAVING HIGHEST DEPOSIT IN THE CITY WHERE BRANCH OF SUNIL IS
LOCATED.
QUERY:SELECT D1.CNAME FROM DEPOSIT D1, BRANCH B1 WHERE D1.BNAME = B1.BNAME AND
D1.AMOUNT >=ALL (SELECT D2.AMOUNT FROM DEPOSIT D2, BRANCH B2 WHERE D2.CNAME =
'SUNIL' AND D2.BNAME = B2.BNAME AND B1.BNAME = B2.BNAME);
CNAME
------------------
SUNIL
SANDIP
MADHURI
MEHUL
PRAMOD
KRANTI
MINU
SHIVANI
ANIL
9 rows selected.
7) GIVE NAME OF CUSTOMER HAVING MORE DEPOSIT THAN THE AVERAGE DEPOSIT IN THEIR
RESPECTIVE BRANCHES.
CNAME
-----------------
ANIL
SUNIL
MEHUL
MADHURI
PRAMOD
SANDIP
SHIVANI
KRANTI
MINU
9 rows selected.
CITY
-----------
BOMBAY
BNAME
-----------
CHANDNI
KAROLBAGH
M.G.ROAD
POWAI
10) GIVE NAME OF CUSTOMER LIVING IN SAME CITY WHERE MAXIMUM DEPOSITORS ARE LOCATED.
CNAME
---------------
SHIVANI
KRANTI
NAREN
MADHURI
PRAMOD
UPDATE QUERIES:
9 rows updated.
9 rows selected.
1 row updated.
2 rows updated.
SQL> SELECT * FROM DEPOSIT WHERE CNAME IN (SELECT CNAME FROM CUSTOMER WHERE CITY
= 'NAGPUR');
QUERY:UPDATE DEPOSIT SET AMOUNT = ( SELECT AVG(AMOUNT) FROM DEPOSIT WHERE CNAME =
'Anil') WHERE CNAME = 'Sunil';
1 row updated.
1 row updated.
1 row updated.
6)CHANGE THE DEPOSIT OF VRCE BRANCH TO 1000 AND CHANGE THE BRANCH AS
VRCE_AMBAZARI.
1 row updated.
SQL> SELECT * FROM DEPOSIT WHERE BNAME = 'VRCE_AMBAZARI';
7) UPDATE DEPOSIT OF ANIL , GIVE HIM MAXIMUM DEPOSIT FROM DEPOSITORS IN LIVING CITY
NAGPUR.
1 row updated.
QUERY:UPDATE DEPOSIT SET AMOUNT = AMOUNT - 10 WHERE CNAME = ' ANIL ';
UPDATE DEPOSIT SET AMOUNT = AMOUNT + 10 WHERE CNAME = 'SUNIL';
1 row updated.
1 row updated.
9 rows selected.
9) GIVE 10 RS MORE TO ALL DEPOSITORS HAVING MORE DEPOSIT THAN THE AVERAGE DEPOSIT.
5 rows updated.
9 rows selected.
10) GIVE 10 RS MORE FOR ALL CUSTOMER LIVING IN SAME CITY WHERE THEIR BRANCH IS
LOCATED.
1 row updated.
DELETE QUERIES:
1 row deleted.
1 row deleted.
8 rows selected.
3) DELETE BORROWER HAVING LOAN MORE THAN 1000 AND BRANCH VIRAR.
QUERY:DELETE FROM BORROW WHERE AMOUNT > 1000 AND BNAME = 'VIRAR';
1 row deleted.
6 rows deleted.
1 row deleted.
3 rows deleted.
CNAME CITY
------------------ ------------------
ANIL CALCUTTA
SUNIL DELHI
MEHUL BARODA
MANDAR PATNA
MADHURI NAGPUR
PRAMOD NAGPUR
SANDIP SURAT
7 rows selected.
7) DELETE DEPOSIT OF SUNIL IF VIJAY IS NOT DEPOSITOR.
QUERY:DELETE FROM DEPOSIT WHERE CNAME = 'SUNIL' AND NOT EXISTS(SELECT * FROM
DEPOSIT WHERE CNAME = 'VIJAY');
1 row deleted.
7 rows selected.
1 row deleted.
1 row deleted.
10) DELETE BORROWER HAVING LOAN MORE THAN 1000 AND BRANCH DHARAMPETH.
QUERY:DELETE FROM BORROW WHERE AMOUNT > 1000 AND BNAME = 'DHARAMPETH';
1 row deleted.