0% found this document useful (0 votes)
137 views31 pages

Dbms Lab New

The document describes an exercise involving SQL queries on tables for a sales database schema. It provides the table structures and sample data, then lists 17 queries to write and test. The solutions section shows the SQL code to create the tables, insert sample data, and queries to return the requested data.

Uploaded by

Sarepalli Naveen
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
137 views31 pages

Dbms Lab New

The document describes an exercise involving SQL queries on tables for a sales database schema. It provides the table structures and sample data, then lists 17 queries to write and test. The solutions section shows the SQL code to create the tables, insert sample data, and queries to return the requested data.

Uploaded by

Sarepalli Naveen
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 31

DBMS Lab

ORACLE EXERCISE-l FOLLOWING IS THE DATABASE SCHEMA:


SALES(SNO,SNAME,CITY,COMMISSION) CUSTOMERS(CNO,CNAME,CITY,RATING,SNO) ORDER(ONO,AMT,ODATE,CNO,SNO)

CREATE ABOVE TABLES WITH APPROPRIATE CONSTRAINTS.

WRITE SQL CODES FOR THE FOLLOWING QUERIES:


1. 2. LIST THE NAMES & COMMISIONS OF ALL SALES PEOPLE IN DELHI? LIST ALL CUSTOMERS WHO WERE EITHER LOCATED IN SRINAGAR OR HAVING A RATING ABOVE 200? 3. LIST ALL CUSTOMERS WHO ARE NOT LOCATD IN DELHI OR SRINAGAR? 4. LIST ALL ORDERS FOR WHICH THE AMOUNT RANGES FROM RS.500 TO RS.5000? 5. LIST ALL CUSTOMERS FOR WHOM THE LETTER 'I' OCCURS IN THE 4TH POSITION OF THEIR NAMES? 6. SELECT THE MAXIMUM AMOUNT OF ORDERS FOR EACH SALES PERSON? 7. SELECT THE MAXIMUM PURCHASES OVER RS.3000 FOR EACH SALES PERSON WITH ORDERED DATES? 8. SELECT MAXIMUM AMOUNT OF ORDERS FOR SALES PERSONS 1002 AND 1007? 9. DISPLAY THE DETAILS OF ALL ORDERS IN THE DESCENDING ORDER OF CUSTOMER NUMBER'S AND IN THE ASCENDING ORDER OF ORDER AMOUNTS? 10. DISPLAY THE NO. OF ORDERS OF EACH SALES PERSON.THE LIST SHOULD BE IN THE DESCENDING ORDER OF THE COUNT?

JOINS
11. LIST ALL THE CUSTOMERS AND SALES PEOPLE THAT ARE LOCATED IN THE SAME CITY? 12. FIND ALL THE ORDERS BY CUSTOMERS NOT LOCATED IN THE SAME CITY AS SALES PEOPLE? 13. LIST THE DETAILS OF SALES PEOPLE WHO RECEIVED THE PURCHASE ORDERS? THE LIST SHOULD BE IN THE ASCENDING ORDER OF SALES NUMBER. 14. LIST ALL CUSTOMERS SEVICED BY MANOHAR AND PRASAD? 15. FIND ALL PAIRS OF CUSTOMERS HAVING THE SAME RATING? THE LIST SHOULD NOT CONTAIN REDUNDANT INFORMATION. 16. GENERATE ALL POSSIBLE COMBINATIONS OF THE CUSTOMERS ON THE BASIS OF THEIR RATING? 17. FIND ALL PAIRS OF CUSTOMERS SERVED BY A SINGLE SALES PERSON? THE LIST SHOULD ALSO DISPLAY THE NAMES OF ASSOCIATED SALES PERSONS.

Solutions for EXERCISE-1

SQL CODE FOR CREATION OF SALES TABLE


CREATE TABLE SALES (SNO NUMBER(4) PRIMARY KEY, SNAME VARCHAR2 (10), CITY VARCHAR2(10), COMMISSION NUMBER(3,2));

Table created.

DESCRIPTION OF SALES TABLE


DESCRIBE SALES; Name Null? Type
------------------------------------------------SNO NOT NULL NUMBER(4) SNAME VARCHAR2 (10) CITY VARCHAR2(10) COMMISSION NUMBER(3, 2)

SQL CODE FOR CREATION OF CUSTOMERS TABLE


CREATE TABLE CUSTOMERS (CNO NUMBER(4) PRIMARY KEY, CNAME VARCHAR2(10), CITY VARCHAR2(10), RATING NUMBER(3), SNO NUMBER(4));

Table created.

DESCRIPTION OF CUSTOMERS TABLE


DESCRIBE CUSTOMERS; Name Null? Type
--------------------------------------------------CNO NOT NULL NUMBER(4) CNAME VARCHAR2(10)

CITY RATING SNO

VARCHAR2(1O) NUMBER(3) NUMBER(4)

SQL CODE FOR CREATION OF ORDER TABLE


CREATE TABLE ORDER (ONO NUMBER(4) PRIMARY KEY, AMT NUMBER(6,2), ODATE DATE NOT NULL, CNO NUMBER(4), SNO NUMBER(4));

Table created.

DESCRIPTION OF ORDER TABLE


DESCRIBE ORDER; Name Null? Type
----------------------------------------ONO NOT NULL NUMBER(4) AMT NUMBER(6,2) ODATE NOT NULL DATE CNO NUMBER(4) SNO NUMBER(4)

INSERTION OF VALUES IN SALES TABLE


INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO SALES SALES SALES SALES SALES VALUES VALUES VALUES VALUES VALUES (1001, (1002, (1004, (1007, (1003, 'PRASAD', 'DELHI', 0.12); 'SURESH', 'SRINAGAR', 0.13); 'MANOHAR', 'DELHI', 0.11); 'RAMA', 'BANGALORE', O.15); 'ASHOK', 'CHENNAI', 0.10);

SQL> SELECT * FROM SALES; SNO SNAME CITY COMMISSION


----------------------------------------------------------------------------------1001 PRASAD DELHI .12 1002 SURESH SRINAGAR .13 1004 MANOHAR DELHI .11 1007 RAMA BANGALORE .15 1003 ASHOK CHENNAI .10

INSERTION OF VALUES IN CUSTOMERS TABLE


INSERT INSERT INSERT INSERT INTO INTO INTO INTO CUSTOMERS CUSTOMERS CUSTOMERS CUSTOMERS VALUES VALUES VALUES VALUES (2001, (2002, (2003, (2004, 'HARI', 'DELHI', 100, 1001); 'GOVIND', 'RAICHOOR', 200, 1003); 'LALITHA', 'SRINAGAR', 200, 1002); 'GIRISH', 'HYDERABAD', 300, 1002);

