Vous êtes sur la page 1sur 42

Ex.No.

: 1 Name:
Date : Reg. No. :
--------------------------------------------------------------------------------
----------------------------
CREATION OF TABLES & SIMPLE QUERIES

Table Name: Product_Info


Column Name Purpose
Maker Name of the maker/manufacturer of computers/peripherals
Model_No The unique identifier for each product manufactured
Type Indicates the type of the product PC for personal computers, LP for Lapt
op and PR for printers
SQL> create table Product_Info(
2 Maker varchar2(10),
3 Model_No varchar2(10),
4 Type varchar2(10));
Table created.
SQL> desc Product_Info;
Name Null? Type
----------------------------------------- -------- ------------------
MAKER VARCHAR2(10)
MODEL_NO VARCHAR2(10)
TYPE VARCHAR2(10)

Table Name: PC
Column Name Purpose
Model_No The unique identifier for each PC
Speed Clock Speed of the PC
RAM RAM in MB
HD The hard-disk capacity of the PC in GB
CD The speed of the CD Drive
Price Price of the PC
SQL> create table PC(
2 Model_No varchar2(10),
3 Speed number(5),
4 RAM number(5),
5 HD number(5),
6 CD number(5),
7 Price number(7));
Table created.
SQL> desc PC;
Name Null? Type
----------------------------------------- -------- ------------------
MODEL_NO VARCHAR2(10)
SPEED NUMBER(5)
RAM NUMBER(5)
HD NUMBER(5)
CD NUMBER(5)
PRICE NUMBER(7)

Table Name: Laptop


Column Name Purpose
Model_No The unique identifier for each Laptop
Speed Clock Speed of the PC
RAM RAM in MB
HD The hard-disk capacity of the PC in GB
Screensize Screensize of the laptop
Price Price of the PC

SQL> create table Laptop(


2 Model_No varchar2(10),
3 Speed number(5),
4 RAM number(5),
5 HD number(5),
6 Screensize number(5),
7 Price number(7));
Table created.
SQL> desc Laptop;
Name Null? Type
----------------------------------------- -------- -------------------
MODEL_NO VARCHAR2(10)
SPEED NUMBER(5)
RAM NUMBER(5)
HD NUMBER(5)
SCREENSIZE NUMBER(5)
PRICE NUMBER(7)

Table Name: Printer


Column Name Purpose
Model_No The unique identifier for each Laptop
Color Flag indicating whether it is a color printer or a black and white print
er
Type Line, InkJet or Laser
Price Price of the printer
SQL> create table Printer(
2 Model_No varchar2(10),
3 Color varchar2(5),
4 Type varchar2(5),
5 Price number(7));
Table created.
SQL> desc Printer;
Name Null? Type
----------------------------------------- -------- ----------------
MODEL_NO VARCHAR2(10)
COLOR VARCHAR2(5)
TYPE VARC
HAR2(5)
PRICE NUMBER(7)
The product_info table serves as a master table containing the list of all model
s of pc, laptop and printers manufactured by all makers. The PC, Laptop and the
printer table give specific details about each product in that class.

1. Create the 4 tables mentioned above


a. Check if the table is created successfully (tab table)
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
LAPTOP TABLE
PC TABLE
PRINTER TABLE
PRODUCT_INFO TABLE
************************************************************

2. Insert the following tuples in the table ProductInfo


MAKER MODEL TYPE
--------- -------------------- -----------
HCL PC112 PC
HCL LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
HCL LP114 LP
IBM PC132 PC
IBM LP133 LP
IBM PR134 PR

SQL> INSERT INTO PRODUCT_INFO VALUES('&MAKER','&MODEL_NO','&TYPE');


ENTER VALUE FOR MAKER: HCL
ENTER VALUE FOR MODEL_NO: PC112
ENTER VALUE FOR TYPE: PC
OLD 1: INSERT INTO PRODUCT_INFO VALUES('&MAKER','&MODEL_NO','&TYPE')
NEW 1: INSERT INTO PRODUCT_INFO VALUES('HCL','PC112','PC')
1 ROW CREATED.
SQL> /
ENTER VALUE FOR MAKER: HCL
ENTER VALUE FOR MODEL_NO: LP113
ENTER VALUE FOR TYPE: LP
OLD 1: INSERT INTO PRODUCT_INFO VALUES('&MAKER','&MODEL_NO','&TYPE')
NEW 1: INSERT INTO PRODUCT_INFO VALUES('HCL','LP113','LP')
1 ROW CREATED.
SQL> SELECT * FROM PRODUCT_INFO;

MAKER MODEL_NO TYPE


---------- ---------- ----------
HCL PC112 PC
HCL LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
HCL LP114 LP
IBM PC132 PC
IBM LP133 LP
IBM PR134 PR
11 ROWS SELECTED.

************************************************************

3. Insert the following tuples in the table pc


MODEL SPEED RAM HD CD PRICE
-------------------- --------- --------- --------- --------- ---------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
SQL>INSERT INTO PC VALUES('&MODEL_N0',&SPEED,&RAM,&HD,&CD,&PRICE);
ENTER VALUE FOR MODEL_N0: PC112
ENTER VALUE FOR SPEED: 2
ENTER VALUE FOR RAM: 256
ENTER VALUE FOR HD: 60
ENTER VALUE FOR CD: 52
ENTER VALUE FOR PRICE: 40000
OLD 1: INSERT INTO PC VALUES('&MODEL_N0',&SPEED,&RAM,&HD,&CD,&PRICE)
NEW 1: INSERT INTO PC VALUES('PC112',2,256,60,52,40000)
1 ROW CREATED.
SQL> /
ENTER VALUE FOR MODEL_N0: PC122
ENTER VALUE FOR SPEED: 2
ENTER VALUE FOR RAM: 256
ENTER VALUE FOR HD: 60
ENTER VALUE FOR CD: 48
ENTER VALUE FOR PRICE: 42000
OLD 1: INSERT INTO PC VALUES('&MODEL_N0',&SPEED,&RAM,&HD,&CD,&PRICE)
NEW 1: INSERT INTO PC VALUES('PC122',2,256,60,48,42000)
1 ROW CREATED.

SQL> SELECT * FROM PC;


MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 4
0000
PC122 2 256 60 48 4
2000
PC132 1 128 100 68 50
000
PC134 1 512 60 68 8
0000
************************************************************
4. Insert the following tuples in the table LAPTOP
MODEL SPEED RAM HD SCREEN PRICE
------------------------------------------------------------------------
lp113 1 64 40 14 590
00
lp123 2 128 60 16 7200
0
lp133 2 256 80 17 100000
lp114 2 128 40 17
45000

SQL> insert into laptop values('&model',&speed,&ram,&hd,&screen,&price);


