DE Lab Class 2023-24
DE Lab Class 2023-24
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 1
Brief History of Oracle
They introduced the First Relational Database Management System based on IBM
system.
Oracle is the First database Management System utilizing IBM’S structured Query
Language (SQL) technology.
Oracle has 42,000 professionals in 93 countries around the world today.
Larry Ellison and Bob Miner were working on a consulting project for CIA (Central
Intelligence Agency in USA) Where CIA wanted to use SQL Language. The name of the project
was ORACLE.
Er. is an abbreviation for Engineer and SUN is an acronym for Stanford University
Network. However, the word ORACLE is neither an abbreviation nor an acronym (see an
English dictionary for the meaning of the word ORACLE). It appears in uppercase because this
is the branding style Oracle corporation chose for itself.
Prophecy or prediction
the answer to a question believed to come from the Gods
A statement believed to be infallible and authoritative
A shrine at which these answers are given
Larry Ellison and Bob Miner were working on a consulting project for the CIA (Central
Intelligence Agency in USA) where the CIA wanted to use this new SQL Language. The code
name for the project was Oracle (the CIA saw this as the system to give all answers to all
questions for something such.)
The project eventually died but Larry and Bob saw the opportunity to take what they had
started and market it. So they used that project’s code name of Oracle to name their new
RDBMS engine. Funny thing is that the CIA was one of Oracle’s first customers.
1 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
ORACLE:- In Greece, a place where people could go to ask the Gods for advice or information
about the future.
III. char(n) :- Fixed length character strings e.g. ‘Anu’ .Fixed length character data,
Maximum size 2000 bytes.
V. varchar2(n) :- Variable length character strings, automatically trims the leading and
trailing blanks . e.g. ‘Raj’
n - Precision
2 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 2
SQL STATEMENTS
1. CREATING A TABLE
SQL >create table student (roll number, name varchar2(30), mark number);
SQL > select roll, mark from student where mark>60 and mark<70;
3 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
8.a. INSERTING DATA INTO A TABLE FOR LESS NUMBER OF COLUMNS THAN
ACTUALLY PRESENT IN THE TABLE
4 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 3
9. TO COUNT THE NUMBER OF RECORDS IN A TABLE
“order by” clause is used to sort the result of a query in ascending or descending
order of column value, column number etc.
“group by” clause in a select statement divides the rows of a queried table or view into
smaller groups and displays the output in a particular sequence.
SQL> select stream, count(*) No_of_Students from student group by stream order by
No_of_Students;
stream No_of_Students
MCA 31
MBA 17
COSTING 10
PART(MBA) 12
13. “HAVING CLAUSE”- It operates in same fashion as that of where clause, except that
the “having” clause operates on group functions(“GROUP FUNCTION” is a function
which operates on multiple rows) where as “where” clause operates on individual
rows.
5 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
SQL> select stream, count(*) No_of_Students from student group by stream having
count(*) > 15;
stream No_of_Students
MCA 31
MBA 17
15. “DELETE” Statement :- It is used to delete already existing row or rows from a table
.
ROLL_NO NAME_OF_THE_STUDENT
101 Sachin
6 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 4
PSEUDO COLUMNS IN A TABLE
In addition to the existing columns created by the user in a table some extra columns are
present in every table. These columns are known as Pseudo Columns.
Such as :
a) rownum
b) rowid
c) sysdate etc…
SQL OPERATERS
i. Arithmetic operators
v. Set Operators
I. Arithmetic Operators :
(a) Unary:-
24. SQL> Select country ,temp from weather where temp <-6
7 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Character operators are used to manipulate strings. The most common character operator is the
concatenation (||) operator.
a) =
b) !=,<>, ^= Inequality
c) <
d) >=
e) <=
27. SQL> select roll, name, mark from imit where city in (‘CTC’,'BBSR');
h) like : Returns true when the first expression matches the patternof
nd
2 expression.
28. SQL> select roll, name, mark from imit where name like ‘s%’;
A logical operator is used to produce a single result from combining the 2 separate conditions.
a) and
b) or
c) not
29. SQL>select roll, name, mark from imit name like ‘a%’ or mark > 70;
8 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
V. Set Operator :
Set operator combines the result of 2 separate queries into a single result.
30. SQL> select roll, name from imit where city=’CTC’ union select roll, name from imit
where stream=’MCA’;
b) UNION ALL- Returns rows from both queries (including duplicate rows)
31. SQL> select roll, name from imit where city=’CTC’ union all select roll, name from imit
where stream=’MCA’;
32. SQL> select roll, name from imit where city=’CTC’ intersect select roll, name from imit
where stream=’MCA’;
d) MINUS- Returns all district rows that are in the first query but not in the second one.
33. SQL> select roll, name from imit where city=’CTC’ minus select roll, name from imit
where stream=’MCA’;
Operator Precedence
Precedence defines the order that Oracle uses when evaluating the different operate in the same
expression.
9 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
15. not
16. and
17. or
18. union
19. intersect
20. minus
10 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 5
SQL functions
Group Functions :
A group function returns a single result row for a group at queried rows. Group
value functions ignore NULL values and calculate the result without them.
A single row function returns a single result row for every row of a queried table or view.
i. Character functions.
I. CHARACTER FUNCTIONS :
11 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
a) initcap :- This function returns the string, the first letter of each word in upper case
and all other letters in lower
case
b) instr :- This function allows searching for a set of characters. It tells the position of the
searched set of characters in the given
string.
Name OUTPUT
Manisha anisha
Pooja ooja
Ranjeet anjeet
d) upper :- It takes any string or column and converts all letters in it into
uppercase
upper(name)
ANJAN
JYOTI
GYAN
e) rpad :- It allows us to pad the right side of a column with any set of character.
39. SQL > select rpad (name,10, ‘*’) NAME from imit where
mark>80;
NAME
12 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Sachin****
f) length :- This function returns a numeric value which is the length of the argument.
40. SQL> select name, length (name) LENGTH from imit where mark>60;
Name LENGTH
Sachin 6
II.Number function
ABS(-
234) 234
b) ceil :- it produces the next integer if the argument isn’t integer else it produces the same
value.
9 -9 -4 3
c) floor :- it produces the previous integer if the argument isn’t integer else it produces the
same value.
43. SQL> select floor (6), floor (-6), floor(2.22), floor(-2.22) from
dual;
6 -6 2 -3
d) mod :- Modulus is a fun which divides a value by a divisor and gives us the remainder .
13 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
0 .1 33
10 1.897366
f) sign:-It gives the sign of the value but not it’s magnitude.
46. SQL > select sign (600) , sign(-600), sign(0) from dual;
1 -1 0
g) round & trunc :- trunc chops off digits of precision from a no.
trunc(33.666666666,2) round(33.6666666,2)
33.66 33.67
ascii (‘D’)
68
(3 ) Date function
In order to work with date datatypes , let's add a new column to imit, i.e. dob;
14 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Sysdate is a column that always returns the current date & the time and can be used
anywhere . It can be considered as a (hidden) pseudo column present in every table .
III. last_day(date) : It gives date of last day of month that day is in.
VI. next_day(date,'day') : Gives date of next day after date, where 'day' is 'Monday',
'Tuesday', and so on.
15 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 6
(4) Conversion Function :-
a) to_char
b) to_number
c) to_date
a) to_char
to_char (n[,format])
It converts a value of a number data type to a character data type , using the optional format
string .
char
$ 017 ,145
to_char (date[,format])
DEPOSIT_DETAILS
o/p: Rs. 10020 deposited on Eleventh ,November, 2009 in account no.: 1001
Parameter Explanation
YEAR Year, spelled out
YYYY 4-digit year
YYY
Last 3, 2, or 1 digit(s) of year.
YY
16 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Y
IYY
IY Last 3, 2, or 1 digit(s) of ISO year.
I
IYYY 4-digit year based on the ISO standard
Accepts a 2-digit year and returns a 4-digit year.
RRRR A value between 0-49 will return a 20xx year.
A value between 50-99 will return a 19xx year.
Q Quarter of year (1, 2, 3, 4; JAN-MAR = 1).
MM Month (01-12; JAN = 01).
MON Abbreviated name of month.
Name of month, padded with blanks to length of 9
MONTH
characters.
RM Roman numeral month (I-XII; JAN = I).
Week of year (1-53) where week 1 starts on the first
WW day of the year and continues to the seventh day of
the year.
Week of month (1-5) where week 1 starts on the first
W
day of the month and ends on the seventh.
Week of year (1-52 or 1-53) based on the ISO
IW
standard.
D Day of week (1-7).
DAY Name of day.
DD Day of month (1-31).
DDD Day of year (1-366).
DY Abbreviated name of day.
Julian day; the number of days since January 1, 4712
J
BC.
HH Hour of day (1-12).
HH12 Hour of day (1-12).
HH24 Hour of day (0-23).
MI Minute (0-59).
SS Second (0-59).
SSSSS Seconds past midnight (0-86399).
Fractional seconds. Use a value from 1 to 9 after FF
FF to indicate the number of digits in the fractional
seconds. For example, 'FF4'.
AM, A.M., PM, or P.M. Meridian indicator
AD or A.D AD indicator
BC or B.C. BC indicator
TZD Daylight savings information. For example, 'PST'
TZH Time zone hour.
17 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Applies To:
For example:
to_date('2003/07/09',
would return a date value of July 9, 2003.
'yyyy/mm/dd')
to_date('070903', 'MMDDYY') would return a date value of July 9, 2003.
to_date('20020315', 'yyyymmdd') would return a date value of Mar 15, 2002.
b) to_number(char)
This function converts char , a character value expressing a number to a NUMBER data type
c) to_date (char[,format])
The date data type is used to store date and time information. It stores the information
about the followings.
a. Century
b. Year
c. Month
d. Day
18 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
e. Hour
f. Minute
g. Second
IMITEMP
1) Display the employee name and salary whose salary > 19000.
2) Display the empname, salary and increased by 15%. Label the new column as new salary.
3) Modify the query to add a column that will subtract old salary from new salary .Label the
column as increase .
4) For each employee display the ename & calculate no. of months between today and the
doj label the column as months_worked. Display the result in the ascending order of months
worked . Round up the months.
5) Write a query that will display the employee name with the first letter capitalized and of
their name for all employees whose name starts with J, A or S.
6) Display name & salary for employees. Format salary to 15 characters long left padded with
*.
7) Display the name & age of employees where age > 28 years .Format name to 15 characters
long right padded with *.
8) Display the highest, lowest, sum, average salary of all employees. (Round the results to
nearest whole numbers.)
9) Modify the query to display the min, mix, sum & average salary for each job type.
19 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
11) Display the difference between highest is lowest salaries label the column as difference .
12) Display the department name, number_of_employees in that department and average salary
of that department.
13) Display ename & salary of the employees whose salary > average salary. Sort the result in
the order of salary.
14) Display the name of the employees in computer science whose starts with J.
15) Display the name of those employees whose name starts with r and ends with h.
16) Display the empno and name of those whose salary is greater than the salaries of computer sc
dept.
17) Display the empno and name of those whose salary is greater than the average salary of their
own department.
19) Display the name of all the employees whose age is greater than 30 years.
20) Display the name of all the employees whose 3rd character of the name is c.
21) Dispaly the name and age (in years) of all employees.
22) Display the name of all the employees who are from computer science department or city is
either Cuttack, Bhubaneswar or Sambalpur.
20 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 7
Query in Multiple Tables
1. Cartesian Join
2. Equi Join
3. Non equi Join
4. Self Join
5. Outer Join
6. Natural Join
7. Theta Join
8. Semi Join
Cartesian Join
When we don’t specify any condition through WHERE claws, each row of the table is
matched with every row of other table. This results in Cartesian join. If table 1 has n rows and
table2 has m rows,the total no. of rows produced in result will be = n*m rows.
BORROWER
Cust _name Loan_no
Sachin L-15
Saurav L-16
Loan
Loan_no Br_name Amount
L-15 BBSR 25k
L-16 CTC 35k
L-17 BBSR 40k
Equi Join
Equi joins are formed as a result of an exact match between 2 columns. In this, the
joining condition is based on the equalities between the values of the common columns.
cust-name br-name
Sachin BBSR
Saurav CTC
Non-Equi Join
The non-equi join is a join where the link condition isn’t a direct relationship, but
is inferred in some fashion it is any join where the “=” symbol isn’t the joining condition.
emp
Emp-no Sal
101 800
102 1100
103 1250
104 1600
105 1500
106 2975
107 2850
108 8560
salgrade
grade hisal Losal
1 1200 700
2 1400 1201
3 2000 1401
4 3000 2001
5 9000 3001
22 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
64. SQL> select emp_no, sal, grade, hisal, losal, from emp, salgrade where sal between losal
and hisal;
Self Join
A join that relates to itself. This is helpful if the join is to be between one row in a table and
another row in the same table.
To list all employee numbers, salary having salary greater than or equal to the salary of
emp_no 105.
65. SQL> select a.emp, b.sal from depositor and depositor b where a . sal >=b.sal and
b.emp_no=105;
Outer Join
Outer join is used to include mismatched rows from one table. The symbol (+) is added at
the end of the column name to create the outer join.
Account
Acc-no Name type
101 Sachin CA
102 Saurav SA
103 Rahul CA
104 Ajit SA
Deposit
Acc-no Balance
101 25k
102 35k
103 40k
66. SQL>select a. acc_no , name , b .balance from account a , deposit b where b. acc-no
(+) = a.acc_no;
23 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
The left outer join takes all tuples in the left relation that don’t match with any tuple in the
right relation, pads the tuples with NULL values for all other attributes from the right relation,
and adds them to the result of the natural join .
The right outer join pads from the right relation that don’t match any from the left
relation with NULL and adds them to the result of the natural join.
The full outer join does both of these operations , padding tuples from the left relation
that don’t match any from the right relation ,as well as the tuples from the right relation
that don’t match any from the left relation adding them to the result of the join.
24 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 8
SUBQUERIES
A sub query makes it possible for a user to base the search criteria of one select statement on the results of another
SELECT statement.
Oracle first evaluates the nested query then the main query is executed.
SQL> Select max(sal) from imitemp where sal <(select max(sal ) from imitemp);
68. To find the empnos from imitemp table whose sal> avg.salary .
SQL> Select empno from imitemp where sal> (select avg (sal) from imitemp);
69. To display acc-no, name of account holder and account type whose account type is same as that of acc-no 103
or sachin.
SQL> select acc-no, name, type from account where type = (select type from account where acc-no = 103) or
type = ( select type from account where name =' Sachin');
Correlated Subquery
A correlated subquery is one whose value depends upon some variable that receives its value from outer query.
70. To find all depositors whose balance is more then the average balance in their own category.
SQL> select acc-no, balance , category from depsiter x where balance > (select avg (balance) from depositor
where x.category = category);
DEPOSITOR
SQL> Select empno, ename, sal from imitemp e where 3 > (select count (*) from imitemp where sal>e.sal);
25 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
ROWID :
Rowid is a pseudocolumn that is a part of every table. Every row in Oracle table has a unique
rowid which identifies the row of data in the database.
ROW NUM :
Row num is a pseudo column. It returns the sequence no. in which a row was returned when
first selected from a table. The first row has a rownum of 1, the second is 2 and so on. Rownum
is used to limit the no. of rows returned by a select query.
73. Using minus operator, retrieve all employee numbers having rownum greater than 3 and less
than or equal to 5.
SQL> Select empno from imitemp where rowid in (select row id from imitemp where
rownum <=5 minus select row id from imitemp where rownum <3 )
74. Removing duplicate records from a table using rowid and rownum
SQL>delete from imit A where rowid > (select min (rowid ) from imit B where A.roll =
B.roll and A.name = B.name);
26 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
SQL>delete from imit A where rownum < (select max (rownum) from imit B where A.roll
=B.roll and A.name =B.name );
27 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 9
Working with Tables
Tables are fundamentals storage structures for data within an Oracle database.
75. To create a duplicate table as the existing table by taking some / all attributes of the existing
table.
SQL>create table imit_dup2 (ename,des,sal) as select name, des, salary from imit where
dept=’compsc’ ;
Constraints
The constraints are used so that the Oracle does most of the work of maintaining the integrity of
a database.
a) Primary key
b) Default option
c) Foreign key
d) Check
e) Not Null
Primary key : When we create a primary key, Oracle automatically creates indexing on that
primary key.
76. SQL > create table imit(emp_no number primary key, name varchar2(30), dept
varchar2(10), sal number);
77. SQL>create table imit (emp_no number, name varchar2(30), dept varchar2(10), sal number,
doj date default sysdate );
28 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
c) Foreign key : It is an attribute or group of attributes that refer to the primary key of some
other table.
e) Not Null : It won’t allow the null entry for one column
f) Composite Primary Key : The key word unique makes more than one attributes
combined to act as primary key
78. SQL>create table depositor(name varchar2(30) not null, address varchar2(30) not null,
acc_no number references account (acc_no), acc_type char(1) check(acc_type in (‘s’,’f’,’c’)),
unique(name, address));
79. SQL > create table account (acc_no number (5) primary key, name varcher2(30));
82. SQL > alter table account modify (name not null);
83. SQL > alter table account add primary key (acc_no);
84. SQL > alter table depositor add constraint depkey foreign key(acc_no) references
account modify (acc_no not null);
85. SQL > alter table account modify (name varchar2(20) not null);
88. Roll Back - Roll back command can be used to recover deleted rows.
29 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 10
VIEWS
A view is a kind of virtual table in the database whose contents are defined by a query.
A view is a SQL*plus query that is permanently stored in the database and is assigned a
name.
Creating a view :
89. SQL > create or replace view my_view as select eno, ename, salary from imitemp where
salary > 10,000;
90. SQL > create or replace view myview as select eno, ename, salary from imitemp where
salary>5000 with check option;
Error
Advantages of View
a) Views allow setting up different security levels for some base tables, thus restricting the
access to certain data from people who don’t have proper authority.
b) Views allow the same data to be seen by different users in different ways at the same time.
c) Views can be used to add some additional information like derived attributes.
30 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 11
SOME MORE SQL COMMANDS
INDEX
An index is a database structure that is created by the database server to find a row in a table
quickly. Indexes are used in Oracle to improve the performance of the queries.
Oracle stores the list of indexes created, in a data dictionary “USER_INDEX” table.
index dropped
SEQUENCES
31 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
99. SQL> create sequence seqimit increment by 1 start with 1000 maxvalue 1100 minvalue
1000 cache 20;
start with : It specifies a number with which the sequence will begin. By default start with
is maxvalue for descending sequences and minvalue for ascending sequences.
100. SQL> insert into imit values(seqimit.nextval, ‘Saurav’, ‘comp’, 18000, default);
The pseudocolumn nextval and curval can be used in the following situations :
The pseudocolumn nextval and curval can’t be used in the following situations:
all_sequence data dictionary contains all the sequence lists owned by the user.
32 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
SYNONYMS
· It can be created for convenience to refer to the long names or for security
Task for students : What is the difference between view and synonym ?
NVL function
In group functions, all the columns with a null value are ignored. The NVL function helps in
substituting a value in place of null.
Decode Function
Syntax : decode(value,if1,then1,if2,then2,…,else)
106. SQL> select roll, name, decode(stream, ‘mca’, ‘Master of Computer’, ‘mba’, ‘Master of
Business’, ‘Useless Courses’) from imit;
33 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 12
REPORT GENERATION USING SQL
Sql *Plus has commands which allows users to create reports. It uses SQL to get information
from the oracle database and lets us create well formatted reports by giving us easy control over
titles, column headings, column formats, reformatting of numbers and texts.
i. The report formatting commands are all SQL *Plus commands , not SQL
commands
a. Column
b.Ttiltle
c. Btitle
d.Break
e. Compute
f. Skip
g. Set
COLUMN
The column command can be used to specify the format of character or numeric display or
column heading. The column command is given before statement.
a. The format of character columns is specified by character ‘a’ followed by the width of the
column
c. The heading separator ‘|’ is used to display the heading on next line.
34 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
TTILTLE
The ttitle command defines a title that will appear at the top of the page.
...
1. Are usually entered on one line and do not require a “;” at the end.
2. Stay in effect until you reset them or exit the session.
3. May be entered in upper or lowercase.
SHOW
35 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
When you start a SQL*Plus session it gets it’s initial settings from the LOGIN.SQL file, if one
exists, in your directory path. To get a list of your current settings type:
CODE
36 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
STORE
If you want to save your settings after you have made changes:
CODE
will store the settings in the new file which you have named.
If you omit the file extension it will use ‘.sql’ by default.
The keyword “create” may be changed to “replace” to overwrite an
existing file or to “append” to add to an existing file.
DESCRIBE
To describe most database objects:
CODE
37 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
START or @
To run a script:
CODE
or
CODE
SQL> @my_script.tst
/
To run the SQL statement or PL/SQL block you typed:
CODE
SYSDATE
---------
21-APR-03
SPOOL
To have displayed output written into an output file:
CODE
COLUMN
This will format a column for output:
38 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
CODE
Since the heading is wider than the data you might add:
CODE
Todays Date
-----------
21-APR-03
CODE
The format parameter may be used to specify a smaller width for a character string which may
cause it to wrap:
CODE
TABLE_NAME
---------------
ACCESS$
AQ$_MESSAGE_TYP
ES
…
39 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Date masks are assigned by using the to_char function in your select statements, not in
SQL*Plus. There are many optional parameters to the column command, so refer to the manual.
EDIT
To edit the contents of the SQL buffer:
CODE
ed
To edit a file:
CODE
ed my_script.tst
GET
Used to retrieve the contents of a file into the buffer.
CODE
or
CODE
LIST
To list the contents of the SQL buffer:
CODE
SQL> l
1* select sysdate from dual;
40 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
PROMPT
To display a user message:
ODE
SAVE
Used to save the contents of the buffer to a file:
CODE
This will store the buffer contents in the new file which you have named.
If you omit the file extension it will use ‘.sql’ by default.
The keyword “create” may be changed to “replace” to overwrite an
existing file or to “append” to add to an existing file.
SET
This sets the environment and there are many parameters. This is a list of some of the commonly
used ones. See a manual for detailed more syntax information.
DEFINE
Sets the special character used for substitution variables (default is ‘&’).
CODE
or
CODE
ECHO
Controls whether SQL*Plus commands from a command file are displayed when the command
file is run. For example, if you have a file called xxx.sql which contains the SQL command:
CODE
41 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Then:
CODE
SYSDATE
---------
21-APR-03
or
CODE
SYSDATE
---------
21-APR-03
FEEDBACK
Controls whether SQL*Plus displays the number of rows affected.
For example:
CODE
SYSDATE
---------
21-APR-03
1 row selected.
or
CODE
SYSDATE
---------
21-APR-03
42 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
HEADING
Controls whether SQL*Plus displays headings.
For example:
CODE
SYSDATE
---------
21-APR-03
or
CODE
21-APR-03
LINESIZE
Specifies the number of characters on a line.
CODE
LONG
Specifies the maximum number of characters to display for a long datatype.
CODE
NEWPAGE
Specifies the number of lines between pages. A ‘0’ causes a formfeed.
CODE
43 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
PAGESIZE
Specifies the number of lines on a page.
CODE
SCAN
Turns user variable substitution on/off.
CODE
or
CODE
SERVEROUTPUT
Controls whether PL/SQL blocks can print output. This is also used to set the buffer size. Server
output must be set on for DBMS_OUTPUT to work correctly.
CODE
or
CODE
or
CODE
SHOWMODE
Determines if the before and after values of settings are displayed.
CODE
44 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
TERMOUT
Determines if output from a script is displayed.
If file XXX.SQL contains:
CODE
then:
CODE
SYSDATE
---------
22-APR-03
TIME
Controls whether time is displayed in the SQL prompt.
CODE
45 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
TIMING
Controls whether the elapsed execution time displays.
CODE
SYSDATE
---------
22-APR-03
SYSDATE
---------
22-APR-03
real: 10
TRIMOUT
Determines if trailing spaces are trimmed from lines displayed on the screen.
CODE
set trim on
or
CODE
TRIMSPOOL
Determines if trailing spaces are trimmed from lines spooled to a file.
CODE
46 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
set trims on
or
CODE
TRUNCATE
Determines if long lines are truncated.
If file XXX.SQL contains:
CODE
then:
CODE
HI
-------------------------
1234567890123456789012345
67890
HI
-------------------------
1234567890123456789012345
VERIFY
Determines if before and after images of lines with substitution variables are displayed. If flat
file XXX.SQL contains:
CODE
47 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
then:
CODE
HI
------
Hello!
HI
----------
Greetings!
These settings work in combination to modify the SQL*Plus environment to suit your needs. If
flat file XXX.SQL contains:
CODE
48 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 13
PL/SQL
(Procedural Language/ Structured Query Language)
PL/SQL is a block structured programming language that offers application developer the ability to combine
procedural logic with SQL to satis fy complex database requirements.
Advantages of PL/SQL
Integration
Portability
Security
Application performance
Scalability
Control Loop
Modularity
Error handling
PL/SQL Blocks
i) Anonymous block – These blocks are declared at the point in an application where they are to be run,
e.g. TRIGGERS in SQL consisting of such blocks
49 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
The anonymous PL/SQL block structure is made up of 3 sections, out of which 2 sections are optional.
DECLARE
BEGIN
Executable statements
EXCEPTION
End;
50 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 14
DECLARATIVE SECTION :
Here the objects are declared. The variable, data type, cursors within the
declarative section are limited to this block and can’t be used outside.
dname varcher2(30);
EXECUTABLE SECTION :
It contains procedural and SQL statements that are executed when the block is run.
i. Assignment stmt.
dname := ‘HELLO’
EXCEPTION SECTION :
It contains exception handler to handle errors that occur during processing. The error hanling code in the
exception section is executed only when an error occurs.
END:
PL/SQL Datatypes
PL/SQL supports variety of data types for declaring variables and constants. It can be
51 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
i) scalar
ii) composite
iii) LOB
SCALAR DATATYPES
a) binary integer
b) dec
c) decimal
d) double precision
e) float
f) int
g) varchar
h) natural
i) number
j) positive
k) real
l) char
m) long
n) long raw
o) raw
p) rowid
q) string
r) table
s) varchar2
t) date
u) Boolean
52 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
v) Smallint
COMPOSITE TYPES
a) table
b) records
c) varraya
LOB TYPES
a) Bfiles
b) Blob
c) Clob
d) Nclob
Constants are declared by specifying the constant keyword after the datatype.
SYNTAX :
USING %TYPE:
Variables can also be declared using the column and row attributes of a table. To avoid the type and size conflict
between a variable and the table column, the attribute % type is used.
Declare
Vroll student.roll%type;
Vname student.name%type;
Vmark student.mark%type;
Begin
Select roll, name, mark into vroll, vname, vmark from student where roll=102;
53 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Dbms_output.put(vroll);
Dbms_output.put(' ');
Dbms_output.put_line(vname);
Dbms_output.put(' ');
Dbms_output.put_line(vmark);
End;
USING %ROWTYPE :
In case variables of entire row need to be declared, then instead of declaring them individually, the attribute
%rowtype is used.
Declare
rowvar student%rowtype;
Begin
Select roll, name, mark, city into rowvar from student where roll=102;
Dbms_output.put(rowvar.roll);
Dbms_output.put(' ');
Dbms_output.put(rowvar.name);
Dbms_output.put(' ');
Dbms_output.put(rowvar.mark);
End;
CONTROL STRUCTURE
1. For loop
2. while loop
3. goto
4. exit
54 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
The following example uses a simple FOR loop to insert ten rows into a database table. The values of a loop index,
counter variable, and either of two character strings are inserted. Which string is inserted depends on the value of the
loop index.
Input Table
PL/SQL Block
DECLARE
x NUMBER := 100;
BEGIN
FOR i IN 1..10 LOOP
IF MOD(i,2) = 0 THEN -- i is even
INSERT INTO temp VALUES (i, x, 'i is even');
ELSE
INSERT INTO temp VALUES (i, x, 'i is odd');
END IF;
x := x + 100;
END LOOP;
COMMIT;
END;
Output Table
Sample 2. Cursors
The following example uses a cursor to select the five highest paid employees from
the emp table.
55 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Input Table
SQL> SELECT ename, empno, sal FROM emp ORDER BY sal DESC;
ENAME EMPNO SAL
---------- --------- --------
KING 7839 5000
SCOTT 7788 3000
FORD 7902 3000
JONES 7566 2975
BLAKE 7698 2850
CLARK 7782 2450
ALLEN 7499 1600
TURNER 7844 1500
MILLER 7934 1300
WARD 7521 1250
MARTIN 7654 1250
ADAMS 7876 1100
JAMES 7900 950
SMITH 7369 800
PL/SQL Block
DECLARE
CURSOR c1 is
SELECT ename, empno, sal FROM emp
ORDER BY sal DESC; -- start with highest paid
employee
my_ename VARCHAR2(10);
my_empno NUMBER(4);
my_sal NUMBER(7,2);
BEGIN
OPEN c1;
FOR i IN 1..5 LOOP
FETCH c1 INTO my_ename, my_empno, my_sal;
EXIT WHEN c1%NOTFOUND; /* in case the number requested */
/* is more than the total */
/* number of employees */
INSERT INTO temp VALUES (my_sal, my_empno, my_ename);
COMMIT;
END LOOP;
CLOSE c1;
END;
Output Table
Sample 3. Scoping
x. The values inserted into the temp table show that the two x'
s are
indeed different.
PL/SQL Block
DECLARE
x NUMBER := 0;
counter NUMBER := 0;
BEGIN
FOR i IN 1..4 LOOP
x := x + 1000;
counter := counter + 1;
INSERT INTO temp VALUES (x, counter, 'in OUTER loop');
/* start an inner block */
DECLARE
x NUMBER := 0; -- this is a local version of x
BEGIN
FOR i IN 1..4 LOOP
x := x + 1; -- this increments the local x
counter := counter + 1;
INSERT INTO temp VALUES (x, counter, 'inner loop');
END LOOP;
END;
END LOOP;
57 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
COMMIT;
END;
Output Table
58 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Lab Class : 15
PL/SQL Programs
Declare
vroll imit.roll%type;
vname imit.name%type;
vmark imit.mark%type;
Begin
select roll, name, mark into vroll, vname, vmark from imit where roll=101;
Dbms_output.put('ROLL');
Dbms_output.put(' ');
Dbms_output.put('NAME');
Dbms_output.put(' ');
Dbms_output.put_line('MARK’);
Dbms_output.put(vroll);
Dbms_output.put(' ');
Dbms_output.put(vname);
Dbms_output.put(' ');
Dbms_output.put_line(vmark);
End;
59 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Declare
vrow imit%rowtype;
Begin
select roll, name, mark into vrow from imit where roll=102;
Dbms_output.put('ROLL');
Dbms_output.put(' ');
Dbms_output.put('NAME');
Dbms_output.put(' ');
Dbms_output.put_line('MARK');
Dbms_output.put(vrow.roll);
Dbms_output.put(' ');
Dbms_output.put(vrow.name);
Dbms_output.put(' ');
Dbms_output.put_line(vrow.mark);
End;
60 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
61 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Cursor
4. PL/SQL program using cursor to insert into table temp2 records having highest 5 marks from imit
table.
Step – 1:
62 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
Step – 2:
Step – 3:
63 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE
INSTITUTE OF MANAGEMENT AND INFORMATION TECHNOLOGY, CUTTACK
DEPARTMENT OF MCA
MCA 1ST SEMESTER DATABASE ENGINEERING LAB
64 Dr. Suvendra Kumar Jayasingh, Associate Professor & HOD, Dept. of CSE