INSERT INTO CUSTOMERS VALUES (2006, 'CHANDU', 'DELHI', 100, 1001); INSERT INTO CUSTOMERS VALUES (2P08, 'CHITRA', 'SRINAGAR', 300, 1007); INSERT INTO CUSTOMERS VALUES (2007, 'PRAVEEN', 'RAICHOOR', 100, 1004);

SQL> SELECT * FROM CUSTOMERS; CNO CNAME CITY RATING SNO


---------------------------------------------------------------------------------------------2001 HARI DELHI 100 1001 2002 GOVIND RAICHOOR 200 1003 2003 LALITHA SRINAGAR 200 1002 2004 GIRISH HYDERABAD 300 1002 2006 CHANDU DELHI 100 1001 2008 CHITRA SRINAGAR 300 1007 2007 PRAVEEN RAICHOOR 100 1004

INSERTION OF VALUES IN ORDER TABLE


INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO ORDER ORDER ORDER ORDER ORDER ORDER ORDER ORDER ORDER ORDER VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES (3001, (3003, (3002, (3005, (3006, (3009, (3007, (3008, (3010, (3011, 18.69, 767.19, 1900.10, 5160.45, 1098.16, 1713.23, 75.75, 4723.00, 1309.95, 9891.88, '10-MAR-95', 2008, 1007); '10-MAR-95', 2001, 1001); '10-MAR-95', 2007, 1004); '10-MAR-95', 2003, 1002); '10-MAR-95', 2008, 1007); '10-APR-95', 2002, 1003); '10-APR-95', 2004, 1002); '10-MAY-95', 2006, 1001); '10-JUN-95', 2004, 1002); '10-JUN-95', 2006, 1001);

SQL> SELECT * FROM ORDER;

ONO AMT

ODATE

CNO

SNO

------------------------------------------------------------------------------3001 18.69 10-MAR-95 2008 1007 3003 767.19 10-MAR-95 2001 1001 3002 1900.10 10-MAR-95 2007 1004 3005 5160.45 10-MAR-95 2003 1002 3006 1098.16 10-MAR-95 2008 1007 3009 1713.23 10-APR-95 2002 1003

3007 3008 3010 3011

75.75 4723.00 1309.95 9891.88

10-APR-95 10-MAY-95 10-JUN-95 10-JUN-95

2004 2006 2004 2006

1002 1001 1002 1001

SQL CODES FOR THE GIVEN QUERIES & THEIR OUTPUTS FOR EXERCISE-1
1. LIST THE NAMES & COMMISIONS OF ALL SALES PEOPLE IN DELHI? SQL> SELECT SNO, SNAME FROM SALES WHERE CITY='DELHI';

SNO

SNAME

---------------------------------1001 PRASAD 1004 MANOHAR

2.

LIST ALL CUSTOMERS WHO WERE EITHER LOCATED IN SRINAGAR OR HAVING A RATING ABOVE 200? SQL> SELECT CNAME FROM CUSTOMERS WHERE CITY='SRINAGAR' OR RATING>200;

CNAME
---------------LALITHA GIRISH CHITRA

3.

LIST ALL CUSTOMERS WHO ARE NOT LOCATD IN DELHI OR SRINAGAR? SQL> SELECT * FROM CUSTOMERS WHERE CITY NOT IN ('DELHI', 'SRINAGAR');

CNO

CNAME

CITY

RATING

SNO

-----------------------------------------------------------------------------------------------------2002 GOVIND RAICHOOR 200 1003 2004 GIRISH HYDERABAD 300 1002 2007 PRAVEEN RAICHOOR 100 1004

4.

LIST ALL ORDERS FOR WHICH THE AMOUNT RANGES FROM RS.500 TO RS.5000? SQL> SELECT * FROM ORDER

WHERE AMT BETWEEN 500 AND 5000;

ONO AMT

ODATE

CNO

SNO

----------------------------------------------------------------------3003 767.19 10-MAR-95 2001 1001 3002 1900.10 10-MAR-95 2007 1004 3006 1098.16 10-MAR-95 2008 1007 3009 1713.23 10-APR-95 2002 1003 3008 4723.00 10-MAY-95 2006 1001 3010 1309.95 10-JUN-95 2004 1002

5.

LIST ALL CUSTOMERS FOR WHOM THE LETTER 'I' OCCURS IN THE 4TH POSITION OF THEIR NAMES? SQL> SELECT * FROM CUSTOMERS WHERE CNAME LIKE'___I%';

CNO

CNAME

CITY

RATING

SNO

------------------------------------------------------------------------------------------------2001 HARI DELHI 100 1001 2002 GOVIND RAICHOOR 200 1003 2003 LALITHA SRINAGAR 200 1002 2004 GIRISH HYDERABAD 300 1002 6. SELECT THE MAXIMUM AMOUNT OF ORDERS FOR EACH SALES PERSON? SQL> SELECT SNO, MAX(AMT) FROM ORDER GROUP BY SNO;

SNO

MAX(AMT)

-------------------------1001 9891.88 1002 5160.45 1003 1713.23 1004 1900.10 1007 1098.16

7.

SELECT THE MAXIMUM PURCHASES OVER RS.3000 FOR EACH SALES PERSON WITH ORDERED DATES? SQL> SELECT SNO, AMT, ODATE FROM ORDER WHERE AMT>3000 ORDER BY SNO;

SNO

AMT

ODATE

-----------------------------------------------------1001 4723 10-MAY-95 1001 9891.88 10-JUN-95 1002 5160.45 10-MAR-95

8.

SELECT MAXIMUM AMOUNT OF ORDERS FOR SALES PERSONS 1002 AND 1007? SQL> SELECT SNO, MAX (AMT) FROM ORDER WHERE SNO IN (1002,1007) GROUP BY SNO;

SNO

MAX (AMT)

-----------------------------1002 5160.45 1007 1098.16

9.

DISPLAY THE DETAILS OF ALL ORDERS IN THE DESCENDING ORDER OF CUSTOMER NUMBER'S AND IN THE ASCENDING ORDER OF ORDER AMOUNTS? SQL> SELECT *FROM ORDER ORDER BY CNO DESC, AMT;

ONO AMT

ODATE

CNO

SNO

