Untitled

 avatar
unknown
plain_text
a year ago
42 kB
4
Indexable
DATABASE MANAGEMENT SYSTEMS LAB 
	DATABASE MANAGEMENT SYSTEMS
	EXPERIMENT:1
Aim:QueriesforCreating,Dropping,andAlteringTablesandinsertrowintoatable(useconstraintswhile creatingtables)examplesusingSelectCommand.

Procedure:

1.	Creationofemp&depttableinSql:
SQL>createtable dept(
deptnonumber(2,0) primary key,dnamevarchar2(14)NOTNULL,loc varchar2(13)NOTNULL,
);
Tablecreated.

SQL>createtableemp(
empno	number(4,0),
ename			varchar2(10) NOT NULL,job	varchar2(9)NOTNULL,mgr		number(4,0),
hiredatedate,
salnumber(7,2) NOT NULL,commnumber(7,2),
eptnonumber(2,0),
constraintpk_empprimarykey(empno),
constraintfk_deptnoforeignkey(deptno)referencesdept (deptno)
);
Tablecreated.
2.	ViewStructure/schemaofemp&dept tableinsql:SQL>select*from emp;
norowsselected
SQL>select*fromdept;
norowsselected	1
	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	SQL>descemp;
Name	Null?	Type

 
EMPNO	NOTNULL	NUMBER(4)ENAME		VARCHAR2(10)
JOB	VARCHAR2(9)
MGR	NUMBER(4)
HIREDATE	DATE
SAL	NUMBER(7,2)
COMM	NUMBER(7,2)
DEPTNO	NUMBER(2)
SQL>descdept;
Name	Null?	Type

 
DEPTNO	NOT NULL NUMBER(2)DNAME		VARCHAR2(14)
LOC	VARCHAR2(13)

2. Insertthevaluesin emp&depttableinsql:
Thereareseveralwaystoinsertthevalues intheexistingtable
Querytoinsertsinglerecordintheexistingtable:
SQL>insertintodept(deptno,dname,loc)values(20,’admin’,’hyd’);
1rowcreated.
Query to insert multiple records in the existing table:SQL>insertintodeptvalues(&deptno,'&dname','&loc');Entervaluefordeptno:10
Entervaluefor dname:salesEntervalueforloc:vijayawada
old1:insertintodeptvalues(&deptno,'&dname','&loc')new1:insertinto deptvalues(10,'sales','vijayawada')
1rowcreated.	2
		
	NIT	DEPARTMENTOFCSE	
 
DATABASE MANAGEMENT SYSTEMS

SQL>/
Entervaluefordeptno:20	3
Entervaluefordname:adminEntervalueforloc: hyd
old1:insertintodeptvalues(&deptno,'&dname','&loc')1rowcreated.
SQL>/
Enter valuefordeptno:30
Entervaluefordname:marketingEntervalueforloc: vzg
old1:insertintodeptvalues(&deptno,'&dname','&loc')new1:insertintodeptvalues(30,'marketing','vzg')
1rowcreated.

4. Select Command:thiscommandisusedtoprinttherecordfromtheexistingtable.Viewallrecords indepttable:
SQL>select*fromdept;
DEPTNO	DNAME	LOC

10sales	vijayawada
20admin	hyd
30marketing	vzg
Viewrecordsbasingongivencriteriaonspecificcolumn.


1.Viewsinglecolumnfromexistingtable.
SQL>selectdnamefromdept;
DNAME

SalesAdminMarketing




NIT	DEPARTMENTOFCSE
 
	DATABASE MANAGEMENT SYSTEMS
	2.Viewspecificrecord(s)fromexistingtablebasedongivencondition.
SQL>select*fromdeptwheredname='sales';
DEPTNO	DNAME	LOC	4
		
	10sales	vijayawada


Typesof SQLCommands:


DDL:DDLCommands(DataDefinitionLanguage)
1.CREATE	2.DESC	3.ALTER4.DROP	5.TRUNCATE	6.RENAME


DMLCommands(DataManipulationLanguage)
1.SELECT	2.INSERT	3.UPDATE	4.DELETE


TCL(TransactionControlLanguage)
1.COMMIT	2.ROLLBACK	3.SAVEPOINT


DCLCommands(DataControl Language)
1.GRANT	2. REVOKE


1.CREATE:
CREATETABLE:Thisisusedtocreateanewrelationandthecorresponding


Syntax:CREATETABLErelation_name(field_1data_type(Size),field_2data_type(Size),...);
Example:
SQL>CREATETABLEStudent(idnumber,namevarchar2(10));RESULT:Tablecreated.	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	2.	DESC:Itisusedtodescribeaschemaaswellastoretrieverowsfromtableindescendingorder.
SYNTAX:DESC
EX:SQL>DESCEMP1;
NAME	NULL?	TYPE

 	 	 
EMPNO	NOTNULLNUMBER(10)ENAME		VARCHAR2(15)
JOB	CHAR(10)
DEPTNAME	VARCHAR2(10)
DEPTNO	NUMBER(9)
HIREDATE	DATE
SALARY	NUMBER(8)
EXP	NUMBER(5)


3.	ALTER:Thisisusedforadd,removeormodify thestructureoftheexisting table
(a)	ALTERTABLE...ADD...:Thisisusedtoaddsomeextrafieldsintoexistingrelation.
Syntax:ALTERTABLErelation_nameADD(newfield_1data_type(size),newfield_2data_type(size),..);

Example:SQL>ALTERTABLEemp1ADD(AddressCHAR(10));TABLEALTERED.

(b)	ALTERTABLE...MODIFY...:Thisisusedto changethewidthaswellasdatatypeoffieldsofexistingrelations.
Syntax:ALTERTABLErelation_nameMODIFY(field_1newdata_type(Size),field_2newdata_type(Size),...,field_newdata_type(Size));

Example:
SQL>ALTERTABLEemp1MODIFY(enameVARCHAR2(20),salaryNUMBER(5));
TABLEALTERED.	5
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	SQL>DESCEMP1;

NAME	NULL?	TYPE

 	 
EMPNO	NOTNULL	NUMBER(10)
ENAME	VARCHAR2(20)
JOB	CHAR(10)
DEPTNAME	VARCHAR2(10)
DEPTNO	NUMBER(9)
HIREDATE	DATE
SALARY	NUMBER(5)
EXP	NUMBER(5)
ADDRESS	CHAR(10)

4.	DROPTABLE:Thisisusedtodeletethestructureofarelation.Itpermanentlydeletes thetable.
Syntax:DROPTABLEtablename;
Example:
SQL>DROPTABLEEMP1;
Tabledropped;
DROP:thiscommandisused toremovethedatefromtheexistingtableDROPCOLUMNINTABLE
Syntax:
ToDROPACOLUMNin an existingtable,theOracleALTERTABLEsyntaxis:ALTERTABLEtable_nameDROPCOLUMNcolumn_name;
ExamplecustomersDROPCOLUMNcustomer_name;
SQL>ALTERTABLEcustomersDROPCOLUMNcustomer_name;


