You are on page 1of 6

SQL>

SQL> --> create a join view based on product details along with
SQL> --> company information?
SQL>
SQL> create view vw_prod_info
2 as
3 select * from prod_dtls p ,comp_dtls c
4 where p.comp_code=c.comp_code;
select * from prod_dtls p ,comp_dtls c
*
ERROR at line 3:
ORA-00942: table or view does not exist

SQL> select * from prod_dtls;


select * from prod_dtls
*
ERROR at line 1:
ORA-00942: table or view does not exist

SQL> select * from comp_dtls;


select * from comp_dtls
*
ERROR at line 1:
ORA-00942: table or view does not exist

SQL> Create Table comp_dtls


2 (
3 comp_code varchar2(10)
4 constraint PK_COMP_CODE PRIMARY KEY,
5 comp_name varchar2(20),
6 city varchar2(10)
7 );

Table created.

SQL>
SQL> Insert into comp_dtls values('I101','IBM','NEW YORK');

1 row created.

SQL> Insert into comp_dtls values('W202','WIPRO','CHICAGO');

1 row created.

SQL> Insert into comp_dtls values('D303','DELL','TEXAS');

1 row created.

SQL> Insert into comp_dtls values('S404','SAMSUNG','KOREA');

1 row created.

SQL>
SQL> Create table Prod_dtls
2 (
3 prod_code varchar2(10),
4 prod_name varchar2(20),
5 cost number(7,2),
6 mfg date,
7 warrenty varchar2(10)
8 );

Table created.

SQL>
SQL> Insert into Prod_dtls values('ILTPQS','LAPTOP',45000,'11-FEB-12','4 YEARS');

1 row created.

SQL> Insert into Prod_dtls values('ILTPXS','LAPTOP',34000,'21-MAR-12','4 YEARS');

1 row created.

SQL> Insert into Prod_dtls values('ILTPZS','LAPTOP',40000,'12-FEB-13','7 YEARS');

1 row created.

SQL> Insert into Prod_dtls values('WDTPG','DESKTOP',23000,'30-OCT-12','1 YEAR');

1 row created.

SQL> Insert into Prod_dtls values('WCFLL','LIGHTS',3400,'22-JAN-13','2 YEARS');

1 row created.

SQL> Insert into Prod_dtls values('DDTPW','DESKTOP',27000,'13-NOV-12','5 YEARS');

1 row created.

SQL> Insert into Prod_dtls values('DLTPG','LAPTOP',46000,'08-JAN-13','2 YEARS');

1 row created.

SQL> Insert into Prod_dtls values('DMBLY','MOBILE',32000,'10-JAN-13',NULL);

1 row created.

SQL> Insert into Prod_dtls values('SLTPC','LAPTOP',34000,'04-DEC-12','6 MONTHS');

1 row created.

SQL> Insert into Prod_dtls values('SLTPD','LAPTOP',45000,'09-DEC-12','2 YEARS');

1 row created.

SQL> Insert into Prod_dtls values('SMBLGLXY','MOBILE',24000,'10-JAN-12','1 YEAR');

1 row created.

SQL> Insert into Prod_dtls values('SMBLGLXG','MOBILE',21500,'02-FEB-13','1 YEAR');

1 row created.

SQL>
SQL> ALTER TABLE PROD_DTLS
2 ADD COMP_CODE VARCHAR2(10);

Table altered.

SQL>
SQL> ALTER TABLE PROD_DTLS
2 ADD CONSTRAINT FK_COMP_CODE FOREIGN KEY(COMP_CODE)
3 REFERENCES COMP_DTLS(COMP_CODE)
4 ON DELETE CASCADE;

Table altered.

SQL>
SQL> UPDATE PROD_DTLS
2 SET COMP_CODE='I101'
3 WHERE PROD_CODE LIKE'I%';

3 rows updated.

SQL>
SQL> UPDATE PROD_DTLS
2 SET COMP_CODE='W202'
3 WHERE PROD_CODE LIKE'W%';

2 rows updated.

SQL>
SQL> UPDATE PROD_DTLS
2 SET COMP_CODE='D303'
3 WHERE PROD_CODE LIKE'D%';

3 rows updated.

SQL>
SQL> UPDATE PROD_DTLS
2 SET COMP_CODE='S404'
3 WHERE PROD_CODE LIKE'S%';

4 rows updated.