--------------------------------------------------------------------------------3001 18.69 10-MAR-95 2008 1007 3006 1098.16 10-MAR-95 2008 1007 3002 1900.10 10-MAR-95 2007 1004 3008 4723.00 10-MAY-95 2006 1001 3011 9891.88 10-JUN-95 2006 1001 3007 75.75 10-APR-95 2004 1002 3010 1309.95 10-JUN-95 2004 1002 3005 5160.45 10-MAR-95 2003 1002 3009 1713.23 10-APR-95 2002 1003 3003 767.19 10-MAR-95 2001 1001

10. DISPLAY THE NO. OF ORDERS OF EACH SALES PERSON.THE LIST SHOULD BE IN THE DESCENDING ORDER OF THE COUNT?

SQL> SELECT COUNT(ONO), SNO


FROM ORDER GROUP BY SNO ORDER BY COUNT(ONO) DESC;

COUNT(ONO)

SNO

--------------------------------------3 1001 3 1002 2 1007 1 1003 1 1004

QUERIES USING JOINS


11. LIST ALL THE CUSTOMERS AND SALES PEOPLE THAT ARE LOCATED IN THE SAME CITY? SQL> SELECT SNAME, CNAME, S.CITY FROM SALES S, CUSTOMERS C WHERE S.SNO=C.SNO AND S.CITY=C.CITY;

SNAME

CNAME

CITY

------------------------------------------------------------------PRASAD HARI DELHI SURESH LALITHA SRINAGAR PRASAD CHANDU DELHI

12. FIND ALL THE ORDERS BY CUSTOMERS NOT LOCATED IN THE SAME CITY AS SALES PEOPLE?

SQL> SELECT ONO, CNAME, AMT


FROM SALES S, CUSTOMERS C, ORDER O WHERE C.CNO=O.CNO AND C.CITY != S.CITY AND O.SNO=S.SNO;

ONO CNAME

AMT

---------------------------------------------------3001 CHITRA 18.69 3003 PRAVEEN 767.19 3002 PRAVEEN 1900.10 3006 CHITRA 1098.16 3009 GOVIND 1713.23 3007 GIRISH 75.75 3010 GIRISH 1909.95

13. LIST THE DETAILS OF SALES PEOPLE WHO RECEIVED THE PURCHASE ORDERS? THE LIST SHOULD BE IN THE ASCENDING ORDER OF SALES NUMBER. SQL> SELECT S.SNO, SNAME, ONO FROM SALES S, ORDER O

WHERE S.SNO=O.SNO ORDER BY S.SNO;

SNO

SNAME

ONO

-----------------------------------------------------1001 PRASAD 3008 1001 PRASAD 3011 1002 SURESH 3005 1002 SURESH 3007 1002 SURESH 3010 1003 ASHOK 3009 1004 MANOHAR 3003 1004 MANOHAR 3002 1007 RAMA 3001 1007 RAMA 3006

14. LIST ALL CUSTOMERS SEVICED BY MANOHAR AND PRASAD? SQL> SELECT CNAME, SNAME FROM SALES S, CUSTOMERS C WHERE C.SNO=S.SNO AND SNAME IN ('MANOHAR', 'PRASAD');

CNAME

SNAME

-------------------------------------------HARI PRASAD CHANDU PRASAD PRAVEEN MANOHAR

15. FIND ALL PAIRS OF CUSTOMERS HAVING THE SAME RATING? THE LIST SHOULD NOT CONTAIN REDUNDANT INFORMATION. SQL> SELECT C1.CNO, C2.CNO, C1..RATING FROM CUSTOMER C1, CUSTOMER C2 WHERE C1.RATING=C2.RATING AND C1.CNO<>C2.CNO;

CNO

CNO

RATING

-------------------------------------2006 2001 100 2007 2001 100 2001 2006 100 2007 2006 100 2001 2007 100 2006 2007 100 2003 2002 200 2002 2003 200 2008 2004 300

2004

2008

300

16. GENERATE ALL POSSIBLE COMBINATIONS OF THE CUSTOMERS ON THE BASIS OF THEIR RATING? SQL> SELECT A.CNO, B.CNO, C.CNO FROM CUSTOMER A, CUSTOMER B, CUSTOMER C WHERE A.RATING <> B.RATING AND A.RATING <> C.RATING AND B.RATING <> C.RATING;

OUTPUT: The query generates 72 combination


17. FIND ALL PAIRS OF CUSTOMERS SERVED BY A SINGLE SALES PERSON? THE LIST SHOULD ALSO DISPLAY THE NAMES OF ASSOCIATED SALES PERSONS.

SQL> SELECT A.CNO, B.CNO, S.SNAME


FROM SALES S, CUSTOMERS A, CUSTOMER B WHERE A.CNUM <> B.CNUM AND A.SNUM = B.SNUM AND S.SNAME = (SELECT SNAME FROM SALES WHERE SNUM=A.SNUM);

CNO

CNO

SNAME

-------------------------------------2006 2001 PRASAD 2001 2006 PRASAD 2004 2003 SURESH 2003 2004 SURESH

ORACLE EXERCISE -2
FOLLOWING IS THE DATABASE SCHEMA
SALES(SNO, SNAME, CITY, COMMISSION) CUSTOMERS (CNO, CNAME, CITY, RATING, SNO) ORDER (ONO, AMT, ODATE, CNO, SNO)

WRITE SQL CODES FOR THE FOLLOWING QUERIES


1. 2. 3. 4. 5. 6. 7. 8. 9. LIST ALL ORDERS OF MANOHAR? FIND ALL ORDERS CREDITED TO THE SAME SALES PEOPLE WHO SERVICE HARI? LIST ALL ORDERS THAT ARE GREATER THAN AVERAGE UPTO 10 - 04 - 95? FIND ALL ORDERS ATTRIBUTED TO SALES PEOPLE IN DELHI? FIND THE NUMBER OF CUSTOMERS WITH RATING ABOVE SRINAGAR AVERAGE? LIST THE NAMES AND NUMBERS OF ALL SALE PEOPLE WHO HAD MORE THAN ONE CUSTOMER? LIST ALL ORDERS WITH ABOVE AVERAGE AMOUNTS FOR THEIR CUSTOMERS? FIND THE SALES PEOPLE WHO HAVE MULTIPLE CUSTOMERS. (USE EXISTS OPERATOR) LIST NO, NAME & LOCATION OF EACH SALES PERSON WHO HAS MULTIPLE CUSTOMERS (USE EXISTS OPERATOR).