5.	RENAME:Itisusedtomodifythe nameoftheexisting database object.
Syntax:RENAMEold_table_nameTOnew_table_name;
Example:
SQL>RENAMEEMP1TOEMP2;
Tablerenamed.	6
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	6.TRUNCATE:Thiscommandwillremovethedatapermanently.Butstructurewillnotberemoved.
Syntax:	TRUNCATETABLE<Tablename>
Example:
TRUNCATETABLEEMP1;	7
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	EXPERIMENT:2
QUERIES(ALONGWITH SUBQUERIES) USINGANY,ALL,IN,EXISTS,NOTEXISTS,UNION,INTERSECT
SOLUTION:
ToCreateemployeetable:
Sql> create table employee(Fname varchar2(20),Lnamevarchar2(20),
Ssnnumber(4)primarykey,B_datedate,
Address varchar2(30),Genderchar(1),Salarynumber(7,2),
Super_ssnreferencesemployee(ssn),Dnonumber(4)
);
Tablecreated.


SQL>INSERTINTOEMPLOYEE
VALUES('SMITH',NULL,1111,'03-NOV-2016','BJD','M',2000,NULL,10)
1rowcreated.
SQL>INSERTINTOEMPLOYEE
VALUES('ALLEN',NULL,2222,'03-NOV-2016','SBC','M',3000,1111,20)
1rowcreated.
SQL>INSERTINTOEMPLOYEE
VALUES('MARTIN',NULL,3333,'03-NOV-2016','HYD','M',4000,1111,30)
1rowcreated.


Likethiswecaninsertthevalues intothetable.Toviewdatainthetablefollowing queryisused.	8
	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	
SQL>SELECT*FROMEMPLOYEE;

FNAME	LNAME	SSNBDATE	ADDRESS	G	SALARYSUPER_SSN	DNO	9
		
	SMITH	111101-JAN-06	BZA	M	2000	10
ALLEN	2222  12-DEC-04  SBC	M	3000	1111	20
MARTIN	3333  15-DEC-07	HYD	M	4000	1111	20
JONES	444428-SEP-05	TNU	M	1500	2222	10
BLAKE	555504-SEP-04	VZA	M	2500	2222	10
TURNER	666621-OCT-99	GNT	M	6000	3333	20
6rowsselected.
Insertingvalues inthedependenttableas follows
SQL>INSERTINTODEPENDENTVALUES(1111,'SMITH',’G’)
1 rowiscreated.
SQL>INSERTINTODEPENDENTVALUES(2222,'POOJA',’F’)
1 rowiscreated.
SQL>INSERTINTODEPENDENTVALUES(3333,'MARTIN',’M’)
1 rowiscreated.
SQL>INSERTINTODEPENDENTVALUES (3333,'RAJA',’M’)
1 rowiscreated.

ToCreatedependenttable:
SQL>CREATETABLEDEPENDENT(
ESSN NUMBER (4) REFERENCES EMPLOYEE (SSN),DEPENDENT_NAMEVARCHAR2(20),
GENDERCHAR(1),B_DATEDATE,
RELATIONSHIPVARCHAR2(20),
PRIMARYKEY(ESSN,DEPENDENT_NAME)
);
Tablecreated.	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	Toviewdatainthedependenttableasfollows.
SQL>SELECT*FROMDEPENDENT;
ESSNDEPENDENT_NAMEG	B_DATE	RELATIONSHIP

 	 	 

1111	SMITH	M
2222	POOJA	F
3333	MARTIN	M
3333	RAJA	M


1.ALL:
Retrievethenamesofemployeeswhosesalaryisgreaterthanthe salaryofalltheemployeesindepartment10
SQL> SELECT FNAME, LNAME FROM EMPLOYEE WHERE SALARY> ALL ( SELECTSALARYFROM EMPLOYEEWHEREDNO=10);
FNAME	LNAME	10
		
	
ALLENMARTINTURNER

2.ANY
Retrieve thenames ofemployees whosesalaryis greaterthanthe salaryofanyone oftheemployeesindepartment10
SQL>SELECTFNAME,LNAMEFROMEMPLOYEE
WHERESALARY>ANY(SELECTSALARYFROMEMPLOYEEWHERE DNO=10);

FNAME	LNAME	
	
TURNERMARTINALLENBLAKE
SMITH		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	3.IN
Retrievethenameofeachemployeewhohasadependentwiththefirstnameandsamegenderastheemployee

SQL>SELECTe.FNAME,e.LNAMEFROMEMPLOYEEeWHEREe.SSN IN(SELECTESSN FROM DEPENDENT WHERE e.GENDER=GENDER AND e.FNAME =DEPENDENT_NAME);

FNAME	LNAME	11
		
	
SMITHMARTIN

4.	EXISTS
Retrievethenameofeachemployeewhohasadependentwiththefirstnameandsamegenderastheemployee

SQL>SELECTe.FNAME,e.LNAMEFROMEMPLOYEEeWHEREEXISTS(SELECT
*FROM DEPENDENT WHERE e.SSN=ESSN AND e.GENDER=GENDER ANDe.FNAME =DEPENDENT_NAME);

FNAME	LNAME

 
SMITHMARTIN