Enter value for model: LP113
Enter value for speed: 1
Enter value for ram: 64
Enter value for hd: 40
Enter value for screen: 14
Enter value for price: 59000
old 1: insert into laptop values('&model',&speed,&ram,&hd,&screen,&price)
new 1: insert into laptop values('LP113',1,64,40,14,59000)
1 row created.

Enter value for model: LP123


Enter value for speed: 2
Enter value for ram: 128
Enter value for hd: 60
Enter value for screen: 16
Enter value for price: 72000
old 1: insert into laptop values('&model',&speed,&ram,&hd,&screen,&price)
new 1: insert into laptop values('LP123',2,128,60,16,72000)
1 row created.
SQL> select * from laptop;
MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- -------------------------
------
LP113 1 64 40 14
59000
LP123 2 128 60 16
72000
LP114 2 128 40 17
45000
LP133 2 256 80 17
100000
************************************************************
5. Insert the following tuples in the table PRINTER
MODEL COLO TYPE PRICE
---------------------------------------------------
Pr114 true ink 17000
pr124 false dot 12000
pr134 true laser 17000
SQL> insert into printer values('&model','&color','&type',&price);
Enter value for model: PR114
Enter value for color: TRUE
Enter value for type: INK
Enter value for price: 17000
old 1: insert into printer values('&model','&color','&type',&price)
new 1: insert into printer values('PR114','TRUE','INK',17000)
1 row created.
SQL> /
Enter value for model: PR124
Enter value for color: FALSE
Enter value for type: DOT
Enter value for price: 12000
old 1: insert into printer values('&model','&color','&type',&price)
new 1: insert into printer values('PR124','FALSE','DOT',12000)
1 row created.
SQL> /
Enter value for model: PR134
Enter value for color: TRUE
Enter value for type: LASER
Enter value for price: 17000
old 1: insert into printer values('&model','&color','&type',&price)
new 1: insert into printer values('PR134','TRUE','LASER',17000)
1 row created.
SQL> select * from printer;
MODEL_NO COLOR TYPE PRICE
---------- ----- ----- -----------------------------
PR114 TRUE INK 17000
PR124 FALSE DOT 12000
PR134 TRUE LASER 17000
****************************************************************

6. Insert a tuple such that the model value is PC100, it is manufactured by


HCL and has a speed of 3 GHz, RAM of 256 MB, HD of 40 GB and CD of speed 52x.
The price is 50000.
SQL> insert into product_info values('HCL','PC100','PC');
1 row created.
SQL> select * from product_info;
MAKER MODEL_NO TYPE
---------- ---------- --------------------
HCL PC112 PC
HCL LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
HCL LP114 LP
IBM PC132 PC
IBM LP133 LP
IBM PR134 PR
MAKER MODEL_NO TYPE
---------- ---------- --------------------
HCL PC100 PC
12 rows selected.
SQL> insert into pc values('PC100',3,256,40,52,50000);
1 row created.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- -------------------------
-
PC112 2 256 60 52
40000
PC122 2 256 60 48
42000
PC132 1 128 100 68 5
0000
PC134 1 512 60 68
80000
PC100 3 256 40 52
50000

************************************************************

7. Delete all PC s with less than 50 cd speed.


MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- -------------------------
-
PC112 2 256 60 52
40000
PC122 2 256 60 48
42000
PC132 1 128 100 68 5
0000
PC134 1 512 60 68
80000
PC100 3 256 40 52
50000

SQL> delete from pc where cd<50;


1 row deleted.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 4000
0
PC132 1 128 100 68 50000
PC134 1 512 60 68 8
0000
PC100 3 256 40 52 5
0000
************************************************************

8. Manufacturer IBM buys manufacture HCL. Change all products made by HCL
so they are now made by IBM.
SQL> select * from product_info;
MAKER MODEL_NO TYPE
---------- ---------- --------------------
HCL PC112 PC
HCL LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
HCL LP114 LP
IBM PC132 PC
IBM LP133 LP
IBM PR134 PR
MAKER MODEL_NO TYPE
---------- ---------- --------------------
HCL PC100 PC
12 rows selected.
SQL> update product_info set maker='IBM' where maker='HCL';
4 rows updated.
SQL> select * from product_info;
MAKER MODEL_NO TYPE
---------- ---------- ----------
IBM PC112 PC
IBM LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
IBM LP114 LP
IBM PC132 PC
IBM LP133 LP
IBM PR134 PR
MAKER MODEL_NO TYPE
---------- ---------- ----------
IBM PC100 PC
12 rows selected.
************************************************************
9. For each PC double the amount of RAM and add 10 gb to the HDD.

SQL> select * from pc;


MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 4
0000
PC132 1 128 100 68 5
0000
PC134 1 512 60 68
80000
PC100 3 256 40 52
50000
SQL> update pc set ram=2*ram,hd=hd+10;
4 rows updated.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 512 70 52
40000
PC132 1 256 110 68 5
0000
PC134 1 1024 70 68 8
0000
PC100 3 512 50 52
50000
************************************************************
10. For the printer whose modelno=pr124 subtract Rs. 4000 from the price.
SQL> select * from printer;
MODEL_NO COLOR TYPE PRICE
---------- ----- ----- ----------
PR114 TRUE INK 17000
PR124 FALSE DOT 12000
PR134 TRUE LASER 17000
SQL> update printer set price=price-4000 where model_no='PR124';
1 row updated.

SQL> select * from printer;


MODEL_NO COLOR TYPE PRICE
---------- ----- ----- ----------
PR114 TRUE INK 17000
PR124 FALSE DOT 8000
PR134 TRUE LASER 17000
************************************************************
Ex.No. :2 Name:
Date : Reg. No. :
--------------------------------------------------------------------------------
----------------------------
KEY CONSTRAINTS
1. Alter the table product_info to make the type column NOT NULL.
SQL> desc product_info;
Name Null? Type
----------------------------------------- -------- ------------------------
MAKER VARCHAR2(10)
MODEL_NO VARCHAR2(10)
TYPE VARCHAR2(10)
SQL> alter table product_info modify(type varchar2(10) not null);
Table altered.
SQL> desc product_info;
Name Null? Type
----------------------------------------- -------- ------------------------
MAKER VARCHAR2(10)
MODEL_NO VARCHAR2(10)
TYPE NOT NULL VARCHAR2(10)
****************************************************************

2. Alter the table pc to have a default speed of 2.


SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
SQL> alter table pc modify(speed default 2);
Table altered.
SQL> insert into pc(model_no,ram,hd,cd,price) values('PC136',512,100,68,90000);
1 row created.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
****************************************************************

3. Create suitable primary keys for all the tables of the above database sc
hema
a. Check if the primary keys are created successfully (User_Constraints tab
le)