10. FIND ALL SALES PEOPLE WITH ONLY ONE CUSTOMER (USE NOT EXISTS) 11. LIST ALL SALES PEOPLE WHO HAVE CUSTOMERS WITH MORE THAN ONE CURRENT ORDER (USE EXISTS). 12. FIND ALL SALES PEOPLE WITH CUSTOMERS LOCATED IN THEIR CITIES.

13. FIND ALL ORDERS WITH AMOUNTS LESS THAN AVG. AMOUNT FOR A CUSTOMER IN SRINAGAR? 14. LIST ALL THE CUSTOMERS WHOSE RATINGS ARE HIGHER THAN EVERY CUSTOMER IN RAICHOOR?

Solutions EXERCISE-2 SQL CODES FOR THE GIVEN QUERIES & THEIR OUTPUTS FOR EXERCISE-2
1. LIST ALL ORDERS OF MANOHAR? SQL> SELECT * FROM ORDER WHERE SNO = (SELECT SNO FROM SALES WHERE SNAME='MANOHAR);

ONO AMT

---------------------------------------------------------------------------------3002 1900.10 10-MAR-95 2007 1004

ODATE

CNO

SNO

2. FIND ALL ORDERS CREDITED TO THE SAME SALES PEOPLE WHO SERVICE HARI? SQL> SELECT * FROM ORDER WHERE SNO = (SELECT SNO FROM CUSTOMERS WHERE CNAME='HARI');

ONO AMT

-------------------------------------------------------------------------------------3003 67.19 10-MAR-95 2001 1001 3008 4723.00 10-MAY-95 2006 1001

ODATE

CNO

SNO

3011

9891.88

10-JUN-95

2006

1001

3. LIST ALL ORDERS THAT ARE GREATER THAN AVERAGE UPTO 10 - 04 - 95? SQL> SELECT * FROM ORDER WHERE AMT > (SELECT AVG(AMT) FROM ORDER WHERE ODATE<='10-APR-95');

ONO AMT

ODATE

CNO

SNO

--------------------------------------------------------------------3002 1900.10 10-MAR-95 2007 1004 3005 5160.45 10-MAR-95 2003 1002 3009 1713.23 10-APR-95 2002 1003 3008 4723.00 10-MAY-95 2006 1001 3011 9891.88 10-JUN-95 2006 1001

4. FIND ALL ORDERS ATTRIBUTED TO SALES PEOPLE IN DELHI? SQL> SELECT * FROM ORDER
WHERE SNO IN (SELECT SNO FROM SALES WHERE CITY='DELHI');

ONO AMT

ODATE

CNO

SNO

-------------------------------------------------------------------------------------3003 767.19 10-MAR-95 2001 1001 3002 1900.10 10-MAR-95 2007 1004 3008 4723.00 10-MAY-95 2006 1001 3011 9891.88 10-JUN-95 2006 1001

5. FIND THE NUMBER OF CUSTOMERS WITH RATING ABOVE SRINAGAR AVERAGE? SQL> SELECT COUNT (CNO) COUNTCUST FROM CUSTOMERS WHERE RATING > (SELECT AVG(RATING) FROM CUSTOMERS WHERE CITY='SRINAGAR');

COUNTCUST
------------------2

6. LIST THE NAMES AND NUMBERS OF ALL SALE PEOPLE WHO HAD MORE THAN ONE CUSTOMER? SQL> SELECT SNO, SNAME FROM SALES S WHERE 1 <(SELECT COUNT(*) FROM CUSTOMERS WHERE SNO = S.SNO); 7. LIST ALL ORDERS WITH ABOVE AVERAGE AMOUNTS FOR THEIR CUSTOMERS? SQL> SELECT * FROM ORDER WHERE AMT > (SELECT AVG(AMT) FROM ORDER);

ONO AMT

ODATE

CNO

SNO

------------------------------------------------------------------------------3005 5160.45 10-MAR-95 2003 1002 3008 4723.00 10-MAY-95 2006 1001 3011 9891.88 10-JUN-95 2006 1001 8. FIND THE SALES PEOPLE WHO HAVE MULTIPLE CUSTOMERS. (USE EXISTS OPERATOR) SQL> SELECT SNO, SNAME FROM SALES S WHERE EXISTS (SELECT * FROM CUSTOMERS C WHERE C.SNO=S.SNO GROUP BY SNO HAVING COUNT(*) > 1);

SNO

SNAME

-----------------------------1001 PRASAD 1002 SURESH

9. LIST NO, NAME & LOCATION OF EACH SALES PERSON WHO HAS MULTIPLE CUSTOMERS (USE EXISTS OPERATOR). SQL> SELECT SNO, SNAME, CITY FROM SALES S WHERE EXISTS (SELECT * FROM CUSTOMERS C WHERE C.SNO=S.SNO GROUP BY SNO HAVING COUNT(CNO)>1);

SNO

SNAME

CITY

-------------------------------------------------------1001 PRASAD DELHI

1002

SURESH

SRINAGAR

10. FIND ALL SALES PEOPLE WITH ONLY ONE CUSTOMER (USE NOT EXISTS) SQL> SELECT *FROM SALES S WHERE NOT EXISTS (SELECT * FROM CUSTOMERS C WHERE C.SNO=S.SNO GROUP BY SNO HAVING COUNT(CNO)>1);

SNO

SNAME

CITY

COMMISSION

-------------------------------------------------------------------------------------1004 MANOHAR DELHI .11 1007 RAMA BANGALORE .15 1003 ASHOK CHENNAI .1

11. LIST ALL SALES PEOPLE WHO HAVE CUSTOMERS WITH MORE THAN ONE CURRENT ORDER (USE EXISTS). SQL> SELECT * FROM SALES S WHERE EXISTS (SELECT * FROM ORDER O WHERE O.SNO=S.SNO GROUP BY SNO HAVING COUNT(ONO)>1);

SNO

SNAME

CITY

COMMISSION

----------------------------------------------------------------------------------1001 PRASAD DELHI .12 1002 SURESH SRINAGAR .13 1007 RAMA BANGALORE .15

12. FIND ALL SALES PEOPLE WITH CUSTOMERS LOCATED IN THEIR CITIES. SQL> SELECT * FROM SALES S WHERE SNO IN (SELECT SNO FROM CUSTOMERS C WHERE C.CITY=S.CITY);

SNO

SNAME

CITY

COMMISSION

-------------------------------------------------------------------------------------1001 PRASAD DELHI .12 1002 SURESH SRINAGAR .13

13. FIND ALL ORDERS WITH AMOUNTS LESS THAN AVG. AMOUNT FOR A CUSTOMER IN SRINAGAR? SQL> SELECT ONO, ODATE, AMT FROM ORDER WHERE AMT < (SELECT AVG(AMT) FROM ORDER WHERE CNO IN (SELECT CNO FROM CUSTOMERS WHERE CITY='SRINAGAR'));

ONO ODATE

AMT

------------------------------------------------3001 10-MAR-95 18.69 3003 10-MAR-95 767.19 3002 10-MAR-95 1900.10 3006 10-MAR-95 1098.16 3009 10-APR-95 1713.23 3007 10-APR-95 75.75 3010 10-JUN-95 1309.95

14. LIST ALL THE CUSTOMERS WHOSE RATINGS ARE HIGHER THAN EVERY CUSTOMER IN RAICHOOR? SQL> SELECT *FROM CUSTOMERS SRI C WHERE C.RATING > ALL (SELECT RATING FROM CUSTOMERS SRI C2 WHERE C2.CITY='RAICHOOR');

CNO

CNAME

CITY

RATING

SNO

------------------------------------------------------------------------------------------------2004 GIRISH HYDERABAD 300 1002 2008 CHITRA SRINAGAR 300 1007

ORACLE EXERCISE -3
FOLLOWING IS THE DATABASE SCHEMA:
EMP(ENO, ENAME, DOB, DOJ, JOB, SAL, COMM, DNO) DEPT(DNO, DNAME, LOCATION)

CREATE THE ABOVE TABLES WITH APPROPRIATE CONSTRAINTS.


WRITE SQL STATEMENTS FOR THE FOLLOWING QUERIES:

1.

LIST ENO, ENAME, DNO & EMPLOYEE CODE FOR ALL EMPLOYEES. THE EMPLOYEE CODE MUST CONTAIN THE FIRST THREE CHARACTERS OF DEPT NAME, YEAR OF JOINING AND EMPNO. DISPLAY THE NAMES AND AGES OF ALL EMPLOYEES. DISPLAY THE NAMES AND DATE OF BIRTHS OF ALL EMPLOYEES IN JANUARY. WHAT IS THE AVERAGE AGE OF ALL EMPLOYEES IN DEPT 3? LIST NAMES OF ALL EMPLOYEES WITH THEIR EXPERIENCE IN DESCENDING ORDER.

2. 3. 4. 5.

6. 7. 8. 9.

LIST THE EMPLOYEES WHO ARE CELEBRATING THEIR BIRTHDAY DURONG THE CURRENT MONTH. SET 5% COMMISION FOR THOSE EMPLOYEES WHO HAVE ATLEAST 8 YEARS EXPERIENCE. LIST THE NAMES AND COMMISSIONS OF ALL EMPLOYEES. DISPLAY ZEROES FOR COMMISION WHOSE VALUES ARE NULL. LIST THE NAMES AND AGES OF ALL EMPLOYEES IN DEPT 2. THE AGES SHOULD BE DISPLAYED IN MONTHS.

10. LIST THE NMAES AND AGES OF ALL EMPLOYEES. THE AGE SHOULD BE DISPLAYED IN YEARS, MONTHS, AND DAYS. 11. DISPLAY THE DATE AND DAY OF THE LAST DAY OF THE CURRENT MONTH. 12. DISPLAY THE SECOND MAXIMUM SALARY IN THE ORGANISATION. 13. DISPLAY THE THIRD MINIMUM SALARY IN THE ORGANISATION.

Solutions for EXERCISE-3

SQL CODE FOR CREATION OF DEPT TABLE

SQL> CREATE TABLE DEPT


(DNO NUMBER(l) PRIMARY KEY, DNAME VARCHAR2(10), LOCATION VARCHAR2(15));

DESCRIPTION OF DEPT TABLE SQL> DESCRIBE DEPT; Name Null? Type


-----------------------------------------------------------------

DNO DNAME LOCATION INSERT INSERT INSERT INSERT INTO INTO INTO INTO

NOT NULL

NUMBER(1) VARCHAR2 (10) VARCHAR2 (15) (1,'ACCOUNTS', 'SHIPYARD'); (2,'DESIGN', 'GAJUWAKA'}i (3, 'MARKETING', 'M.V.P.'}; (4,'SALES', 'SIRIPURAM');

DEPT DEPT DEPT DEPT

VALUES VALUES VALUES VALUES

SQL> SELECT * FROM DEPT; DNO DNAME LOCATION


-------------------------------------------1 ACCOUNTS SHIPYARD 2 DESIGN GAJUWAKA 3 MARKETING M.V.P. 4 SALES SIRIPURAM

SQL CODE FOR CREATION OF EMP TABLE


SQL CODE FOR CREATION OF DEPT TABLE

SQL> CREATE TABLE DEPT


(DNO NUMBER(l) PRIMARY KEY, DNAME VARCHAR2(10), LOCATION VARCHAR2(15));

DESCRIPTION OF DEPT TABLE SQL> DESCRIBE DEPT; Name Null? Type


----------------------------------------------------------------DNO NOT NULL NUMBER(1) DNAME VARCHAR2 (10) LOCATION VARCHAR2 (15) INSERT INSERT INSERT INSERT INTO INTO INTO INTO DEPT DEPT DEPT DEPT VALUES VALUES VALUES VALUES (1,'ACCOUNTS', 'SHIPYARD'); (2,'DESIGN', 'GAJUWAKA'}i (3, 'MARKETING', 'M.V.P.'}; (4,'SALES', 'SIRIPURAM');

SQL> SELECT * FROM DEPT; DNO DNAME LOCATION


--------------------------------------------------------1 ACCOUNTS SHIPYARD 2 DESIGN GAJUWAKA 3 MARKETING M.V.P. 4 SALES SIRIPURAM

SQL CODE FOR CREATION OF EMP TABLE


SQL> CREATE TABLE EMP
(ENO NUMBER(4) PRIMARY KEY, ENAME VARCHAR2(14), DOB VARCHAR2(10) CHECK(DOB LIKE __/__/____), DOJ VARCHAR2(10) CHECK(DOJ LIKE __/__/____'), JOB VARCHAR2(15), SAL NUMBER(8,2}, COMM NUMBER(4) NULL, DNO NUMBER(1) REFERENCES DEPT(DNO));

ENO

SQL>SELECT * FROM EMP; ENAME DOB COMMDNO

DOJ

JOB

SAL

----------------------------------------------------------------------------------------------------------------------------------------------------1001 ANAND 12-01-1966 21-04-1992 ACCOUNTANT 3000 1 1002 UMESH 02-07-1964 13-11-1990 ANALYST 7000 1 1003 NEERAJ 31-01-1968 21-04-1990 ANALYST 7000 2 1004 SURESH 30-10-1968 02-01-1992 ANALYST 7000 3 1005 MIHIR 24-06-1970 01-02-1991 CLERK 2500 4 1006 NIRMALA 11-09-1965 11-10-1989 CLERK 2500 4 1007 PRASAD 10-11-1966 21-04-1991 CMD 30000 2 1008 ANIL 31-08-1965 21-04-1990 ENGINEER 7000 2 1009 RAMESH 03-05-1967 20-02-1991 ENGINEER 7000 2 1010 SURAJ 10-01-1967 10-12-1990 EXECUTIVE 2000 4 1011 REVATHI 19-04-1970 20-04-1993 MANAGER 15000 1 1012 VIJAYA 02-12-1969 02-01-1992 MANAGER 15000 4 1013 PRABHU 07-11-1976 02-07-1997 SALESMAN 3000 3 1014 VIKRAM 14-12-1975 02-05-1992 SALESMAN 3000 2 1015 PRASHANT 08-02-1977 02-06-1993 VICE-PRESIDENT 20000 3 1016 KESHAV 04-03-1975 02-04-1992 VICE-PRESIDENT 20000 1

SQL CODES FOR THE GIVEN QUERIES & THEIR OUTPUTS OF EXERCISE-3:
1. LIST ENO, ENAME, DNO & EMPLOYEE CODE FOR ALL EMPLOYEES. THE EMPLOYEE CODE
MUST CONTAIN THE FIRST THREE CHARACTERS OF DEPT NAME, YEAR OF JOINING AND EMPNO. SQL> SELECT E.ENO, E.ENAME, D.DNO, E.DOJ, (SUBSTR (D.DNAME, 1, 3) IISUBSTR (E.DOJ, 7, 4) IIE.ENO) EMPCODE FROM EMP E, DEPT D WHERE E.DNO=D.DNO;

ENO

ENAME

DNO DOJ

EMPCODE

----------------------------------------------------------------------------------------------1008 ANIL 2 21-04-1990 DES19901008 1001 ANAND 1 21-04-1992 ACC19921001 1002 UMESH 1 13-11-1990 ACC19901002 1003 NEERAJ 2 21-04-1990 DES19901003 1004 SURESH 3 02-01-1992 MAR19921004 1005 MIHIR 4 01-02-1991 SAL19911005 1006 NIRMALA 4 11-10-1989 SAL19891006 1007 PRASAD 2 21-04-1991 DES19911007

1009 1010 1011 1012 1013 1014 1015 1016 2.

RAMESH SURAJ REVATHI VIJAYA PRABHU VIKRAM PRASHANT KESHAV

2 4 1 4 3 2 3 1

20-02-1991 10-12-1990 20-04-1993 02-01-1992 02-07-1997 02-05-1992 02-06-1993 02-04-1992

DES19911009 SAL19901010 ACC19931011 SAL19921012 MAR19971013 DES19921014 MAR19931015 ACC19921016

DISPLAY THE NAMES AND AGES OF ALL EMPLOYEES. SQL> SELECT ENAME, TRUNC(MONTHS BETWEEN (SYSDATE,TO_DATE (DOB, 'DD/MM/YYYY'))/12) AGE FROM EMP;

ENAME

AGE

----------------------------------ANIL 34 ANAND 34 UMESH 35 NEERAJ 32 SURESH 31 MIHIR 29 NIRMALA 34 PRASAD 33 RAMESH 32 SURAJ 33 REVATHI 29 VIJAYA 30 PRABHU 23 VIKRAM 24 PRASHANT 23 KESHAV 25

3.

DISPLAY THE NAMES AND DATE OF BIRTHS OF ALL EMPLOYEES IN JANUARY. SQL> SELECT ENAME, DOB FROM EMP WHERE SUBSTR(DOB,4,2)= 01';

ENAME

DOB

--------------------------------------------ANAND 12-01-1966 NEERAJ 31-01-1968 SURAJ 10-01-1967 4. WHAT IS THE AVERAGE AGE OF ALL EMPLOYEES IN DEPT 3?

SQL> SELECT DNO,


AVG(TRUNC(MONTHS BETWEEN(SYSDATE,TO_DATE( DOB, 'DD/MM/YYYY'))/12)) AVGAGE FROM EMP WHERE DNO=3 GROUP BY DNO;

DNO AVRGAGE
---------------------------------3 25.666667 5. LIST NAMES OF ALL EMPLOYEES WITH THEIR EXPERIENCE IN DESCENDING ORDER. SQL> SELECT ENAME, TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE( DOJ, 'DD/MM/YYYY'))/12) EXPERIENCE FROM EMP ORDER BY EXPERIENCE DESC;

ENAME

EXPERIENCE

---------------------------------------NIRMALA 10 ANIL 9 UMESH 9 NEERAJ 9 MIHIR 9 SURAJ 9 SURESH 8 PRASAD 8 RAMESH 8 VIJAYA 8 ANAND 7 VIKRAM 7 KESHAV 7 REVATHI 6 PRASHANT 6 PRABHU 2

6. LIST THE EMPLOYEES WHO ARE CELEBRATING THEIR BIRTHDAY DURONG THE CURRENT
MONTH.

SQL> SELECT ENAME


FROM EMP WHERE SUBSTR(DOB,4,2) = TO_CHAR (SYSDATE, 'MM');

ENAME
------------------PRASHANT 7. SET 5% COMMISION FOR THOSE EMPLOYEES WHO HAVE ATLEAST 8 YEARS EXPERIENCE. SQL> UPDATE EMP SET COMM=(5/100)*SAL WHERE TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE( DOJ, 'DD/MM/YYYY')) >= 8; LIST THE NAMES AND COMMISSIONS OF ALL EMPLOYEES. DISPLAY ZEROES FOR COMMISION WHOSE VALUES ARE NULL. SQL> SELECT ENAME, NVL(COMM,0) COMMISION FROM EMP;