SQL>
SQL> commit;

Commit complete.

SQL> cl scr;

SQL> create view vw_prodinfo


2 as
3 select * from prod_dtls p, comp_dtls c
4 where p.comp_code=c.comp_code;
select * from prod_dtls p, comp_dtls c
*
ERROR at line 3:
ORA-00957: duplicate column name

SQL> ed
Wrote file afiedt.buf
1 create view vw_prodinfo
2 as
3* select * from prod_dtls NATURAL JOIN comp_dtls
4 /

View created.

SQL> desc vw_prodinfo;


Name
Null? Type
-----------------------------------------------------------------------------
-------- ----------------------------------------------------
COMP_CODE NOT
NULL VARCHAR2(10)
PROD_CODE
VARCHAR2(10)
PROD_NAME
VARCHAR2(20)
COST
NUMBER(7,2)
MFG
DATE
WARRENTY
VARCHAR2(10)
COMP_NAME
VARCHAR2(20)
CITY
VARCHAR2(10)

SQL> select * from vw_prodinfo;

COMP_CODE PROD_CODE PROD_NAME COST MFG WARRENTY


COMP_NAME CITY
---------- ---------- -------------------- ---------- --------- ----------
-------------------- ----------
I101 ILTPQS LAPTOP 45000 11-FEB-12 4 YEARS IBM
NEW YORK
I101 ILTPXS LAPTOP 34000 21-MAR-12 4 YEARS IBM
NEW YORK
I101 ILTPZS LAPTOP 40000 12-FEB-13 7 YEARS IBM
NEW YORK
W202 WDTPG DESKTOP 23000 30-OCT-12 1 YEAR WIPRO
CHICAGO
W202 WCFLL LIGHTS 3400 22-JAN-13 2 YEARS WIPRO
CHICAGO
D303 DDTPW DESKTOP 27000 13-NOV-12 5 YEARS DELL
TEXAS
D303 DLTPG LAPTOP 46000 08-JAN-13 2 YEARS DELL
TEXAS
D303 DMBLY MOBILE 32000 10-JAN-13 DELL
TEXAS
S404 SLTPC LAPTOP 34000 04-DEC-12 6 MONTHS SAMSUNG
KOREA
S404 SLTPD LAPTOP 45000 09-DEC-12 2 YEARS SAMSUNG
KOREA
S404 SMBLGLXY MOBILE 24000 10-JAN-12 1 YEAR SAMSUNG
KOREA
COMP_CODE PROD_CODE PROD_NAME COST MFG WARRENTY
COMP_NAME CITY
---------- ---------- -------------------- ---------- --------- ----------
-------------------- ----------
S404 SMBLGLXG MOBILE 21500 02-FEB-13 1 YEAR SAMSUNG
KOREA

12 rows selected.

SQL> --> give me laptop details ?


SQL>
SQL> select * from vw_prodinfo where prod_name='LAPTOP';

COMP_CODE PROD_CODE PROD_NAME COST MFG WARRENTY


COMP_NAME CITY
---------- ---------- -------------------- ---------- --------- ----------
-------------------- ----------
I101 ILTPQS LAPTOP 45000 11-FEB-12 4 YEARS IBM
NEW YORK
I101 ILTPXS LAPTOP 34000 21-MAR-12 4 YEARS IBM
NEW YORK
I101 ILTPZS LAPTOP 40000 12-FEB-13 7 YEARS IBM
NEW YORK
D303 DLTPG LAPTOP 46000 08-JAN-13 2 YEARS DELL
TEXAS
S404 SLTPC LAPTOP 34000 04-DEC-12 6 MONTHS SAMSUNG
KOREA
S404 SLTPD LAPTOP 45000 09-DEC-12 2 YEARS SAMSUNG
KOREA

6 rows selected.

SQL> --> get product names,cost along with company names


SQL>
SQL> select prod_name,cost,comp_name
2 from vw_prodinfo;

PROD_NAME COST COMP_NAME

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

LAPTOP 45000 IBM

LAPTOP 34000 IBM

LAPTOP 40000 IBM

DESKTOP 23000 WIPRO

LIGHTS 3400 WIPRO

DESKTOP 27000 DELL

LAPTOP 46000 DELL

MOBILE 32000 DELL

LAPTOP 34000 SAMSUNG


LAPTOP 45000 SAMSUNG

MOB�

You might also like