SQL> alter table product_info add constraint pipk primary key(model_no);


Table altered.
SQL> desc product_info;
Name Null? Type
----------------------------------------- -------- ----------------------------
MAKER VARCHAR2(10)
MODEL_NO NOT NULL VARCHAR2(10)
TYPE NOT NULL VARCHAR2(10)
SQL> alter table pc add constraint pcpk primary key(model_no);
Table altered.
SQL> desc pc;
Name Null? Type
----------------------------------------- -------- ----------------------------
MODEL_NO NOT NULL VARCHAR2(10)
SPEED NUMBER(5)
RAM NUMBER(5)
HD NUMBER(5)
CD NUMBER(5)
PRICE NUMBER(7)
SQL> alter table laptop add constraint ltpk primary key(model_no);
Table altered.
SQL> desc laptop;
Name Null? Type
----------------------------------------- -------- ----------------------------
MODEL_NO NOT NULL VARCHAR2(10)
SPEED NUMBER(5)
RAM NUMBER(5)
HD NUMBER(5)
SCREENSIZE NUMBER(5)
PRICE NUMBER(7)
SQL> alter table printer add constraint prpk primary key(model_no);
Table altered.
SQL> desc printer;
Name Null? Type
----------------------------------------- -------- ----------------------------
MODEL_NO NOT NULL VARCHAR2(10)
COLOR VARCHAR2(5)
TYPE VARCHAR2(5)
PRICE NUMBER(7)
SQL> select table_name,constraint_name,constraint_type from user_constraints;
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
LAPTOP LTPK P
PC PCPK P
PRINTER PRPK P
PRODUCT_INFO SYS_C0034022 C
PRODUCT_INFO PIPK P
****************************************************************

4. Create suitable foreign keys for all the tables of the above database sc
hema
a. Check if the foreign keys are created successfully (User_Constraints tab
le)
SQL> alter table pc add constraint pcfk foreign key(model_no) references product
_info(model_no);
Table altered.
SQL> alter table printer add constraint prfk foreign key(model_no) references pr
oduct_info(model_no);
Table altered.
SQL> alter table laptop add constraint ltfk foreign key(model_no) references pro
duct_info(model_no);
Table altered.
SQL> select table_name,constraint_name,constraint_type from user_constraints;
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
LAPTOP LTPK P
LAPTOP LTFK R
PC PCPK P
PC PCFK R
PRINTER PRPK P
PRINTER PRFK R
PRODUCT_INFO SYS_C0034022 C
PRODUCT_INFO PIPK P

b. Demonstrate the usage of On delete cascade


SQL> alter table laptop add constraint ltfk foreign key(model_no) references pro
duct_info(model_no);
Table altered.

SQL> delete from product_info where model_no='LP133';


delete from product_info where model_no='LP133'
*
ERROR at line 1:
ORA-02292: integrity constraint (CSE3E63.LTFK) violated - child record found

SQL> alter table laptop add constraint ltfk foreign key(model_no) references pro
duct_info(model_no) on delete cascade;
Table altered.
SQL> delete from product_info where model_no='LP133';
1 row deleted.
SQL> select * from product_info;
MAKER MODEL_NO TYPE
---------- ---------- ----------
HCL PC112 PC
HCL LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
HCL LP114 LP
IBM PC132 PC
IBM PR134 PR
10 rows selected.
SQL> select * from laptop;
MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- ----------
LP113 1 64 40 14 59000
LP123 2 128 60 16 72000
LP114 2 128 40 17 45000

****************************************************************

5. Check Constraints:
a. Apply a check constraint on the product_info table such that the only pe
rmitted values for the type column are pc , lp and pr .

SQL> alter table product_info add constraint pick check(type in('PR','PC','LP'))


;
Table altered.
SQL> select table_name,constraint_name,constraint_type from user_constraints;
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
LAPTOP LTPK P
LAPTOP LTFK R
PC PCPK P
PC PCFK R
PRINTER PRPK P
PRINTER PRFK R
PRODUCT_INFO SYS_C0034022 C
PRODUCT_INFO PIPK P
PRODUCT_INFO PICK C

b. Apply a check constraint such that the prices of pc, laptop and printer
are all positive.
SQL> alter table pc add constraint pcck check(price>0);
Table altered.
SQL> alter table laptop add constraint ltck check(price>0);
Table altered.
SQL> alter table printer add constraint prck check(price>0);
Table altered.
SQL> insert into printer values('PR134','TRUE','DOT',-50000);
insert into printer values('PR134','TRUE','DOT',-50000)
*
ERROR at line 1:
ORA-02290: check constraint (CSE3E63.PRCK) violated

c. Check if the check constraints are created successfully (User_Constraint


s table)

SQL> select table_name,constraint_name,constraint_type from user_constraints;


TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
LAPTOP LTPK P
LAPTOP LTFK R
LAPTOP LTCK C
PC PCPK P
PC PCFK R
PC PCCK C
PRINTER PRPK P
PRINTER PRFK R
PRINTER PRCK C
PRODUCT_INFO SYS_C0034022 C
PRODUCT_INFO PIPK P
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
PRODUCT_INFO PICK C
****************************************************************
6. What are the different values for constraint_type in the user_constraint
s table and what is the meaning of each of those values?
P Primary Key
R Referential Integrity (Foreign Key)
C Check or Not Null constraint
U Unique Constraint
****************************************************************

7. Create a table named Type_info with the columns model , type from Product
Info table ( Use the create table yyy as select construct )
a. Initially no rows should be present in the dummy table
SQL> create table type_info as select model_no, type from product_info where 1>2
;
Table created.
SQL> desc type_info;
Name Null? Type
----------------------------------------- -------- ----------------------------
MODEL_NO VARCHAR2(10)
TYPE NOT NULL VARCHAR2(10)
SQL> select * from type_info;
no rows selected
b. Insert all the rows from product_info into Type_Info (only selected column
s)

SQL> insert into type_info select model_no,type from product_info;


11 rows created.
SQL> select * from type_info;
MODEL_NO TYPE
---------- ----------
PC112 PC
LP113 LP
PR114 PR
PC122 PC
LP123 LP
PR124 PR
PC134 PC
LP114 LP
PC132 PC
PR134 PR
PC136 PC
11 rows selected.
****************************************************************

8. Modify the table printer by adding a column printercode of type varchar2


(10) to identify the printer uniquely in the world.
SQL> alter table printer add(printercode varchar2(10));
Table altered.
SQL> desc printer;
Name Null? Type
----------------------------------------- -------- --------------------
------
MODEL_NO NOT NULL VARCHAR2(10)
COLOR VARCHAR2(5)
TYPE VARCHAR2(5)
PRICE NUMBER(7)
PRINTERCODE VARCHAR2(10)
****************************************************************