8.

ENAME

COMMISSION

----------------------------------------------

ANIL ANAND UMESH NEERAJ SURESH MIHIR NIRMALA PRASAD RAMESH SURAJ REVATHI VIJAYA PRABHU VIKRAM PRASHANT KESHAV

350 0 350 350 350 125 125 1500 350 100 0 750 0 0 0 0

9.

LIST THE NAMES AND AGES OF ALL EMPLOYEES IN DEPT 2. THE AGES SHOULD BE DISPLAYED IN MONTHS. SQL> SELECT ENAME, TRUNC (MONTHS_BETWEEN (SYSDATE, TO_DATE (DOB, DD/MM/YYYY))) AGE FROM EMP;

ENAME
-------------------------------ANIL 413 ANAND 409 UMESH 427 NEERAJ 384 SURESH 375 MIHIR 355 NIRMALA 413 PRASAD 399 RAMESH 393 SURAJ 397 REVATHI 357 VIJAYA 362 PRABHU 279 VIKRAM 290 PRASHANT 276 KESHAV 299

AGE

10. LIST THE NMAES AND AGES OF ALL EMPLOYEES. THE AGE SHOULD BE DISPLAYED IN YEARS, MONTHS, AND DAYS. SQL> SELECT DOB, TRUNC(MONTHS_BETWEEN (SYSDATE, (TO_DATE (DOB, 'DD-MON-YYYY')))/12) YRS, TRUNC(MOD(MONTHS_BETWEEN(SYSDATE, (TO_DATE (DOB, 'DD-MON-YYYY'))),12)) MONTHS , DECODE (SIGN (TO_NUMBER (TO_CHAR (SYSDATE, 'DD')) TO_NUMBER(SUBSTR(DOB,1,2))),-1, TO_NUMBER(TO_CHAR(SYSDATE,'DD')) +

ABS(TO_NUMBER(TO_CHAR(LAST_DAY(SYSDATE-30), 'DD')) TO_NUMBER(SUBSTR(DOB,1,2))), TO_NUMBER (TO_CHAR (SYSDATE, 'DD')) TO_NUMBER(SUBSTR(DOB,l,2))) DAYS FROM EMP;