5.	NOTEXISTS
Retrievethenamesofemployeeswhohavenodependents
SQL>SELECTFNAME, LNAMEFROMEMPLOYEEWHERENOTEXISTS(SELECT*FROMDEPENDENTWHERE SSN=ESSN);
FNAME	LNAMEALLEN	
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	SQLConstraints
SQLconstraintsareused tospecifyrulesforthe datainatable.
Constraints are used to limit the type of data that can be insert into a table. This ensures the accuracyand reliability of the datain the table.If thereis any violation between the constraintand the dataaction,theactionis aborted.
Constraints can be column level or table level. Column level constraints apply to a column, and tablelevelconstraints applytothewholetable.
ThefollowingconstraintsarecommonlyusedinSQL:
•	NOTNULL-EnsuresthatacolumncannothaveaNULLvalue
Example:
SQL>createtableperson1(idint,name varchar2(10)notnull,age int);Tablecreated.
•	UNIQUE-Ensuresthatallvalues inacolumnaredifferent
Example:
SQL>createtableperson(idintunique,namevarchar2(10),ageint);
Tablecreated.
•	PRIMARYKEY-Acombination ofaNOTNULLandUNIQUE. Uniquelyidentifieseachrowinatable
Example:
SQL>createtableemp1(idnumber(10)primarykey,namevarchar2(10),salint);Tablecreated.
•	FOREIGNKEY-Uniquelyidentifiesarow/recordinanothertable
o	AFOREIGNKEYisakeyusedtolinktwotablestogether.
o	AFOREIGNKEYisafield(orcollectionoffields)inonetablethatreferstothePRIMARYKEYinanothertable.
o	Thetablecontainingtheforeignkeyiscalledthechildtable,andthetablecontaining thecandidatekeyiscalledthereferencedorparenttable.
Example:
SQL>createtableemp2(eidint,cityvarchar2(10),foreignkey(eid)referencesemp1(id));
Tablecreated.	12
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	•	CHECK-Ensuresthatallvaluesinacolumnsatisfiesaspecificcondition
Example:
SQL>CREATETABLEperson1(IDint,Ageint,Cityvarchar(10),CONSTRAINTchkCHECK(Age>=18ANDCity='vja');
Tablecreated.
•	DEFAULT-Setsadefaultvalueforacolumnwhennovalueisspecified.
o	TheDEFAULTconstraintisusedtoprovideadefaultvalueforacolumn.
o	ThedefaultvaluewillbeaddedtoallnewrecordsIFnoother valueisspecified.
SQLDEFAULTonCREATETABLE
SQL>createtableemp(idnumber(10),namevarchar2(10),cityvarchar2(10)default'vja');Tablecreated.	13
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	EXPERIMENT:3
QUERIESUSINGAGGREGATEFUNCTIONS(COUNT,SUM,AVG,MAXANDMIN)	14
	
	GROUPBY,HAVINGand Creationanddropping ofViews.	
	SOLUTION:	
	1.COUNT:Calculatethenumberofemployeesindept20.	
	SQL>SELECTCOUNT(*)NO_EMPFROMEMPWHERE DEPTNO=20;	
	NO_EMP	
	 
5	
	2.SUM:Calculatethe totalsalariesforeach dept	
	SQL>SELECTDEPTNO,SUM(SAL)FROMEMPGROUPBYDEPTNO	
	DEPTNOSUM(SAL)	
	30	9400	
	20	10875	
	10	8750	
	
3.AVG:Calculatetheaveragesalariesforeachdept	
	SQL>SELECTDEPT_NO,AVG(SAL)FROMEMPGROUPBYDEPT_NO;	
	DEPT_NOAVG(SAL)	
	----------	----------	
	30	1566.66667	
	20	2175	
	10	2916.66667	
	4.MAX:Calculatethemaximumsalaryforeachdept	
	SQL>SELECTDEPTNO,MAX(SAL)FROMEMPGROUPBYDEPTNO;	
	DEPTNOMAX(SAL)	
	 	 
30	2850	
	20	3000	
	10	5000	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	5.	MIN
Calculatetheminimumsalaryforeachdept
SQL>SELECTDEPTNO, MIN(SAL)FROMEMPGROUPBYDEPTNO
DEPTNOMIN(SAL)

 	 
30	950
20	800
10	1300

6.	GROUPBY:
TheGROUPBYclauseisaSQLcommandthatisusedtogrouprowsthathavethesamevalues.The GROUPBY clauseis usedin the SELECT statement.Optionallyitis usedin conjunction withaggregatefunctions toproducesummaryreportsfromthedatabase.
GROUPBY Syntax
SELECTstatements…GROUPBYcolumn_name1[column_name2,…];
GroupingusingaSingleColumn:
Createatablecalleddatawithgendercolumnand valuesasmaleandfemale.
SQL>select* fromdata;
GENDER

 
malefemalefemalefemalefemalefemalemalemalemalefemalemalemalefemalemalemalefemale

16rowsselected.	15
		
	NIT	DEPARTMENTOFCSE	
 
DATABASE MANAGEMENT SYSTEMS

SQL>selectgenderfromdataGROUPBYgender;
16
GENDER

malefemale

SQL>selectcount (gender),genderfrom dataGROUPBYgender;
COUNT(GENDER)GENDER

8	male
8	female

GroupingusingMultipleColumnsSyntax
SELECTColumn1, Column2,AGGREGATE_FUNCTION(Column3)FROMTABLE1GROUPBY
Column1,Column2
Examples:
SQL>select *fromemp;
IDNAME	DEPT	SAL
 
--------------------
 
----------
 
----------
 

1	a	cse	1000
2	b	ece	2000
3	c	eee	3000
4	d	cse	4000
1	z	cse	5000
5	a	ece	6000
6	e	ece	7000
2	b	eee	9000
8rowsselected.
SQL> select id, name from emp GROUP BY id, name;IDNAME
3	c
4	d
1	a
2	b
5	a
1	z
6	e
7rowsselected.
NIT	DEPARTMENTOFCSE
 
	DATABASE MANAGEMENT SYSTEMS

7.HAVING
•	TheHAVINGclausewasaddedtoSQLbecausetheWHEREkeywordcouldnotbeusedwith	17
	aggregatefunctions.
•	TheWHERE clauseplacesconditionsontheselectedcolumns,whereastheHAVINGclauseplacesconditions ongroups createdbytheGROUPBYclause.
•	TheHAVINGclausemustfollowtheGROUPBYclauseinaqueryandmustalsoprecedetheORDERBYclauseifused
HAVINGSyntax
SELECTcolumn_name(s)FROMtable_nameWHEREconditionGROUPBYcolumn_name(s)
HAVINGcondition


SQL>select *fromemp;


ID	NAMEDEPT	SAL
	1	a	cse	1000
2	b	ece	2000
3	c	eee	3000
4	d	cse	4000
5	e	ece	5000

SQL>selectcount(id),deptfromempGROUPBYdepthavingcount(id)>1;COUNT(ID)DEPT
-------------------------
2	cse
2	ece

SQL>select *fromemp;
IDNAME	DEPT	SAL
--------------------	----------	----------
1	a	cse	1000
2	b	ece	2000
3	c	eee	3000
4	d	cse	4000
5	e	ece	5000	
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	SQL>selectmax(sal),dept fromempGROUPBYdept;
MAX(SAL)DEPT
----------	----------
4000	cse
3000	eee
5000	ece
SQL>selectmax(sal),deptfromempGROUPBYdepthavingmax(sal)>3000;MAX(SAL)DEPT
----------	----------
4000	cse
5000	ece

8.	View:
o	ViewsinSQLareconsideredasavirtualtable.Aviewalsocontainsrowsandcolumns.
o	Tocreatetheview,wecanselectthefieldsfromoneormoretablespresentinthedatabase.
o	Aviewcaneitherhavespecificrowsbasedoncertainconditionoralltherowsof atable.


SQL>select*fromemp;


ENOENAME	SALARYLOC

 	 

101	ali	15000vja
102	haji	`	20000hyd
103	mohammad	42000vja
104	ravi	23000gnt
105	irfath	50000hyd
SQL>createVIEWhydasselect*fromempwhereloc='hyd';
Viewcreated.


SQL>select*fromhyd;
ENOENAME	SALARYLOC	18
		
	102	haji
105	irfath	20000	hyd
50000	hyd	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	SQL>dropVIEWhyd;
Viewdropped.


SQL>select*fromhyd;
select*fromhyd
*ERRORatline1:
ORA-00942:tableor viewdoesnot exist	19
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	EXPERIMENT:4
20
QUERIESUSINGCONVERSIONFUNCTIONS(TO_CHAR,TO_NUMBERANDTO_DATE),STRING FUNCTIONS (CONCATENATION, LPAD, RPAD, LTRIM, RTRIM, LOWER, UPPER,INITCAP,LENGTH,SUBSTRANDINSTR),DATEFUNCTIONS(SYSDATE,NEXT_DAY,ADD_MONTHS,LAST_DAY,MONTHS_BETWEEN,LEAST,
GREATEST,TRUNC,ROUND,TO_CHAR)

SQL>select*fromemp;
ENOENAME	SALARYLOC
	101	ali	15000	vja
102	haji	20000	hyd
103	mohammad	42000	vja
104	ravi	23000	gnt
105	irfath	50000	hyd

a)ConversionFunctions:
1.to_char:to_charisusedtoconverttheattributevaluestochar.
SQL>selectto_char(salary,'$99999.99')fromemp;

TO_CHAR(SALARY)

 
$15000.00
$20000.00
$42000.00
$23000.00
$50000.00
SQL>SELECTTO_CHAR(123.4567, '99999.9')FROMDUAL;TO_CHAR(
	123.5
SQL>SELECTTO_CHAR(123.4567,'99999.99')FROMDUAL;TO_CHAR(1
	123.46

SQL>SELECTTO_CHAR(1234.56789,'9,999.00')FROMDUAL;	
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS
TO_CHAR(1	21

 
1,234.57	
SQL>SELECTTO_CHAR(SYSDATE,'YYYY/MM/DD') FROMDUAL;	
TO_CHAR(SY	

 
2021/07/09	
SQL>SELECTTO_CHAR(SYSDATE,'DD/MM/YYYY')FROMDUAL;	
TO_CHAR(SY	

 
09/07/2021	
SQL>SELECTTO_CHAR(23,'000099') FROMDUAL;	
TO_CHAR	

 
000023	
SQL>SELECTTO_CHAR(23,'0000999')FROMDUAL;	
TO_CHAR(	

 
0000023	
SQL>SELECTTO_CHAR(23,'00009')FROMDUAL;	
TO_CHA	

 
00023	
SQL>SELECTTO_CHAR(23,'00000') FROMDUAL;	
TO_CHA	

 
00023	
SQL>SELECTTO_CHAR(234.5678,'00.00') FROMDUAL;	
TO_CHA	

 
######	
NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	SQL>SELECTTO_CHAR(234.5678,'000.000')FROMDUAL;

TO_CHAR(	22
		
	234.568

SQL>SELECTTO_CHAR(2345.234566,'1,23.000')FROMDUAL;SELECTTO_CHAR(2345.234566,'1,23.000')FROMDUAL
*ERRORatline1:
ORA-01481:invalidnumberformatmodel
SQL>SELECTTO_CHAR(2345.2345,'9,000.00')FROMDUAL;TO_CHAR(2	
	2,345.23
SQL>SELECTTO_CHAR(2345.2345,'$9,000.00')FROMDUAL;TO_CHAR(23	
	$2,345.23


2.	to_number:to_numberisusedtoconverttheattributevaluetonumber.
SQL>SELECTTO_NUMBER('1210.73', '9999.99')FROMDUAL;
TO_NUMBER('1210.73','9999.99')1210.73
3.	to_date:to_dateisusedforconvertanddisplaytheattributevaluesasdate.SQL>selectto_date('01-01-2020','MM-DD-YYYY')fromdual;
TO_DATE('	
	01-JAN-20	
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS


b)Stringfunctions:
1.	Concatenation:CONCATisusedtoaddtwo attributevaluessuchasstring.
SQL>select concat(eno,loc)fromemp;
CONCAT(ENO,LOC)

 
101vja102hyd103vja104gnt105hyd

2.	lpad:LPAD()functionisusedtopaddingtheleftsideofastringwithaspecificsetofcharacters.
SQL>selectlpad(ename,10,'*')fromemp;

LPAD(ENAME,10,'*')

 
*******ali
******haji
**mohammad
******ravi
****irfath

3.	rpad:RPAD()functionisusedtopaddingtherightsideofastringwithaspecificsetofcharacters.
SQL>selectrpad(ename,10,'*')fromemp;

RPAD(ENAME,10,'*')

 
ali*******haji******mohammad**ravi******irfath****




4.	ltrim:LTRIM()functionisusedtoremoveallspecifiedcharactersfromtheleftendsideofastring
NIT	DEPARTMENTOFCSE	23
	
 
DATABASE MANAGEMENT SYSTEMS
SQL>selectltrim('******hi********','*')fromdual;
LTRIM('***hi********
5.	rtrim:RTRIM()functionisusedtoremoveallspecifiedcharactersfromtheleftendsideofastring
SQL>select rtrim('******hi********','*')fromdual;
RTRIM('*

 
******hi
6.	lower:lower()functionisusedtoconverttheattributevalueintolowercase.
SQL>selectlower(ename)fromemp;

LOWER(ENAM

 
alihaji
mohammadravi
irfath

7.	upper:upper()functionisusedtoconverttheattributevaluesintouppercase.
SQL>selectupper(ename)fromemp;
UPPER(ENAMALI
HAJI
MOHAMMADRAVI
IRFATH






8.	initcap:initcap() isusedtoconverttheattributevaluesfirstcharacterincapitalletter.
SQL>select initcap(ename) fromemp;	24
	
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS

INITCAP(EN

 
AliHaji
MohammadRavi
Irfath


9.	length:length() functionisused tocalculatethelengthofthegivenattribute.
SQL>selectename,length(ename)fromemp;
ENAME	LENGTH(ENAME)
ali	3
haji	4
mohammad	8
ravi	4
irfath	6

10.	substr:substr()functionisusedtofindthesubstringofthegivenattributevalue.Itretunssize-1ofthe givenstring/attributeasasubstring.
SQL>selectename,substr(ename,4)fromemp;

ENAME	SUBSTR(ENAME,4)

 
ali
haji	i
mohammad	ammadravi		i
irfath	ath







11.	instr:instr()functionreturnthe locationofstartingpassionofthesubstringintheexistingvalue.

	SQL>selectinstr('welcometoCRRCOE','to') fromdual;		25
	
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS

INSTR('WELCOMETO CRRCOE','TO')9
c)Datefunctions:

1.	Sysdate():sysdate() functionreturnsthecurrent systemdate.
SQL>selectsysdatefromdual;

SYSDATE28-APR-21
2.	next_day();itreurnsthedateofnextcoming day.
SQL>selectnext_day(sysdate,'sunday')fromdual;

NEXT_DAY(02-MAY-21
3.	add_months():itreturnsthenextdateafteraddingnumberofmonthsintheorguments.
SQL>selectadd_months(sysdate,5)fromdual;

ADD_MONTH28-SEP-21
4.	last_day():TheLAST_DAY()functiontakesadatevalueasargumentandreturnsthelastdayofmonthinthatdate
SQL>selectlast_day(sysdate) fromdual;
LAST_DAY(30-APR-21
SQL>select last_day('02-FEB-2020')fromdual;
LAST_DAY(	26
	
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS
29-FEB-20

5.	months_between():itreturnsthenumbersofmonthsbetweengiventwodates.
SQL>selectmonths_between('02-feb-2021','02-feb-2020')fromdual;


MONTHS_BETWEEN('02-FEB-2021','02-FEB-2020')12
SQL>selectmonths_between(sysdate,'02-feb-2020')fromdual;


MONTHS_BETWEEN(SYSDATE,'02-FEB-2020')

 
14.8600769

6.	least():itretuns leastvaluefromthegivenargumentorattributes.
SQL>selectleast(300,450,100,440)fromdual;

LEAST(300,450,100,440)100
7.	greatest():itreturnsmaximumvaluesfromthegivenargumentsorattributesintherelation.
SQL>selectgreatest(300,450,100,440)fromdual;
GREATEST(300,450,100,440)450
8.	trunc():TheTRUNC()functionreturnsaDATEvaluetruncatedtoaspecifiedunit.
SQL>selecttrunc(sysdate,'mm')fromdual;

TRUNC(SYS01-APR-21
SQL>selecttrunc(sysdate,'yyyy')fromdual;
TRUNC(SYS	27
	
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS
01-JAN-21

9.	round():Roundfunctionroundanumbertoaspecifiedlengthorprecision.
SQL>selectround(12.49,0)fromdual;

ROUND(12.49,0)12
SQL>selectround(12.51,0)fromdual;

ROUND(12.51,0)13
10.	to_char():itconvertthegivendatetypeattributevaluestotextandreturnthedateinthespecificformat.
SQL>selectto_char(sysdate,'yyyy-mm-dd')fromdual;

TO_CHAR(SY2021-04-28














EXPERIMENT:5	28
	
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS

i.	CreateasimplePL/SQLprogramwhichincludesdeclarationsection,executablesectionandexception–Handlingsection(Ex.Studentmarkscanbeselectedfromthetableandprintedforthose	29
whosecuredfirstclassandanexceptioncanberaisedifnorecordswerefound).
ii.	Insert data into student table and use COMMIT, ROLLBACK and SAVEPOINT in PL/SQL block..i).Wehavetocreate the studenttable andinserttherecords intothetableasfollows:
SQL>createtablestudent(sidnumber(10),snamevarchar2(20),rankvarchar(10));
Tablecreated.


SQL>insertintostudentvalues(501,'Ravi','second');
1rowcreated.


SQL>insertintostudentvalues(502,'Raju','third');
1rowcreated.


SQL>insertintostudentvalues(503,'Ramu','');
1rowcreated.


SQL>select*fromstudent;

SIDSNAME	RANK

501Ravi	second
502Raju	third
503Ramu









PL/SQLCODE:
NIT	DEPARTMENTOFCSE
 
DATABASE MANAGEMENT SYSTEMS
SQL>ed 5a
Enterthefollowingcodeintothetexteditorandsavethefilewith.sqlformat	30

setserveroutputon;declare
temp1 number(10);temp2varchar2(10);

begin
select sid,sname into temp1,temp2 from student where rank='first';dbms_output.put_line('StudentNo:'||temp1||'Name:'||temp2||'gotfirstrank');
exception
when no_data_found thendbms_output.put_line('********************************************');dbms_output.put_line('# Error: there is no student got first rank');end;
/

SQL>@5a;
********************************************# Error:thereisnostudentgotfirstrank

PL/SQLproceduresuccessfullycompleted.

SQL>updatestudentsetrank='first'wheresid=503;1rowupdated.

SQL>select*fromstudent;

SIDSNAME	RANK

 
501Ravi	second
502Raju	third
503Ramu	first

SQL>@5a
StudentNo:503Name:RamugotfirstrankPL/SQLproceduresuccessfullycompleted.



ii)
SQL>select*fromstudent;
 
NIT	DEPARTMENTOFCSE

 
	DATABASE MANAGEMENT SYSTEMS
	SIDSNAME	RANK	31
	501Ravi	second
502Raju	third
503Ramu	first

PL/SQLCODE:

SQL>ed 5b

Enterthefollowing codeintothetexteditorandsavethefilewith.sqlformatsetserveroutputon;
DECLARE
snostudent.sid%type;namestudent.sname%type;srankstudent.rank%type;

BEGIN
sno:= &sno;name := '&name';srank:='&srank';
INSERT into student values(sno,name,srank);dbms_output.put_line('One record inserted');COMMIT;
-- adding savepointSAVEPOINTs1;
--secondtimeaskinguserforinputsno:=&sno;
name := '&name';srank:='&srank';
INSERT into student values(sno,name,srank);dbms_output.put_line('One record inserted');ROLLBACKTOSAVEPOINTs1;
END;
/




SQL>@5b;	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	SQL>@5b
Enter value for sno: 504old  7:	sno:=&sno;
new7:	sno:=504;
Entervalueforname:ali
old  8:	name:='&name';new8:		name := 'ali';Entervalueforsrank:firstold  9:	srank:='&srank';new9:		srank := 'first';	32
		
	Enter valuefor sno:505old16:	sno := &sno;new16:		sno:=505;
Entervalue forname:haji
old17:	name:='&name';new17:		name := 'haji';Entervalueforsrank:thirdold18:	srank := '&srank';new18:		srank := 'third';Onerecordinserted
Onerecordinserted	
	PL/SQLproceduresuccessfullycompleted.	
	SQL>select*fromstudent;	
	SIDSNAME	RANK	
	501Ravi	second
502Raju	third
503Ramu	first
504 ali	first		
		



EXPERIMENT:6	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	Developaprogram thatincludesthefeaturesNESTEDIF,CASEandCASEexpression.Theprogram
canbeextendedusing theNULLIFandCOALESCEfunctions.
A.NESTEDIF:
Anestedif-thenisanifstatementthatisthetargetofanotherifstatement.Nestedif-thenstatementsmeananifstatementinsideanotherifstatement
Syntax:-
if(condition1)then
--Executeswhencondition1istrueif(condition2)then
--Executeswhencondition2istrueendif;
endif;


PL/SQLCODE:PL/SQLProgramtofindbiggestofthreenumberusingnestedif.SQL>ed6a
Enterthefollowing codeintothetexteditorandsavethefilewith.sqlformat

declare
a number:=10;b number:=12;cnumber:=5;
begin
dbms_output.put_line('a='||a||'b='||b||'c='||c);ifa>bANDa>cthen
dbms_output.put_line('aisgreatest');
else
ifb>aANDb>cthen
dbms_output.put_line('bisgreatest');
else
dbms_output.put_line('cisgreatest');
end if;
end if;
end;
/




SQL>@6a	33
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	a=10b=12c=5
bisgreatest
PL/SQLproceduresuccessfullycompleted.


B.CASEandCASEExpression:CASEstatementselectsonesequenceofstatementstoexecute.However,toselectthesequence,theCASEstatementusesaselectorratherthanmultipleBooleanexpressions. A selector is an expression, the value of which is used to select one of several alternatives.Syntax
CASEselector
WHEN 'value1' THEN S1;WHEN 'value2' THEN S2;WHEN'value3'THENS3;
...
ELSESn;--defaultcaseEND CASE;
SQL>createtableemp(enonumber(5),enamevarchar2(10),locvarchar(10),salarynumber(10,2));
Tablecreated.
SQL>insertintoempvalues(101,'ali','vja',15000);1rowcreated.
SQL>insertintoempvalues(102,'ravi','hyd',25000);1rowcreated.
SQL>insertintoempvalues(103,'raju','gnt',35000););1rowcreated.
SQL>insertintoempvalues(104,'rakesh','vja',45000);1rowcreated.
SQL>select*fromemp;
ENOENAME	LOC	SALARY
101	ali	vja	15000
102	ravi	hyd	25000
103	raju	gnt	35000
104	rakeshvja	45000

ExampleofCASEExpression:	34
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	SQL>selectloc, case(loc)when'vja'thensalary+2000when'hyd'thensalary+1000elsesalary
end"rev_salary"fromemp;LOC	rev_salary	35
		
	vja	17000
hyd	26000
gnt	35000
vja	47000

PL/SQL CODE:PL/SQL CODE to demonstrate CASESQL>ed6b
setserveroutputon;declare
grade char(1);begingrade:='&grade';case
whengrade='a'then
dbms_output.put_line('Excellent');whengrade='b'then
dbms_output.put_line('verygood');whengrade='c'then
dbms_output.put_line('good');whengrade='d'then
dbms_output.put_line('fair');whengrade='f'then
dbms_output.put_line('poor');
else
dbms_output.put_line('Nosuchgrade');
endcase;end;
/

SQL>@6b
Enter value for grade: cold4:grade:='&grade';
new4:grade:='c';good

PL/SQLproceduresuccessfullycompleted.SQL> @6b
Enter value for grade: gold4:grade:='&grade';	
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	new4:grade:='g';
No suchgrade

PL/SQLproceduresuccessfullycompleted.


C.NULLIF:Takestwoarguments.Ifthetwoargumentsareequal,thenNULLisreturned.otherwisethe firstargumentisreturned.
Syntax:selectcolumn_name,NULLIF(argument1,arguement2)fromtable_name;
Example:
SQL>selectename,nullif('ali','ali1')fromemp;
ENAME	NUL	36
		
	ali	ali
ravi	ali
raju	ali
rakesh	ali

SQL>selectename,nullif('ali','ali')fromemp;
ENAME	NUL	
	aliravirajurakesh

D.COALESCE:COALESCE()functionacceptsalistofargumentsandreturnsthefirstonethatevaluatestoa non-nullvalue.
Syntax:coalesce("expression1","expression2",...);
Example:
SQL>selectcoalesce(NULL,'CRRCOE','IT')fromdual;
COALECRRCOE
EXPERIMENT:7	
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	ProgramdevelopmentusingWHILELOOPS,numericFORLOOPS,nestedloopsusingERROR
Handling,BUILT–INExceptions,USEdefinedExceptions,RAISEAPPLICATIONERROR.


A.	WHILELOOP:AWHILELOOPstatementinPL/SQLprogramminglanguagerepeatedlyexecutesatargetstatementas longas agivenconditionis true.
Syntax:
WHILE condition LOOPsequence_of_statements
ENDLOOP;
PL/SQL Code: A PL/SQL Program to find sum of ODD number upto given number using While loopSQL>ed7a

setserveroutputon;declare
inval number;endvalnumber;
snumber default0;
begin
inval:=1;endval:=&endval;
whileinval<endvalloops:=s+inval;inval:=inval+2;
endloop;
dbms_output.put_line('sumofodd numbersbetween1 and'||endval||' is'||s);end;
/

SQL>@7a
Entervalueforendval:100old  7:	endval:=&endval;
new7:	endval:=100;
sumofoddnumbersbetween1 and100is2500PL/SQLproceduresuccessfullycompleted.
B.	FORLoop:AFORLOOPisarepetitioncontrolstructure thatallowsustoefficientlywritealoop	37
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	thatneedstoexecuteaspecificnumberoftimes.
Syntax
FORcounterINinitial_value..final_valueLOOPsequence_of_statements;
END LOOP;
PL/SQLCODE:APL/SQLcodetoprintmultiplicationtableusingforloop
SQL>ed 7b

set serveroutput on;DECLARE
VAR1 NUMBER;VAR2NUMBER;
BEGIN
dbms_output.put_line('Enternumbertoprintmultiplicationtable');VAR1:=&VAR1;
FORVAR2IN1..10LOOPDBMS_OUTPUT.PUT_LINE(VAR1||'X'||VAR2||'='||VAR1*VAR2);
END LOOP;END;
/
SQL>@7b
Entervalueforvar1:2old6:VAR1:=&VAR1;
new6:VAR1:=2;
Enternumertoprintmultiplicationtable2X1=2
2X2=4
2X3=6
2X4=8
2X5=10
2X6=12
2X7=14
2X8=16
2X9=18
2X10=20

PL/SQLproceduresuccessfullycompleted.	38
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	C.NESTEDLOOP:PL/SQLallowsusingoneloopinsideanotherloop.Itmaybeeither
basic,whileorforloop.
Syntax:
WHILE condition1 LOOPsequence_of_statements1
WHILE condition2 LOOPsequence_of_statements2
END LOOP;END LOOP;
PL/SQLCODE:APL/SQLprogramtoprintnprimenumberusingnestedloop.SQL>ed7c
DECLARE
i number(3);jnumber(3);
BEGINi:=2;LOOP
j:= 2;LOOP
exitWHEN ((mod(i,j)=0)or (j =i));j:=j+1;
ENDLOOP;IF(j=i)THEN
dbms_output.put_line(i||'isprime');ENDIF;
i:=i+1;
exitWHENi=50;ENDLOOP;
END;
/
SQL>@7c	39
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	2	isprime
3	isprime
5isprime
7isprime
11isprime
13isprime
17isprime
19isprime
23isprime
29isprime
31isprime
37isprime
41isprime
43isprime
47isprime


PL/SQLproceduresuccessfullycompleted.




















EXPERIMENT:8	40
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	Programs	development	using	creation  of  procedures,  passing	parameters  IN  and	OUT  of
PROCEDURES.
SQL>createtableenquiry(enqno1number(3),fnamevarchar2(30));
Tablecreated.
SQL>insertintoenquiryvalues(111,'sai');
1rowcreated.
SQL>insertintoenquiryvalues(112,'sindhu');
1rowcreated.


PL/SQLCODEtocreateprocedure
SQL>edfindname

createprocedurefindname(enquiryno1INnumber,fname1OUTvarchar2)isfname2varchar2(30);
begin
selectfnameinto fname2fromenquirywhereenqno1=enquiryno1;fname1:=fname2;
exceptionwhenno_data_found then
raise_application_error(-20100,'Thegivennumberisnotpresent');end;
/

SQL>@findnameProcedurecreated.











PL/SQLCode forcallingprocedureinprogram	41
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	SQL>ed pro8

setserveroutputon;declare
enqno2 number(5);fname2 varchar2(30);beginenqno2:=&enqno2;
findname(enqno2,fname2);
dbms_output.put_line('Personnameofequiryid'||enqno2||'is'||fname2);end;
/

SQL>@pro8
Entervalueforenqno2:114old5:enqno2:=&enqno2;
new5:enqno2:=114;declare
*
ERRORatline1:
ORA-20100: The given number is not presentORA-06512:at"SYSTEM.FINDNAME", line7
ORA-06512:atline6

SQL>@pro8
Entervalueforenqno2:112old5:enqno2:=&enqno2;
new5:enqno2:=112;

Person name of equiry id 112 is sindhuPL/SQLproceduresuccessfullycompleted.




EXPERIMENT:9	42
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	Programdevelopmentusingcreationofstoredfunctions,invokefunctionsinSQLstatementsandwrite
complex functions.Sol:
SQL>createtabledept(deptnoint,dnamevarchar(10));
Tablecreated.
SQL>insertintodeptvalues(1219,'sai');
1rowcreated.


PL/SQLCODEtocreateuserdefinefunction

createorreplacefunctiongetname(dnonumber)returnvarchar2as
fname1 varchar2(30);begin
selectdnameintofname1 fromdeptwheredeptno=dno;return(fname1);
exception
whenno_data_found then
raise_application_error(-20100,'YourenteredDepartmentnumberisnotexists');end;
/


SQL> @getnameFunctioncreated.









PL/SQLCodeforcallingfunctioninprogram	43
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	
SQL>ed pro9

set serveroutputon;declare
fname2 varchar2(30);deptno2 number(5);begindeptno2:=&deptno;
fname2:=getname(deptno2);dbms_output.put_line(fname2||'isindeptno'||deptno2);end;
/

SQL>@pro9
Enter value for deptno: 1219old5: deptno2:=&deptno;
new5:deptno2:=1219;


saiisindeptno1219
PL/SQLproceduresuccessfullycompleted.SQL> @pro9
Enter value for deptno: 1001old5: deptno2:=&deptno;
new5:deptno2:=1001;declare
*
ERRORatline1:
ORA-20100:YourenteredDepartmentnumberisnotexistsORA-06512:at"SYSTEM.GETNAME",line 9
ORA-06512:atline6


EXPERIMENT:10	44
		
	NIT	DEPARTMENTOFCSE	

 
DATABASE MANAGEMENT SYSTEMS

Developprogramsusingfeaturesparametersin aCURSOR,FORUPDATECURSOR,WHERECURRENTofclauseandCURSORvariables.	45

Sol:
SQL>createtablecustomers(idnumber(3),namevarchar2(10),agenumber(3),addressvarchar2(10),salarynumber(10,2));
Tablecreated.


SQL>insertintocustomersvalues(1,'ramesh',32,'ahmedabad',2000);
1rowcreated.
SQL>insertintocustomersvalues(2,'khilan',25,'Delhi',1500);
1rowcreated.
SQL>insert intocustomersvalues(3,'kaushik',23,'Kota',2000);
1rowcreated.
SQL>insertintocustomersvalues(4,'chitali',25,'Mumbai',6500);
1rowcreated.
SQL>select*fromcustomers;
IDNAME	AGEADDRESS	SALARY
	-			
1 ramesh	32ahmedabad	2000
2khilan	25Delhi	1500
3kaushik	23Kota	2000
4chitali	25Mumbai	6500

4rowsselected.










SQL>ed pro10

DECLARE
S
c_idcustomers.id%type;
c_namecustomers.name%type;
 
c_addrcustomers.address%type;
 
	DATABASE MANAGEMENT SYSTEMS
	



















SQL>@pro10
1	rameshahmedabad
2	khilanDelhi
3	kaushikKota
4	chitaliMumbai
PL/SQLproceduresuccessfullycompleted.













EXPERIMENT:11
Developprogramsusingbeforeandaftertriggers,rowandstatementtriggersandinsteadoftriggers.	46
		
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS

Sol:
SQL>createtablecustomers(idnumber(3),namevarchar2(10),agenumber(3),address	47
	varchar2(10),salarynumber(10,2));
Tablecreated.


SQL>insertintocustomersvalues(1,'ramesh',32,'ahmedabad',2000);
1rowcreated.
SQL>insertintocustomersvalues(2,'khilan',25,'Delhi',1500);
1rowcreated.
SQL>insert intocustomersvalues(3,'kaushik',23,'Kota',2000);
1rowcreated.
SQL>insertintocustomersvalues(4,'chitali',25,'Mumbai',6500);
1rowcreated.
SQL>select*fromcustomers;
IDNAME	AGEADDRESS	SALARY
		-				 1 ramesh	32ahmedabad		2000
2	khilan	25Delhi	1500
3	kaushik	23Kota	2000
4	chitali	25Mumbai	6500


4rowsselected.











PL/SQLCodeforcreationoftriggerwhileinsert/updaterecordsintoatable.SQL>edpro11	
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	CREATE OR REPLACE TRIGGER display_salary_changesBEFOREDELETEORINSERTORUPDATEONcustomersFOREACHROW
WHEN(NEW.ID>0)DECLARE
sal_diffnumber;BEGIN
sal_diff := :NEW.salary - :OLD.salary;dbms_output.put_line('Old salary: ' || :OLD.salary);dbms_output.put_line('New salary: ' || :NEW.salary);dbms_output.put_line('Salarydifference:'||sal_diff);
END;
/

SQL> @pro11Triggercreated.

SQL>insertintocustomersvalues(5,'Hardik',27,'Mumbai',5500);Oldsalary:
Newsalary:5500Salarydifference:
1rowcreated.


SQL>updatecustomerssetsalary=salary+500whereid=2;Oldsalary:1500
Newsalary:2000
Salarydifference:500
1rowupdated.









EXPERIMENT:12
Createatableandperformthesearchoperationontableusingindexing and non-indexingtechniques.	48
		
	NIT	DEPARTMENTOFCSE	

 
	DATABASE MANAGEMENT SYSTEMS
	Sol:
	SQL>CREATETABLETEACHER(STAFF_IDVARCHAR2(4)PRIMARYKEY,STAFF_NAME
	VARCHAR2(30),QUALIFICATIONVARCHAR2(10),HIREDATEDATE,JOBVARCHAR2(30),	
	ADDRESSVARCHAR2(15),PH_NUMNUMBER(10),SALARYNUMBER(7,2),DEPARTMENT	
	VARCHAR2(10));	
	
Tablecreated.	
	
SQL>insertintoteachervalues('T101','SUNITHA','MCA','29-JUN-06','ASSOCIATE	
	PROFESSOR','VIJAYAWADA',9985061308,23000,'MCA');	
	1rowcreated.	
	
SQL>insertintoteachervalues('T102','FREDSMITH','MTECH','07-MAR-03','ASSOCIATE	
	PROFESSOR','GUNTUR',9985063445,36000,'MBA');	
	1rowcreated.	
	
SQL>insertintoteachervalues('T103','JACKBARNES','BTECH','27-JUN-	
	07','PROFESSOR','TENALI',9985012345,27000,'MTECH');	
	1rowcreated.	
	
SQL>insertintoteachervalues('T104','JANEDOE','MCA','04-JUL-06','ASSISTANT	
	PROFESSOR','VIJAYAWADA',9985045678,29000,'BTECH');	
	1rowcreated.	
	
SQL>insertintoteachervalues('T105','JOESHMOE','MBA','16-AUG-08','ASSOCIATE	
	PROFESSOR','ELURU',9987651308,36000,'MCA');	
	1rowcreated.	
	
SQL>insert intoteachervalues('T106','JONBAKER','MSC(COM)','12-JAN-	
	03','PROFESSOR','HYDERABAD',8876561308,46000,'MCA');	
	1rowcreated.	
	NIT	DEPARTMENTOFCSE	
 
	DATABASE MANAGEMENT SYSTEMS
	SQL>insertintoteachervalues('T107','JOHNDOE','MSC(PHY)','06-FEB-04','ASSISTANT
PROFESSOR','VIJAYAWADA',8345661308,31000,'MBA');
1rowcreated.

SQL>insert into teacher values('T108','KIM SMITH','MCA','10-MAR-08','ASSISTANTPROFESSOR','VIZAG',8374561308,26000,'MTECH');
1rowcreated.

SQL>insertintoteachervalues('T109','MARYPARKER','MTECH','02-APR-09','PROFESSOR','NELLORE',7893427649,52000,'MBA');
1rowcreated.

SQL>insertintoteachervalues('T110','SAMUELJOHN','BTECH','19-MAY-05','ASSISTANTPROFESSOR','ELURU',9982222208,26000,'MBA');
1rowcreated.


SQL>insertintoteachervalues('T111','FRANKLINWONG','MBA','20-AUG-06','ASSOCIATEPROFESSOR','VIZAG',9985033333,20000,'MTECH');
1rowcreated.


SQL>insertintoteachervalues('T112','SLICIAZELAYA','MCA','16-SEP-04','ASSISTANTPROFESSOR','VIJAYAWADA',9985202020,33000,'BTECH');
1rowcreated.


SQL>insert intoteachervalues('T113','JENNIFERWALLACE','MSC(MATHS)','25-OCT-03','PROFESSOR','HYDERABAD',9902192033,54000,'MCA');
1rowcreated.


SQL>insertintoteachervalues('T114','RAMESHNARAYANA','MCA','24-NOV-04','ASSOCIATEPROFESSOR','NARASARAOPET',9988776655,34000,'MBA');
1rowcreated.	50
		
	NIT	DEPARTMENTOFCSE	
 
DATABASE MANAGEMENT SYSTEMS
SQL>insertintoteachervalues('T115','JOYCEENGLISH','MBA','22-DEC-06','ASSISTANT
PROFESSOR','VIJAYAWADA',9998765443,45000,'MBA');	51
1rowcreated.


Toshowthequeryexecutiontimingusethe followingquerySQL> Settimingon;

Retrievedetailsofteacherbeforecreation ofindex.


SQL>select*fromteacher;


STAFSTAFF_NAMEQUALIFICATHIREDATEJOBADDRESSPH_NUM  SALARYDEPARTMENT

 

T101SUNITHAMCA29-06-06ASSOCIATE PROFESSORVIJAYAWADA998506130823000MCAT102 FRED SMITHMTECH07-MAR-03ASSOCIATE PROFESSORGUNTUR998506344536000MBAT103JACKBARNESBTECH27-JUN-07PROFESSORTENALI998501234527000MTECH
T104 JANE DOE MCA 04-JUL-06ASSISTANT PROFESSORVIJAYAWADA 998504567829000BTECHT105JOESHMOEMBA16-AUG-08ASSOCIATEPROFESSORELURU998765130836000MCA
T106JONBAKERMSC(COM)12-JAN-03PROFESSORHYDERABAD  887656130846000MCA
T107JOHN DOEMSC(PHY)06-FEB-04 ASSISTANT PROFESSOR VIJAYAWADA 834566130831000MBAT108KIMSMITHMCA10-MAR-08ASSISTANTPROFESSORVIZAG837456130826000MTECH
T109MARYPARKERMTECH02-APR-09PROFESSORNELLORE789342764952000MBA
T110SAMUEL JOHNBTECH19-MAY-05ASSISTANT PROFESSORELURU9982222208   26000   MBAT111FRANKLIN WONGMBA 20-AUG-06ASSOCIATE PROFESSORVIZAG998503333320000MTECHT112SLICIAZELAYAMCA16-SEP-04ASSISTANTPROFESSORVIJAYAWADA998520202033000BTECHT113JENNIFERWALLACEMSC(MATHS)25-OCT-03PROFESSORHYDERABAD990219203354000MCA
T114RAMESH NARAYANA MCA 24-NOV-04 ASSOCIATE PROFESSORNARASARAOPET998877665534000MBAT115JOYCEENGLISHMBA22-DEC-06ASSISTANTPROFESSORVIJAYAWADA999876544345000MBA

15rowsselected.
Elapsed:00:00:00.24



Indexcreation:


 
NIT	DEPARTMENTOFCSE
 
DATABASE MANAGEMENT SYSTEMS
SQL>createindexteacher_job_indonteacher(job);
Indexcreated.	52
Elapsed:00:00:00.00


Retrievedetailsofteacheraftercreationofindex.


SQL>select*fromteacher;


STAFSTAFF_NAMEQUALIFICATHIREDATEJOBADDRESSPH_NUM  SALARYDEPARTMENT

 

T101SUNITHAMCA29-06-06ASSOCIATE PROFESSORVIJAYAWADA998506130823000MCAT102 FRED SMITHMTECH07-MAR-03ASSOCIATE PROFESSORGUNTUR998506344536000MBAT103JACKBARNESBTECH27-JUN-07PROFESSORTENALI998501234527000MTECH
T104 JANE DOE MCA 04-JUL-06ASSISTANT PROFESSORVIJAYAWADA 998504567829000BTECHT105JOESHMOEMBA16-AUG-08ASSOCIATEPROFESSORELURU998765130836000MCA
T106JONBAKERMSC(COM)12-JAN-03PROFESSORHYDERABAD  887656130846000MCA
T107JOHN DOEMSC(PHY)06-FEB-04 ASSISTANT PROFESSOR VIJAYAWADA 834566130831000MBAT108KIMSMITHMCA10-MAR-08ASSISTANTPROFESSORVIZAG837456130826000MTECH
T109MARYPARKERMTECH02-APR-09PROFESSORNELLORE789342764952000MBA
T110SAMUEL JOHNBTECH19-MAY-05ASSISTANT PROFESSORELURU9982222208   26000   MBAT111FRANKLIN WONGMBA 20-AUG-06ASSOCIATE PROFESSORVIZAG998503333320000MTECHT112SLICIAZELAYAMCA16-SEP-04ASSISTANTPROFESSORVIJAYAWADA998520202033000BTECHT113JENNIFERWALLACEMSC(MATHS)25-OCT-03PROFESSORHYDERABAD990219203354000MCA
T114RAMESH NARAYANA MCA 24-NOV-04 ASSOCIATE PROFESSORNARASARAOPET998877665534000MBAT115JOYCEENGLISHMBA22-DEC-06ASSISTANTPROFESSORVIJAYAWADA999876544345000MBA

15rowsselected.
Elapsed:00:00:00.13













 
NIT	DEPARTMENTOFCSE
 

Leave a Comment