9. Add a Unique key constraint in the printercode column.


a. Check if the unique key constraint is created successfully (User_Constra
ints table)
SQL> alter table printer add constraint pruk unique(printercode);
Table altered.

SQL> select table_name,constraint_name,constraint_type from user_constraints;


TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
LAPTOP LTPK P
LAPTOP LTFK R
LAPTOP LTCK C
PC PCPK P
PC PCFK R
PC PCCK C
PRINTER PRPK P
PRINTER PRFK R
PRINTER PRCK C
PRINTER PRUK U
PRODUCT_INFO SYS_C0034022 C
TABLE_NAME CONSTRAINT_NAME C
------------------------------ ------------------------------ -
PRODUCT_INFO PIPK P
PRODUCT_INFO PICK C
TYPE_INFO SYS_C0034038 C
14 rows selected.
****************************************************************

10. Increase the width of the column printercode by 2.

SQL> desc printer;


Name Null? Type
----------------------------------------- -------- ----------------
MODEL_NO NOT NULL VARCHAR2(10)
COLOR VARCHAR2(5)
TYPE VARCHAR2(5)
PRICE NUMBER(7)
PRINTERCODE VARCHAR2(10)
SQL> alter table printer modify(printercode varchar2(12));
Table altered.
SQL> desc printer;
Name Null? Type
----------------------------------------- -------- ---------------
MODEL_NO NOT NULL VARCHAR2(10)
COLOR VARCHAR2(5)
TYPE VARCHAR2(5)
PRICE NUMBER(7)
PRINTERCODE VARCHAR2(12)
****************************************************************
11. Without removing the table definition from the database remove all the r
ows from the table Type_info .

SQL> delete from type_info;


11 rows deleted.
SQL> desc type_info;
Name Null? Type
----------------------------------------- -------- ---------------
MODEL_NO VARCHAR2(10)
TYPE NOT NULL VARCHAR2(10)
****************************************************************
12. Drop the table type_info from the database.

SQL> drop table type_info;


Table dropped.
SQL> desc type_info;
ERROR:
ORA-04043: object type_info does not exist

Ex.No. :3 Name:
Date : Reg. No. :
--------------------------------------------------------------------------------
----------------------------

ARITHMETIC , LOGICAL , SET OPERATIONS & SORTING


Create a table WORKERSKILL with the following details:

Name Skill City Phone