DOB

YRS

MONTHS

DAYS

---------------------------------------------------------------------12-JAN-66 1934 2 12 02-JUL-68 1931 8 22 31-JAN-68 1932 1 26 30-0CT-68 1931 4 25 24-JUN-70 1929 9 0 11-SEP-65 1934 6 13 10-NOV-96 1903 4 14 31-AUG-65 1934 6 26 03-MAY-67 1932 10 21 10-JAN-67 1933 2 14 19-APR-70 1929 11 5 20-DEC-69 1930 3 4 07-NOV-76 1923 4 17 10-DEC-65 1934 3 14 08-FEB-77 1923 1 16 04-MAR-75 1925 0 20

11. DISPLAY THE DATE AND DAY OF THE LAST DAY OF THE CURRENT MONTH. SQL> SELECT LAST_DAY (SYSDATE) LASTDATE, TO_CHAR(LAST_DAY(SYSDATE), 'DAY') LASTDAY FROM DUAL;

LASTDATE

LASTDAY

----------------------------------------29-FEB-00 TUESDAY

12. DISPLAY THE SECOND MAXIMUM SALARY IN THE ORGANISATION. SQL> SELECT MAX(SAL) SECMAX FROM EMP WHERE SAL NOT IN (SELECT MAX(SAL) FROM EMP) ;

SECMAX
-------------20000 13. DISPLAY THE THIRD MINIMUM SALARY IN THE ORGANISATION. SQL> SELECT MIN(SAL) THIRDMINSAL FROM EMP WHERE SAL >

(SELECT MIN(SAL) FROM EMP WHERE SAL > (SELECT MIN(SAL) FROM EMP));

THIRDMINSAL
---------------------3000

ORACLE EXERCISE 4

FOLLOWING IS THE DATABASE SCHEMA


EMP (ENO,ENAME,DOB,DOJ,JOB,SAL,COMM,DNO) DEPT (DNO,DNAME,LOCATION)

CREATE THE ABOVE TABLES WITH APPROPRIATE CONSTRAINTS. WRITE SQL STATEMENTS FOR THE FOLLOWING QUERIES.
1. 2. 3. 4. 5. 6. 7. 8. 9. LIST NAMES OF ALL EMPLOYEES WHOSE NMAES HAVE MORE THAN FIVE LETTERS. DISPLAY NAMES OF EMPLOYEES WHOSE NAMES HAVE ONLY 4 LETTERS. DISPLAY EMPLOYEE NAMES WHO HAVE ATLEAST TEO A'S IN THEIR NAMES. LIST THE DETAILS OF EMPLOYEES WHO HAVE JOINED BEFORE 20TH OF ANY MONTH AND YEAR EXCEPT 1991. DISPLAY THE LAST THREE CHARACTERS OF EACH EMPLOYEE'S NAME. LIST OUT THE EMPLOYEES WHO HAVE LETTER 'A' IN THE LAST THREE LETTERS OF THEIR NAME. DISPLAY ENO, ENAME & SAL PREFIXED WITH '$' SIGN IN DESCENDING ORDER OF SALARY. DISPLAY MAX, MIN, AVG SALARIES DEPARTMENT WISE. LIST THE DEPARTMENTS, WHICH HAVE MORE THAN 3 EMPLOYEES.

10. LIST OUT THE NUMBER OF CLERKS AND NUMBER OF MANAGERS. THE LIST SHOULD BE IN THE GIVEN FORMAT. EX: 2 CLERKS 2 MANAGERS 11. DISPLAY THE DETAILS OF EMPLOYEES WHO HAVE JOINED BEFORE ANAND. 12. DISPLAY THE NO, NAME & JOB OF EACH EMPLOYEE. REPLACE JOB "SALESMAN" WITH "SALESPERSON" IN YOUR OUTPUT. DO NOT UPDATE THE DATA. 13. DISPLAY THE TOP TWO HIGHEST SALARIES FROM EMPLOYEE.

Solutions for EXERCISE-4


SQL CODES FOR THE GIVEN QUERIES & THEIR OUTPUTS OF EXERCISE-4

1. LIST NAMES OF ALL EMPLOYEES WHOSE NMAES HAVE MORE THAN FIVE LETTERS. SQL> SELECT ENO, ENAME FROM EMP WHERE ENAME LIKE'_____%';

ENO

------------------------1003 NEERAJ 1004 SURESH 1006 NIRMALA 1007 PRASAD 1009 RAMESH 1011 REVATHI 1012 VIJAYA 1013 PRABHU 1014 VIKRAM 1015 PRASHANT 1016 KESHAV

ENAME

2. DISPLAY NAMES OF EMPLOYEES WHOSE NAMES HAVE ONLY 4 LETTERS. SQL> SELECT ENO, ENAME FROM EMP WHERE ENAME LIKE ____;

ENO

------------------------1008 ANIL

ENAME