DICK JONES JOHN PEARSON HELEN BRANDT JOHN PEARSON JOHN PEARSON VI
CTORIA LYNN ADAH TALBOT ELBERT LOWELLWILFRED LOWELLANAND KUMAR JACKSON
SMITHY COMBINE DRIVERCOMBINE DRIVERCOMBINE DRIVERSMITHY
SMITHY WORK DISCUS WORK PROGRAM PROG
RAM TRICHY CHENNAI MADURAI CHENNAI MADURAI SYDNEY THANJAVU
RDELHISALEM ERODE HOSUR 91-0437-77651
91-0426-9872191-0435-33333 91-0453-9876591-0345-3456591-0234-9872391-0652-6
6544 91-0433-9087591-0213-9872391-0441-9812391-0543-90873
SQL> create table workerskill(
2 name varchar2(20),
3 skill varchar2(15),
4 city varchar2(10),
5 phone varchar2(15));
Table created.
SQL> desc workerskill;
Name Null? Type
----------------------------------------- -------- ----------------
NAME VARCHAR2(20)
SKILL VARCHAR2(15)
CITY VARCHAR2(10)
PHONE VARCHAR2(15)
SQL> insert into workerskill values('&name','&skill','&city','&phone');
Enter value for name: DICK JONES
Enter value for skill: SMITHY
Enter value for city: TRICHY
Enter value for phone: 91-0437-77651
old 1: insert into workerskill values('&name','&skill','&city','&phone')
new 1: insert into workerskill values('DICK JONES','SMITHY','TRICHY','91-0437-
77651')
1 row created.
SQL> /
Enter value for name: JOHN PEARSON
Enter value for skill: COMBINE DRIVER
Enter value for city: CHENNAI
Enter value for phone: 91-0426-98721
old 1: insert into workerskill values('&name','&skill','&city','&phone')
new 1: insert into workerskill values('JOHN PEARSON','COMBINE DRIVER','CHENNAI
','91-0426-98721')
1 row created.
SQL> select * from workerskill;
NAME SKILL CITY PHONE
-------------------- --------------- ---------- ---------------
DICK JONES SMITHY TRICHY 91-0437-77651
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0426-98721
HELEN BRANDT COMBINE DIRVER MADURAI 91-0435-33333
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0453-98765
JOHN PEARSON SMITHY MADURAI 91-0345-34565
VICTORIA LYNN SMITHY SYDNEY 91-0234-98723
ADAH TALBOT WORK THANJAVUR 91-0652-66544
ELBERT LOWELL DISCUS DELHI 91-0433-90875
WILFRED LOWELL WORK SALEM 91-0213-98723
ANAND KUMAR PROGRAM ERODE 91-0441-98123
JACKSON PROGRAM HOSUR 91-0543-90873
11 rows selected.
****************************************************************

Create a table named WORKER with the following details

Name Age
DICK JONESWILLIAM SWING BART SARJEANT SUMA RANGANATH RICHARD WILLIA
MSBHARTH KUMAR JOHN PEARSON JACKSON MEENA KUMARI ADAH TALBOT
33 30 32 21 29 36 28 34 29
27
SQL> create table worker (
2 name varchar2(20),
3 age number(3));
Table created.
SQL> desc worker;
Name Null? Type
----------------------------------------- -------- ---------------
NAME VARCHAR2(20)
AGE NUMBER(3)
SQL> insert into worker values('&name',&age);
Enter value for name: DICK JONES
Enter value for age: 33
old 1: insert into worker values('&name',&age)
new 1: insert into worker values('DICK JONES',33)
1 row created.
SQL> /
Enter value for name: WILLIAM SWING
Enter value for age: 30
old 1: insert into worker values('&name',&age)
new 1: insert into worker values('WILLIAM SWING',30)
1 row created.
SQL> select * from worker;
NAME AGE
-------------------- ----------
DICK JONES 33
WILLIAM SWING 30
BART SARJEANT 32
SUMA RANGANATH 21
RICHARD WILLIAMS 29
BHARATH KUMAR 36
JOHN PEARSON 28
JACKSON 34
MEENA KUMARI 29
ADAH TALBOT 27
10 rows selected.
****************************************************************

1. List those rows of the table PC where RAM sizes are either 128 or 256 and th
e capacity of HD is greater than or equal to 50.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000

SQL> select * from pc where (ram=128 or ram=256) and hd>=50;


MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
****************************************************************

2. List all the rows from PRINTER except the printers pr112 or pr124 .

SQL> select * from printer;


MODEL_NO COLOR TYPE PRICE PRINTERCODE
---------- ----- ----- ---------- ------------
PR114 TRUE INK 17000
PR124 FALSE DOT 12000
PR134 TRUE LASER 17000
SQL> select * from printer where model_no not in('PR112','PR124');
MODEL_NO COLOR TYPE PRICE PRINTERCODE
---------- ----- ----- ---------- ------------
PR114 TRUE INK 17000
PR134 TRUE LASER 17000
****************************************************************

3. List all the rows from LAPTOP in ascending and descending order of the s
creen size.

SQL> select * from laptop;


MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- ----------
LP113 1 64 40 14 59000
LP123 2 128 60 16 72000
LP114 2 128 40 17 45000
SQL> select * from laptop order by screensize;
MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- ----------
LP113 1 64 40 14 59000
LP123 2 128 60 16 72000
LP114 2 128 40 17 45000
SQL> select * from laptop order by screensize desc;
MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- ----------
LP114 2 128 40 17 45000
LP123 2 128 60 16 72000
LP113 1 64 40 14 59000

****************************************************************
4. List the makers of PC s. Use like operator in the model field (don t use type)
.

SQL> select * from product_info;


MAKER MODEL_NO TYPE
---------- ---------- ----------
HCL PC112 PC
HCL LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
HCL LP114 LP
IBM PC132 PC
IBM PR134 PR
HCL PC136 PC
11 rows selected.
SQL> select maker from product_info where model_no like 'PC%';
MAKER
----------
HCL
WIPRO
IBM
IBM
HCL
SQL> select distinct maker from product_info where model_no like 'PC%';
MAKER
----------
HCL
IBM
WIPRO
****************************************************************

5. List the laptop details where the screen size is not 17.

SQL> select * from laptop;


MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- ----------
LP113 1 64 40 14 59000
LP123 2 128 60 16 72000
LP114 2 128 40 17 45000
SQL> select * from laptop where screensize!=17;
MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- ----------
LP113 1 64 40 14 59000
LP123 2 128 60 16 72000
****************************************************************
6. List the printers whose price is between 5000 and 10000. (Use between).
SQL> select * from printer;
MODEL_NO COLOR TYPE PRICE PRINTERCODE
---------- ----- ----- ---------- ------------
PR114 TRUE INK 17000
PR124 FALSE DOT 12000
PR134 TRUE LASER 17000
SQL> select * from printer where price between 5000 and 10000;
no rows selected
SQL> select * from printer where price between 10000 and 15000;
MODEL_NO COLOR TYPE PRICE PRINTERCODE
---------- ----- ----- ---------- ------------
PR124 FALSE DOT 12000
****************************************************************

7. Give examples for all the arithmetic operators >, <, >=, <=, <>, =, betw
een, in.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
> OPERATOR
SQL> select * from pc where hd>50;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
< OPERATOR
SQL> select * from pc where hd<100;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC134 1 512 60 68 80000
>= OPERATOR
SQL> select * from pc where hd>=100;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC132 1 128 100 68 50000
PC136 2 512 100 68 90000
<= OPERATOR
SQL> select * from pc where hd<=100;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
< OPERATOR
SQL> select * from pc where hd<>100;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC134 1 512 60 68 80000
= OPERATOR
SQL> select * from pc where hd=100;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC132 1 128 100 68 50000
PC136 2 512 100 68 90000
IN

SQL> select * from pc where hd in 100;


MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC132 1 128 100 68 50000
PC136 2 512 100 68 90000
BETWEEN AND
SQL> select * from pc where hd between 80 and 100;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC132 1 128 100 68 50000
PC136 2 512 100 68 90000
****************************************************************

8. Display the PC details if we double the ram capacity. (Don t update).

SQL> select * from pc;


MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
SQL> select model_no,speed,2*ram,hd,cd,price from pc;
MODEL_NO SPEED 2*RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 512 60 52 40000
PC122 2 512 60 48 42000
PC132 1 256 100 68 50000
PC134 1 1024 60 68 80000
PC136 2 1024 100 68 90000
****************************************************************

9. Display the printer details with the following columnname as heading


PRINTER MODEL COLORINFO PRINTERTYPE PRICE
---------------- --------- -------------- ----------------
----- --------------
SQL> select * from printer;
MODEL_NO COLOR TYPE PRICE PRINTERCODE
---------- ----- ----- ---------- ------------
PR114 TRUE INK 17000
PR124 FALSE DOT 12000
PR134 TRUE LASER 17000
SQL> select model_no as "PRINTER MODEL",color as "COLORINFO", type as "PRINTERT
YPE", price as "PRICE" from printer;
PRINTER MODEL COLORINFO PRINTERTYPE PRICE
--------------- --------------- --------------- ----------
PR114 TRUE INK 17000
PR124 FALSE DOT 12000
PR134 TRUE LASER 17000
****************************************************************

10. Apply the following operations on WORKER and WORKERSKILL tables


UNION, UNION ALL , INTERSECTION & MINUS.
SQL> select * from worker;
NAME AGE
-------------------- ----------
DICK JONES 33
WILLIAM SWING 30
BART SARJEANT 32
SUMA RANGANATH 21
RICHARD WILLIAMS 29
BHARATH KUMAR 36
JOHN PEARSON 28
JACKSON 34
MEENA KUMARI 29
ADAH TALBOT 27
10 rows selected.
SQL> select * from workerskill;
NAME SKILL CITY PHONE
-------------------- --------------- ---------- ---------------
DICK JONES SMITHY TRICHY 91-0437-77651
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0426-98721
HELEN BRANDT COMBINE DIRVER MADURAI 91-0435-33333
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0453-98765
JOHN PEARSON SMITHY MADURAI 91-0345-34565
VICTORIA LYNN SMITHY SYDNEY 91-0234-98723
ADAH TALBOT WORK THANJAVUR 91-0652-66544
ELBERT LOWELL DISCUS DELHI 91-0433-90875
WILFRED LOWELL WORK SALEM 91-0213-98723
ANAND KUMAR PROGRAM ERODE 91-0441-98123
JACKSON PROGRAM HOSUR 91-0543-90873
11 rows selected.
UNION:
SQL> select name from worker union select name from workerskill;
NAME
--------------------
ADAH TALBOT
ANAND KUMAR
BART SARJEANT
BHARATH KUMAR
DICK JONES
ELBERT LOWELL
HELEN BRANDT
JACKSON
JOHN PEARSON
MEENA KUMARI
RICHARD WILLIAMS
NAME
--------------------
SUMA RANGANATH
VICTORIA LYNN
WILFRED LOWELL
WILLIAM SWING
15 rows selected.
UNION ALL:
SQL> select name from worker union all select name from workerskill;
NAME
--------------------
DICK JONES
WILLIAM SWING
BART SARJEANT
SUMA RANGANATH
RICHARD WILLIAMS
BHARATH KUMAR
JOHN PEARSON
JACKSON
MEENA KUMARI
ADAH TALBOT
DICK JONES
NAME
--------------------
JOHN PEARSON
HELEN BRANDT
JOHN PEARSON
JOHN PEARSON
VICTORIA LYNN
ADAH TALBOT
ELBERT LOWELL
WILFRED LOWELL
ANAND KUMAR
JACKSON
21 rows selected.
INTERSECT:
SQL> select name from worker intersect select name from workerskill;
NAME
--------------------
ADAH TALBOT
DICK JONES
JACKSON
JOHN PEARSON
MINUS :
SQL> select name from worker minus select name from workerskill;
NAME
--------------------
BART SARJEANT
BHARATH KUMAR
MEENA KUMARI
RICHARD WILLIAMS
SUMA RANGANATH
WILLIAM SWING
6 rows selected.

SQL> select name from workerskill minus select name from worker;
NAME
--------------------
ANAND KUMAR
ELBERT LOWELL
HELEN BRANDT
VICTORIA LYNN
WILFRED LOWELL
****************************************************************

11. Display the HD size available in PC without duplicate values(use DISTIN


CT).
SQL> select hd from pc;
HD
----------
60
60
100
60
100
SQL> select distinct hd from pc;
HD
----------
60
100
****************************************************************
12. For each value of RAM, list the number of PCs (use group by function).

SQL> select * from pc;


MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
SQL> select ram, count(*) as pcs from pc group by ram;
RAM PCS
---------- ----------
128 1
256 2
512 2
****************************************************************

13. For each value of HD, list the number of PCs (use group by function).
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
SQL> select hd, count(*) as qty from pc group by hd;
HD QTY
---------- ----------
60 3
100 2
****************************************************************

14.List the HD values for which the number of PCs is more than 2 (use group by a
nd having clause).
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000

SQL> select hd, count(*) as pcs from pc group by hd having count(*)>2


HD PCS
---------- ----------
60 3
****************************************************************

Ex.No. :4 Name:
Date : Reg. No. :
--------------------------------------------------------------------------------
----------------------------

BUILT- IN FUNCTIONS

1. Find the difference between the highest and lowest price from laptop.
SQL> select * from laptop;
MODEL_NO SPEED RAM HD SCREENSIZE PRICE
---------- ---------- ---------- ---------- ---------- ----------
LP113 1 64 40 14 59000
LP123 2 128 60 16 72000
LP114 2 128 40 17 45000
SQL> select max(price), min(price), max(price)-min(price) as diff from laptop;
MAX(PRICE) MIN(PRICE) DIFF
---------- ---------- ----------
72000 45000 27000
2. Find the Standard deviation and Variance of price in PC table.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
SQL> select STDDEV(price) , VARIANCE(price) from pc;
STDDEV(PRICE) VARIANCE(PRICE)
------------- ---------------
23039.0972 530800000
3. Use a specific command to get the data in the following manner:
Workername age
JACK ADAMS --21
MEENA KUMARI --31
SQL> select * from worker;
NAME AGE
-------------------- ----------
DICK JONES 33
WILLIAM SWING 30
BART SARJEANT 32
SUMA RANGANATH 21
RICHARD WILLIAMS 29
BHARATH KUMAR 36
JOHN PEARSON 28
JACKSON 34
MEENA KUMARI 29
ADAH TALBOT 27
10 rows selected.
SQL> select name as workername, lpad(age,4,'--') as age from worker;
WORKERNAME AGE
-------------------- ----
DICK JONES --33
WILLIAM SWING --30
BART SARJEANT --32
SUMA RANGANATH --21
RICHARD WILLIAMS --29
BHARATH KUMAR --36
JOHN PEARSON --28
JACKSON --34
MEENA KUMARI --29
ADAH TALBOT --27
10 rows selected.
4. a. Update the PC table such that, the price for all PC models is increas
ed by 12.33%.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 40000
PC122 2 256 60 48 42000
PC132 1 128 100 68 50000
PC134 1 512 60 68 80000
PC136 2 512 100 68 90000
SQL> update pc set price=price*1.1233;
5 rows updated.
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 44932
PC122 2 256 60 48 47179
PC132 1 128 100 68 56165
PC134 1 512 60 68 89864
PC136 2 512 100 68 101097
SQL> select * from pc;
MODEL_NO SPEED RAM HD CD PRICE
---------- ---------- ---------- ---------- ---------- ----------
PC112 2 256 60 52 44932
PC122 2 256 60 48 47179
PC132 1 128 100 68 56165
PC134 1 512 60 68 89864
PC136 2 512 100 68 101097
b. Display the PC model in lowercase and price rounded to the hu
ndredths for all the PCs.
SQL> select lower(model_no) as model,substr(price,1,3) as price from pc;
MODEL PRI
---------- ---
pc112 449
pc122 471
pc132 561
pc134 898
pc136 101
SQL> select lower(model_no) as model,trunc(price/100) as price from pc;
MODEL PRICE
---------- ----------
pc112 449
pc122 471
pc132 561
pc134 898
pc136 1010

5. List the names in the ascending order of the length of names from WORKER
table.
SQL> select * from worker;
NAME AGE
-------------------- ----------
DICK JONES 33
WILLIAM SWING 30
BART SARJEANT 32
SUMA RANGANATH 21
RICHARD WILLIAMS 29
BHARATH KUMAR 36
JOHN PEARSON 28
JACKSON 34
MEENA KUMARI 29
ADAH TALBOT 27
10 rows selected.
SQL> select name, length(name) as length from worker order by length(name) ;
NAME LENGTH
-------------------- ----------
JACKSON 7
DICK JONES 10
ADAH TALBOT 11
JOHN PEARSON 12
MEENA KUMARI 12
WILLIAM SWING 13
BART SARJEANT 13
BHARATH KUMAR 13
SUMA RANGANATH 14
RICHARD WILLIAMS 16
10 rows selected.
6. List the phone number (eliminate area code like 91-0437) of all employee
s from WORKERSKILL table.
SQL> select * from workerskill;
NAME SKILL CITY PHONE
-------------------- --------------- ---------- ---------------
DICK JONES SMITHY TRICHY 91-0437-77651
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0426-98721
HELEN BRANDT COMBINE DIRVER MADURAI 91-0435-33333
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0453-98765
JOHN PEARSON SMITHY MADURAI 91-0345-34565
VICTORIA LYNN SMITHY SYDNEY 91-0234-98723
ADAH TALBOT WORK THANJAVUR 91-0652-66544
ELBERT LOWELL DISCUS DELHI 91-0433-90875
WILFRED LOWELL WORK SALEM 91-0213-98723
ANAND KUMAR PROGRAM ERODE 91-0441-98123
JACKSON PROGRAM HOSUR 91-0543-90873
11 rows selected.
SQL> select substr(phone,9,5) from workerskill;
SUBST
-----
77651
98721
33333
98765
34565
98723
66544
90875
98723
98123
90873
11 rows selected.
7. Find the location of letter A in the employee name of WORKERSKILL table.
(Hint: use INSTR ( )).
SQL> select * from workerskill;
NAME SKILL CITY PHONE
-------------------- --------------- ---------- ---------------
DICK JONES SMITHY TRICHY 91-0437-77651
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0426-98721
HELEN BRANDT COMBINE DIRVER MADURAI 91-0435-33333
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0453-98765
JOHN PEARSON SMITHY MADURAI 91-0345-34565
VICTORIA LYNN SMITHY SYDNEY 91-0234-98723
ADAH TALBOT WORK THANJAVUR 91-0652-66544
ELBERT LOWELL DISCUS DELHI 91-0433-90875
WILFRED LOWELL WORK SALEM 91-0213-98723
ANAND KUMAR PROGRAM ERODE 91-0441-98123
JACKSON PROGRAM HOSUR 91-0543-90873
11 rows selected.
SQL> select instr(name,'A') from workerskill;
INSTR(NAME,'A')
---------------
0
8
9
8
8
8
1
0
0
1
2
11 rows selected.
8. Use SOUNDEX ( ) function on WORKERSKILL table to find a record of column
city sound like Sidney .

SQL> select * from workerskill;


NAME SKILL CITY PHONE
-------------------- --------------- ---------- ---------------
DICK JONES SMITHY TRICHY 91-0437-77651
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0426-98721
HELEN BRANDT COMBINE DIRVER MADURAI 91-0435-33333
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0453-98765
JOHN PEARSON SMITHY MADURAI 91-0345-34565
VICTORIA LYNN SMITHY SYDNEY 91-0234-98723
ADAH TALBOT WORK THANJAVUR 91-0652-66544
ELBERT LOWELL DISCUS DELHI 91-0433-90875
WILFRED LOWELL WORK SALEM 91-0213-98723
ANAND KUMAR PROGRAM ERODE 91-0441-98123
JACKSON PROGRAM HOSUR 91-0543-90873
11 rows selected.
SQL> select city from workerskill where soundex(city)=soundex('SIDNEY');
CITY
----------
SYDNEY
9. List only the lastname from WORKERSKILL table.

SQL> select * from workerskill;


NAME SKILL CITY PHONE
-------------------- --------------- ---------- ---------------
DICK JONES SMITHY TRICHY 91-0437-77651
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0426-98721
HELEN BRANDT COMBINE DIRVER MADURAI 91-0435-33333
JOHN PEARSON COMBINE DRIVER CHENNAI 91-0453-98765
JOHN PEARSON SMITHY MADURAI 91-0345-34565
VICTORIA LYNN SMITHY SYDNEY 91-0234-98723
ADAH TALBOT WORK THANJAVUR 91-0652-66544
ELBERT LOWELL DISCUS DELHI 91-0433-90875
WILFRED LOWELL WORK SALEM 91-0213-98723
ANAND KUMAR PROGRAM ERODE 91-0441-98123
JACKSON PROGRAM HOSUR 91-0543-90873
11 rows selected.
SQL> select substr(name,instr(name,' ')+1) as name from workerskill;
NAME
--------------------
JONES
PEARSON
BRANDT
PEARSON
PEARSON
LYNN
TALBOT
LOWELL
LOWELL
KUMAR
JACKSON
11 rows selected.
10a. List the employee name from WORKERSKILL table with lastname first and first
name next in single column. (using CONCAT (str1,str2) function).
SQL> select name from workerskill;
NAME
--------------------
DICK JONES
JOHN PEARSON
HELEN BRANDT
JOHN PEARSON
JOHN PEARSON
VICTORIA LYNN
ADAH TALBOT
ELBERT LOWELL
WILFRED LOWELL
ANAND KUMAR
JACKSON
11 rows selected.
SQL> select concat(substr(name,instr(name,' ')+1) ,
2 substr(name,1,instr(name,' '))) as name
3 from workerskill;
NAME
----------------------------------------
JONESDICK
PEARSONJOHN
BRANDTHELEN
PEARSONJOHN
PEARSONJOHN
LYNNVICTORIA
TALBOTADAH
LOWELLELBERT
LOWELLWILFRED
KUMARANAND
JACKSON
11 rows selected.
SQL>
b. List the employee name from WORKERSKILL table with lastname first and fir
stname next in single column. (using || operator).
SQL> select substr(name,instr(name,' ')+1) || substr(name,1,instr(name,' ')) as
name from workerskill;
NAME
----------------------------------------
JONESDICK
PEARSONJOHN
BRANDTHELEN
PEARSONJOHN
PEARSONJOHN
LYNNVICTORIA
TALBOTADAH
LOWELLELBERT
LOWELLWILFRED
KUMARANAND
JACKSON
11 rows selected.

c. List the employee name from WORKERSKILL table with lastname first and fir
stname next in single column. (without using CONCAT () function and || operator)
.
SQL> select lpad(substr(name,1,instr(name,' ')),
2 length(name),substr(name,instr(name,' ')+1,length(name))) as name
3 from workerskill;
NAME
-------------------------------------------------------------------------
JONESDICK
PEARSONJOHN
BRANDTHELEN
PEARSONJOHN
PEARSONJOHN
LYNNVICTORIA
TALBOTADAH
LOWELLELBERT
LOWELLWILFRED
KUMARANAND

11 rows selected.
11a. Alter the table worker skill to add a new column called date-of-joining (date
data type).
SQL> desc worker;
Name Null? Type
----------------------------------------- -------- ---------------------
NAME VARCHAR2(20)
AGE NUMBER(3)
SQL> alter table worker add(doj date);
Table altered.
SQL> desc worker;
Name Null? Type
----------------------------------------- -------- ---------------------
NAME VARCHAR2(20)
AGE NUMBER(3)
DOJ DATE

b. Update the table to include the values for date-of-joining for each
worker.
SQL> select * from worker;
NAME AGE DOJ
-------------------- ---------- ---------
DICK JONES 33
WILLIAM SWING 30
BART SARJEANT 32
SUMA RANGANATH 21
RICHARD WILLIAMS 29
BHARATH KUMAR 36
JOHN PEARSON 28
JACKSON 34
MEENA KUMARI 29
ADAH TALBOT 27
10 rows selected.

SQL> update worker set doj='&doj' where name='&name' and age=&age;


Enter value for doj: 12-MAR-2000
Enter value for name: DICK JONES
Enter value for age: 33
old 1: update worker set doj='&doj' where name='&name' and age=&age
new 1: update worker set doj='12-MAR-2000' where name='DICK JONES' and age=33
1 row updated.
SQL> select * from worker;
NAME AGE DOJ
-------------------- ---------- ---------
DICK JONES 33 12-MAR-00
WILLIAM SWING 30 15-APR-00
BART SARJEANT 32 20-MAY-01
SUMA RANGANATH 21 15-JUN-01
RICHARD WILLIAMS 29 25-JAN-02
BHARATH KUMAR 36 27-MAR-03
JOHN PEARSON 28 27-JAN-03
JACKSON 34 10-FEB-01
MEENA KUMARI 29 01-JAN-01
ADAH TALBOT 27 05-SEP-05
10 rows selected.
c. List the name of each worker along with his experience in number of
years and months.
SQL> select name, trunc((months_between(sysdate,doj)/12),0)||
2 'Years' || trunc(mod(months_between(sysdate,doj),12),0)||
3 'Months' as "Experience" from worker;
NAME
--------------------
Experience
-------------------------------------------------------------------------
DICK JONES
9Years4Months
WILLIAM SWING
9Years3Months
BART SARJEANT
8Years2Months

NAME
--------------------
Experience
-------------------------------------------------------------------------
SUMA RANGANATH
8Years1Months
RICHARD WILLIAMS
7Years6Months
BHARATH KUMAR
6Years4Months

NAME
--------------------
Experience
-------------------------------------------------------------------------
JOHN PEARSON
6Years6Months
JACKSON
8Years5Months
MEENA KUMARI
8Years6Months

NAME
--------------------
Experience
-------------------------------------------------------------------------
ADAH TALBOT
3Years10Months

10 rows selected.
13. Display the current date/time in the following formats:
SQL> select to_char(sysdate,'dd-mon-yyyy') as "DATE" from dual;
DATE
-----------
27-jul-2009
a. Sep-2006
SQL> select to_char(sysdate,'mon-yyyy') as "DATE" from dual;
DATE
--------
jul-2009
b. September 12 2006
SQL> select to_char(sysdate,' month dd yyyy') as "DATE" from dual;
DATE
------------------
july 27 2009
c. 12-09-06 12:11:10
SQL> select to_char(sysdate,'dd-mm-yy hh:mi:ss') as "DATE" from dual;
DATE
-----------------
27-07-09 02:51:50
13. Display the equivalent GMT and EST, for the given date and time.
SQL> select to_char(sysdate,'dd-mon-yyyy') as "DATE",
2 to_char(new_time(sysdate,'EST','GMT'), 'hh:mi:ss') as "TIME" from dual;
DATE TIME
----------- --------
27-jul-2009 07:53:52
DATE TIME
----------- --------
27-jul-2009 07:53:52
SQL> select to_char(sysdate,'dd-mon-yyyy') as "DATE",
2 to_char(new_time(sysdate,'GMT','EST'),'hh:mi:ss') as "TIME" from dual;
DATE TIME
----------- --------
27-jul-2009 09:54:57

14. Give examples for replace, decode and translate functions.

SQL> select name from workerskill;


NAME
--------------------
DICK JONES
JOHN PEARSON
HELEN BRANDT
JOHN PEARSON
JOHN PEARSON
VICTORIA LYNN
ADAH TALBOT
ELBERT LOWELL
WILFRED LOWELL
ANAND KUMAR
JACKSON
11 rows selected.
SQL> select replace(name,'ICK','EAN') as "NAME" from workerskill;
NAME
------------------------------------------------------------
DEAN JONES
JOHN PEARSON
HELEN BRANDT
JOHN PEARSON
JOHN PEARSON
VICTORIA LYNN
ADAH TALBOT
ELBERT LOWELL
WILFRED LOWELL
ANAND KUMAR
JACKSON
11 rows selected.

SQL> select * from product_info;


MAKER MODEL_NO TYPE
---------- ---------- ----------
HCL PC112 PC
HCL LP113 LP
ZENITH PR114 PR
WIPRO PC122 PC
WIPRO LP123 LP
WIPRO PR124 PR
IBM PC134 PC
HCL LP114 LP
IBM PC132 PC
IBM PR134 PR
HCL PC136 PC
11 rows selected.
SQL> select maker,model_no,decode(type,'LP','LAPTOP','PR','PRINTER',
2 'PC','PERSONAL COMPUTER') as "TYPE" from product_info;
MAKER MODEL_NO TYPE
---------- ---------- -----------------
HCL PC112 PERSONAL COMPUTER
HCL LP113 LAPTOP
ZENITH PR114 PRINTER
WIPRO PC122 PERSONAL COMPUTER
WIPRO LP123 LAPTOP
WIPRO PR124 PRINTER
IBM PC134 PERSONAL COMPUTER
HCL LP114 LAPTOP
IBM PC132 PERSONAL COMPUTER
IBM PR134 PRINTER
HCL PC136 PERSONAL COMPUTER
11 rows selected.

SQL> select name from worker;


NAME
--------------------
DICK JONES
WILLIAM SWING
BART SARJEANT
SUMA RANGANATH
RICHARD WILLIAMS
BHARATH KUMAR
JOHN PEARSON
JACKSON
MEENA KUMARI
ADAH TALBOT
10 rows selected.

SQL> select translate(name,'IC','#*') as "NAME" from worker;


NAME
--------------------
D#*K JONES
W#LL#AM SW#NG
BART SARJEANT
SUMA RANGANATH
R#*HARD W#LL#AMS
BHARATH KUMAR
JOHN PEARSON
JA*KSON
MEENA KUMAR#
ADAH TALBOT
10 rows selected.
15. Apply formatting on price column of table PRINTER to display like R
s. 50,000 and $50,000 ( using to_char , format command ).
SQL> select model_no,color,type,to_char(price,'$99,9999') as "PRICE" from printe
r;
MODEL_NO COLOR TYPE PRICE
--------------- --------------- --------------- ---------
PR114 TRUE INK $1,7000
PR124 FALSE DOT $1,2000
PR134 TRUE LASER $1,7000
SQL> select model_no,color,type,'Rs.'||to_char(price,'99,999') as "PRICE" from p
rinter;
MODEL_NO COLOR TYPE PRICE
--------------- --------------- --------------- ----------
PR114 TRUE INK Rs. 17,000
PR124 FALSE DOT Rs. 12,000
PR134 TRUE LASER Rs. 17,000

Vous aimerez peut-être aussi