3. DISPLAY EMPLOYEE NAMES WHO HAVE ATLEAST TEO A'S IN THEIR NAMES. SQL> SELECT ENO, ENAME FROM EMP WHERE ENAME LIKE '%A%A%';

ENO

-------------------------1001 ANAND 1006 NIRMALA 1007 PRASAD 1012 VIJAYA

ENAME

1015

PRASHANT

4. LIST THE DETAILS OF EMPLOYEES WHO HAVE JOINED BEFORE 20TH OF ANY MONTH AND YEAR EXCEPT 1991. SQL> SELECT ENO, ENAME, DOJ FROM EMP WHERE SUBSTR(DOJ, 1, 2) < '20' AND SUBSTR(DOJ, 7, 4) <> '1991';

ENO

ENAME

DOJ

-------------------------------------------------1002 UMESH 13-11-1990 1004 SURESH 02-01-1992 1006 NIRMALA 11-10-1989 1010 SURAJ 10-12-1990 1012 VIJAYA 02-01-1992 1013 PRABHU 02-07-1997 1014 VIKRAM 02-05-1992 1015 PRASHANT 02-06-1993 1016 KESHAV 02-04-1992 5. DISPLAY THE LAST THREE CHARACTERS OF EACH EMPLOYEE'S NAME. SQL> SELECT SUBSTR(ENAME,-3,3) NAMECODE FROM EMP;

NAM
---------NIL AND ESH RAJ ESH HIR ALA SAD ESH RAJ THI AYA BHO RAM ANT HAV 6. LIST OUT THE EMPLOYEES WHO HAVE LETTER 'A' IN THE LAST THREE LETTERS OF THEIR NAME. SQL> SELECT ENAME FROM EMP WHERE SOBSTR(ENAME,-3,3) LIKE '%A%';

ENAME
-------------ANAND NEERAJ

NIRMALA PRASAD SORAJ VIJAYA VIKRAM PRASHANT KESHAV 7. DISPLAY ENO, ENAME & SAL PREFIXED WITH '$' SIGN IN DESCENDING ORDER OF SALARY. SQL> COLUMN SAL FORMAT $999999; SQL> SELECT ENO, ENAME, SAL FROM EMP ORDER BY SAL DESC;

ENO

ENAME

SAL

----------------------------1007 PRASAD $30000 1015 PRASHANT $20000 1016 KESHAV $20000 1011 REVATHI $15000 1012 VIJAYA $15000 1008 ANIL $7000 1002 UMESH $7000 1003 NEERAJ $7000 1004 SURESH $7000 1009 RAMESH $7000 1001 ANAND $3000 1014 VIKRAM $3000 1013 PRABHU $3000 1005 MIHIR $2500 1006 NIRMALA $2500 1010 SURAJ $2000

8. DISPLAY MAX, MIN, AVG SALARIES DEPARTMENT WISE. SQL> SELECT DNO, MAX(SAL), MIN(SAL), AVG(SAL) FROM EMP GROUP BY DNO;

DNO MAX (SAL)

MIN(SAL)

AVG(SAL)

---------------------1 20000 3000 2 30000 3000 3 20000 3000 4 15000 2000

--------------------------11250 10800 10000 5500

9. LIST THE DEPARTMENTS, WHICH HAVE MORE THAN 3 EMPLOYEES. SQL> SELECT DNO, COUNT (ENO) NOOFEMP

FROM EMP GROUP BY DNO HAVING COUNT (ENO) > 3;

DNO NOOFEMP
--------------------------1 4 2 5 4 4

10. LIST OUT THE NUMBER OF CLERKS AND NUMBER OF MANAGERS. THE LIST SHOULD BE IN THE GIVEN FORMAT.

EX:
2 CLERKS
2 MANAGERS

SQL> COLUMN JOB FORMAT A15;

SQL> (SELECT COUNT (JOB) I I 'CLERKS' COUNTOFJOBS FROM EMP WHERE JOB='CLERK') UNION (SELECT COUNT (JOB) I I 'MANAGERS' FROM EMP WHERE JOB='MANAGER');

COUNTOFJOBS

------------------------2 CLERKS 2 MANAGERS

11. DISPLAY THE DETAILS OF EMPLOYEES WHO HAVE JOINED BEFORE ANAND. SQL> SELECT ENO, ENAME, DOJ FROM EMP WHERE TO_DATE (DOJ, 'DD/MM/YYYY') < (SELECT TO_DATE(DOJ, 'DD/MM/YYYY') FROM EMP WHERE ENAME = 'ANAND');

ENO

ENAME

DOJ

------------------------------------1008 ANIL 21-04-1990 1002 UMESH 13-11-1990 1003 NEERAJ 21-04-1990 1004 SURESH 02-01-1992 1005 MIHIR 01-02-1991 1006 NIRMALA 11-10-1989 1007 PRASAD 21-04-1991 1009 RAMESH 20-02-1991 1010 SURAJ 10-12-1990 1012 VIJAYA 02-01-1992 1016 KESHAV 02-04-1992

12. DISPLAY THE NO, NAME & JOB OF EACH EMPLOYEE. REPLACE JOB "SALESMAN" WITH "SALESPERSON" IN YOUR OUTPUT. DO NOT UPDATE THE DATA. SQL> SELECT ENO, ENAME, DECODE (JOB, 'SALESMAN', 'SALESPERSON', JOB) JOB FROM EMP;

ENO
-------1008 1001 1002 1003 1004 1005 1006 1007 1009 1010 1011 1012 1013 1014 1015 1016

ENAME
---------------ANIL ANAND UMESH NEERAJ SURESH MIHIR NIRMALA PRASAD RAMESH SURAJ REVATHI VIJAYA PRABHU VIKRAM PRASHANT KESHAV

JOB
------ENGINEER ACCOUNTANT ANALYST ANALYST ANALYST CLERK CLERK CMD ENGINEER EXECUTIVE MANAGER MANAGER SALESPERSON SALESPERSON VICE-PRESIDENT VICE-PRESIDENT

13. DISPLAY THE TOP TWO HIGHEST SALARIES FROM EMPLOYEE. SQL> SELECT A.SAL FIRSTMAX, B.SAL SECONDMAX FROM EMP A, EMP B WHERE A.SAL = (SELECT MAX(SAL) FROM EMP) AND B.SAL = (SELECT MAX(SAL) FROM EMP WHERE SAL NOT IN (SELECT MAX (SAL) FROM EMP));

FIRSTMAX

SECONDMAX

---------------------------------------------30000 20000 30000 20000

You might also like