DBMS Lab Manual
DBMS Lab Manual
Programme (UG/PG) : UG
Semester IV
FACULTY HoD
2. Write SQL Commands such as Insertion, deletion and updation for any schema.
3. To execute Nested Queries, Join Queries, order-by, having clause and string operation.
5. To execute various commands for GROUP functions (avg, count, max, min, Sum).
9. Create reports using database connectivity of Front end with back end.
10. Create database Design with normalization and implementing in any application.
HARDWARE REQUIREMENTS:
512MB DDR
SOFTWARE REQUIREMENTS:
AIM:
To create a DDL to perform creation of table, alter, modify and drop column.
DDL COMMANDS
1. The Create Table Command: - it defines each column of the table uniquely. Each column
has minimum of three attributes, a name , data type and size.
Syntax:
Syntax:
Syntax:
Syntax:
Syntax:
Syntax:
7. Destroying tables.
Syntax:
SYNTAX:
EXAMPLE:
Table created.
row created.
row created.
OUTPUT:
Table created.
row created.
SYNTAX:
EXAMPLE:
ID NAME GAME
1 Mercy Cricket
1 Mercy cricket
2 Sharmi Tennis 19
SYNTAX:
EXAMPLE:
OUTPUT:
MODIFY
desc student;
Id Number(6)
Name Varchar(20)
Game Varchar(25)
Age Number(4)
EXAMPLE:
SQL>Table dropped.
TRUNCATE TABLE
DESC
--------------------------------- --------
EName VarChar(15)
CONSTRAINTS:
Create table tablename (column_name1 data_ type constraints, column_name2 data_ type
constraints …)
Example:
Create table Emp ( EmpNo number(5), EName VarChar(15), Job Char(10) constraint un
unique, DeptNo number(3) CONSTRAINT FKey2 REFERENCES DEPT(DeptNo));
Create table stud (sname varchar2(20) not null, rollno number(10) not null,dob date not null);
CHECK CONSTRAINT
Example: Create table student (regno number (6), mark number (3) constraint b check (mark
>=0 and mark <=100)); Alter table student add constraint b2 check (length(regno<=4));
ENTITY INTEGRITY
Queries:
Q1. Create a table called EMP with the following structure.
Name Type
---------- ----------------------
EMPNO NUMBER(6)
ENAME VARCHAR2(20)
JOB VARCHAR2(10)
DEPTNO NUMBER(3)
SAL NUMBER(7,2)
Allow NULL for all columns except ename and job.
Solution:
1. Understand create table syntax.
2. Use the create table syntax to create the said tables.
3. Create primary key constraint for each table as understand from logical table structure.
Ans:
SQL> create table emp(empno number(6),ename varchar2(20)not null,job varchar2(10) not
null, deptno number(3),sal number(7,2));
Table created.
IT-405 IT/GGITS 10 | 1 2 5
/Database Management System Lab /SRM
Q2: Add a column experience to the emp table.
experience numeric null allowed.
Solution:
1. Learn alter table syntax.
2. Define the new column and its data type.
3. Use the alter table syntax.
Ans: SQL> alter table emp add(experience number(2));
Table altered.
Q3: Modify the column width of the job field of emp table.
Solution:
1. Use the alter table syntax.
2. Modify the column width and its data type.
Ans: SQL> alter table emp modify(job varchar2(12));
Table altered.
Q5: create the emp1 table with ename and empno, add constraints to check the empno value
while entering (i.e) empno > 100.
Solution:
1. Learn alter table syntax.
2. Define the new constraint [columns name type]
3. Use the alter table syntax for adding constraints.
Ans:
IT-405 IT/GGITS 11 | 1 2 5
/Database Management System Lab /SRM
SQL> create table emp1(ename varchar2(10),empno number(6) constraint
check(empno>100));
Table created.
Q7: Truncate the emp table and drop the dept table
Solution:
QUESTIONS
1. Define DDL
2. What are constraints?
3. Categories of SQL Command.
4. Difference between truncate and drop.
5. Define primary and referential integrity.
RESULT:
IT-405 IT/GGITS 12 | 1 2 5
/Database Management System Lab /SRM
EX.NO:2 IMPLEMENTATION OF DML AND DCL COMMANDS
AIM;
To study the various DML commands and implement them on the database.
DML COMMANDS
DML commands are the most frequently used SQL commands and is used to query
and manipulate the existing database objects. Some of the commands are Insert, Select,
Update, Delete.
Insert Command This is used to add one or more rows to a table. The values are separated by
commas and the data types char and date are enclosed in apostrophes. The values must be
entered in the same order as they are defined.
Select Commands It is used to retrieve information from the table. It is generally referred to
as querying the table. We can either display all columns in a table or only specify column
from the table.
Update Command It is used to alter the column values in a table. A single column may be
updated or more than one column could be updated.
Delete command After inserting row in a table we can also delete them if required. The delete
command consists of a from clause followed by an optional where clause.
1 row created.
Q2: Insert more than a record into emp table using a single insert command.
IT-405 IT/GGITS 13 | 1 2 5
/Database Management System Lab /SRM
new 1: insert into emp values(1,'Mathi','AP',1,10000)
1 row created.
1 row created.
1 row created.
Q3: Update the emp table to set the salary of all employees to Rs15000/- who are working as
ASP
1 Mathi AP 1 10000
IT-405 IT/GGITS 14 | 1 2 5
/Database Management System Lab /SRM
SQL> update emp set sal=15000 where job='ASP'; 2 rows updated.
1 Mathi AP 1 10000
Q4: Create a pseudo table employee with the same structure as the table emp and insert rows
into the table using select clauses.
Table created.
EMPNO NUMBER(6)
DEPTNO NUMBER(3)
SAL NUMBER(7,2)
IT-405 IT/GGITS 15 | 1 2 5
/Database Management System Lab /SRM
Q6: Delete only those who are working as lecturer
Ans: SQL> select * from emp;
EMPNO ENAME JOB DEPTNO SAL
---------- -------------------- ------------- ---------- ----------
1 Mathi AP 1 10000
2 Arjun ASP 2 15000
3 Gugan ASP 1 15000
4 Karthik Prof 2 30000
5 Akalya AP 1 10000
6 suresh lect 1 8000
6 rows selected.
SQL> delete from emp where job='lect';
1 row deleted.
SQL> select * from emp;
EMPNO ENAME JOB DEPTNO SAL
- --------- -------------------- ------------- ---------- ----------
1 Mathi AP 1 10000
2 Arjun ASP 2 15000
3 Gugan ASP 1 15000
4 Karthik Prof 2 30000
5 Akalya AP 1 10000
Q7: List the records in the emp table orderby salary in ascending order.
Ans: SQL> select * from emp order by sal;
EMPNO ENAME JOB DEPTNO SAL
---------- -------------------- ------------- ---------- ----------
1 Mathi AP 1 10000
5 Akalya AP 1 10000
2 Arjun ASP 2 15000
3 Gugan ASP 1 15000
4 Karthik Prof 2 30000
Q8: List the records in the emp table orderby salary in descending order.
Ans: SQL> select * from emp order by sal desc;
EMPNO ENAME JOB DEPTNO SAL
---------- -------------------- ------------- ---------- ----------
4 Karthik Prof 2 30000
2 Arjun ASP 2 15000
3 Gugan ASP 1 15000
1 Mathi AP 1 10000
5 Akalya AP 1 10000
IT-405 IT/GGITS 16 | 1 2 5
/Database Management System Lab /SRM
Q9: Display only those employees whose deptno is 30.
Solution: Use SELECT FROM WHERE syntax.
Q10: Display deptno from the table employee avoiding the duplicated values.
Solution:
1. Use SELECT FROM syntax.
2. Select should include distinct clause for the deptno.
Ans: SQL> select distinct deptno from emp;
DEPTNO
----------
1
IT-405 IT/GGITS 17 | 1 2 5
/Database Management System Lab /SRM
IMPLEMENTATION OF DATA AND BUILT IN FUNCTIONS IN SQL
CHARACTER/STRING FUNCTION:
-----------
WELCOME
---
HAI
LOW
---
hai
INITCAP('Hello
--------------
Hello World
LTR
---
hai
IT-405 IT/GGITS 18 | 1 2 5
/Database Management System Lab /SRM
RTR
---
hai
RTRIM('
-------
hai
------------------------
GGITS university
LENGTH('GGITS')
----------------------
12
----------------
RGPV university
dual; SUBSTR
------
lingam
IT-405 IT/GGITS 19 | 1 2 5
/Database Management System Lab /SRM
SQL> select rpad('hai',3,'*')from dual;
RPAD('
------
hai***
LPAD('
------
***hai
REPLACE
-------
Danie
TRANSL
------
cool
IT-405 IT/GGITS 20 | 1 2 5
/Database Management System Lab /SRM
DATE & TIME FUNCTION
NEXT_DAY(
---------
13-APR-10
IT-405 IT/GGITS 21 | 1 2 5
/Database Management System Lab /SRM
NUMERIC FUNCTION
ABS(-70)
---------
70
IT-405 IT/GGITS 22 | 1 2 5
/Database Management System Lab /SRM
MATH FUNCTION:
ABS(45)
---------
45
POWER(10,12)
------------
1.000E+12
MOD(11,5)
---------
EXP(10)
---------
22026.466
SQRT(225)
---------
15
IT-405 IT/GGITS 23 | 1 2 5
/Database Management System Lab /SRM
NESTED QUERIES AND JOIN QUERIES
Aim: To execute Nested Queries, Join Queries, order-by, having clause and string
operation.
Q1: Display all employee names and salary whose salary is greater than minimum salary of
the company and job title starts with ‗M„.
Solution:
2. Use like operator to match job and in select clause to get the result.
Ans: SQL> select ename,sal from emp where sal>(select min(sal) from emp where job like
'A%');
ENAME SAL
-------------------- ----------
Arjun 12000
Gugan 20000
Karthik 15000
Q2: Issue a query to find all the employees who work in the same job as Arjun.
1 Mathi AP 1 10000
4 Karthik AP 1 15000
SQL> select ename from emp where job=(select job from emp where ename='Arjun');
ENAME
--------------
Arjun
Gugan
IT-405 IT/GGITS 24 | 1 2 5
/Database Management System Lab /SRM
SET OPERATORS
Aim: To perform set operators like Union, Intersect, Minus on a set of tables.
QUERIES:
Q1: Display all the dept numbers available with the dept and emp tables avoiding duplicates.
Solution:
Ans: SQL> select deptno from emp union select deptno from dept;
DEPTNO
----------
12
30
40
Q2: Display all the dept numbers available with the dept and emp tables.
Solution:
Ans: SQL> select deptno from emp union all select deptno from dept;
DEPTNO
----------
1
IT-405 IT/GGITS 25 | 1 2 5
/Database Management System Lab /SRM
12
30
40
9 rows selected.
Q3: Display all the dept numbers available in emp and not in dept tables and vice versa.
Solution:
Ans: SQL> select deptno from emp minus select deptno from dept;
DEPTNO
----------
12
SQL> select deptno from dept minus select deptno from emp;
DEPTNO
----------
30
40
IT-405 IT/GGITS 26 | 1 2 5
/Database Management System Lab /SRM
VIEWS
Q1: The organization wants to display only the details of the employees those who are ASP.
Solution:
Ans: SQL> create view empview as select * from emp where job='ASP';
View created.
IT-405 IT/GGITS 27 | 1 2 5
/Database Management System Lab /SRM
SQL> select * from empview;
Q2: The organization wants to display only the details like empno, empname, deptno,
deptname of the employees. (Vertical portioning)
View created.
DEPT TABLE
EMP TABLE
EMPVIEW VIEW
EMPVIEW1 VIEW
IT-405 IT/GGITS 28 | 1 2 5
/Database Management System Lab /SRM
Ans: SQL> drop view empview1;
View dropped.
Q3: Issue a query to display information about employees who earn more than any employee
in dept 1. Ans: SQL> select * from emp where sal>(select max(sal) from emp where
empno=1); EMPNO ENAME JOB DEPTNO SAL
---------- -------------------- ---------- ---------- ----------
2 Arjun ASP 2 12000
3 Gugan ASP 2 20000
4 Karthik AP 1 15000
JOINS Tables used
SQL> select * from emp;
EMPNO ENAME JOB DEPTNO SAL
---------- -------------------- ---------- ---------- ----------
1 Mathi AP 1 10000
2 Arjun ASP 2 12000
3 Gugan ASP 2 20000
4 Karthik AP 1 15000
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
1 ACCOUNTING NEW YORK
2 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
EQUI-JOIN
Q4: Display the employee details, departments that the departments are same in both the emp
and dept. Solution: 1. Use select from clause.
2. Use equi join in select clause to get the result.
Ans: SQL> select * from emp,dept where emp.deptno=dept.deptno;
EMPNO ENAME JOB DEPTNO SAL DEPTNO DNAME LOC
---------- ------------------ ---------- ---------- ---------- ---------- -------------- -------------
1 Mathi AP 1 10000 1 ACCOUNTING NEW YORK
2 Arjun ASP 2 12000 2 RESEARCH DALLAS
3 Gugan ASP 2 20000 2 RESEARCH DALLAS
4 Karthik AP 1 15000 1
ACCOUNTING NEW YORK
NON-EQUIJOIN
IT-405 IT/GGITS 29 | 1 2 5
/Database Management System Lab /SRM
Q5: Display the employee details, departments that the departments are not same in both the
emp and dept. Solution: 1.Use select from clause. 2. Use non equi join in select clause to get
the result.
Q6: Display the Student name and grade by implementing a left outer join.
Ans: SQL> select stud1.name,grade from stud1 left outer join stud2 on
stud1.name=stud2.name; Name Gra
----------- ----------
john s raj
s sam a sharin a smith null RIGHTOUTER-JOIN
IT-405 IT/GGITS 30 | 1 2 5
/Database Management System Lab /SRM
Q7: Display the Student name, register no, and result by implementing a right outer join.
Ans: SQL> select stud1.name, regno, result from stud1 right outer join stud2 on stud1.name
= stud2.name; Name Regno Result
----------- ---------- --------------------------
john 101 pass
raj 102 pass
sam 103 pass
sharin 104 pass
Rollno Name Mark1 Mark2 Total
---------- ---------- ---------- ---------- ----------
1 sindu 90 95 185
2 arul 90 90 180
FULLOUTER-JOIN
Q8: Display the Student name register no by implementing a full outer join.
Ans: SQL> select stud1.name, regno from stud1 full outer join stud2 on (stud1.name=
stud2.name); Name Regno
----------- ----------
john 101
raj 102 sam
103 sharin 104
SELFJOIN
Q10: Display the details of those who draw the salary greater than the average salary.
Ans: SQL> select distinct * from emp x where x.sal >= (select avg(sal) from emp);
EMPNO ENAME JOB DEPTNO SAL
---------- -------------------- ---------- ---------- ----------
3 Gugan ASP 2 20000
4 Karthik AP 1 15000
11 kavitha designer 12 17000
IT-405 IT/GGITS 31 | 1 2 5
/Database Management System Lab /SRM
Aim: To perform DCL Commands
DCL COMMANDS
The DCL language is used for controlling the access to the table and hence securing the
database. DCL is used to provide certain privileges to a particular user. Privileges are rights
to be allocated. The privilege commands are namely, Grant and Revoke. The various
privileges that can be granted or revoked are, Select Insert Delete Update References Execute
All.
GRANT COMMAND: It is used to create users and grant access to the database. It requires
database administrator (DBA) privilege, except that a user can change their password. A user
can grant access to their database objects to other users.
REVOKE COMMAND: Using this command , the DBA can revoke the granted database
privileges from the user.
TCL COMMAND
Queries:
Their schemas are as follows , Departments ( dept _no , dept_ name , dept_location );
Employees ( emp_id , emp_name , emp_salary );
Q1: Develop a query to grant all privileges of employees table into departments table
Ans: SQL> Grant all on employees to departments;
Grant succeeded.
Q2: Develop a query to grant some privileges of employees table into departments table
Ans: SQL> Grant select, update , insert on departments to departments with grant option;
Grant succeeded.
Q3: Develop a query to revoke all privileges of employees table from departments table
Ans: SQL> Revoke all on employees from departments; Revoke succeeded.
Q4: Develop a query to revoke some privileges of employees table from departments table
Ans: SQL> Revoke select, update , insert on departments from departments;
Revoke succeeded.
IT-405 IT/GGITS 32 | 1 2 5
/Database Management System Lab /SRM
Q5: Write a query to implement the save point
Savepoint created.
1 Mathi AP 1 10000
1 Mathi AP 1 10000
5 Akalya AP 1 10000
1 Mathi AP 1 10000
IT-405 IT/GGITS 33 | 1 2 5
/Database Management System Lab /SRM
Q6: Write a query to implement the commit
Commit complete.
RESULT
Thus the DML, DCL,TCL commands was performed successfully and executed.
IT-405 IT/GGITS 34 | 1 2 5
/Database Management System Lab /SRM
EX.NO:3 IMPLEMENTATION OF CURSORS
SQL> create table bill(name varchar2(10), address varchar2(20), city varchar2(20), unit
number(10));
Table created.
1 row created.
SQL> /
1 row created.
SQL> /
IT-405 IT/GGITS 35 | 1 2 5
/Database Management System Lab /SRM
Enter value for name: maya
1 row created.
SQL> /
1 row created.
IT-405 IT/GGITS 36 | 1 2 5
/Database Management System Lab /SRM
SQL> declare
3 b bill %ROWTYPE;
4 begin
5 open c;
7 loop
8 fetch c into b;
10 exit;
11 else
12 if(b.unit<=100) then
t*1);
unit*2);
unit*3);
4);
20 else
5);
22 end if;
IT-405 IT/GGITS 37 | 1 2 5
/Database Management System Lab /SRM
23 end if;
24 end loop;
25 close c;
26 end;
27 /
IT-405 IT/GGITS 38 | 1 2 5
/Database Management System Lab /SRM
PROGRAM FOR STUDENT GRADE CALCULATION
Table created.
1 row created.
SQL> /
IT-405 IT/GGITS 39 | 1 2 5
/Database Management System Lab /SRM
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
IT-405 IT/GGITS 40 | 1 2 5
/Database Management System Lab /SRM
SQL> declare
2 tot number;
3 average number;
5 s std %ROWTYPE;
6 begin
7 open c;
9 loop
10 fetch c into s;
11 tot:=s.mark1+s.mark2+s.mark3;
12 average:=floor(tot/3);
13 if(c % notfound)then
14 exit;
15 else
IT-405 IT/GGITS 41 | 1 2 5
/Database Management System Lab /SRM
' '||tot||' '||average||' '||'B');
26 else
28 end if;
29 end if;
30 end loop;
31 close c;
32 end;
33 /
RESULT:
Thus the program to implement cursors was executed and output was verified successfully.
IT-405 IT/GGITS 42 | 1 2 5
/Database Management System Lab /SRM
EX.NO:4 IMPLEMENTATION OF TRIGGERS
Table created.
3 begin
4 :new.tot:=:new.m1+:new.m2+:new.m3;
5 :new.avrg:=:new.tot/3;
7 :new.result:='pass';
8 else
9 :new.result:='Fail';
10 end if;
11 end;
12 /
Trigger created.
1 row created.
IT-405 IT/GGITS 43 | 1 2 5
/Database Management System Lab /SRM
PROGRAM TO INDICATE INVALID CONDITION USING TRIGGER
Table created.
SQL>
3 when(new.age>100)
4 begin
5 RAISE_APPLICATION_ERROR(-20998,'INVALID ERROR');
6* end;
SQL> /
Trigger created.
1 row created.
ERROR at line 1:
RESULT:
IT-405 IT/GGITS 44 | 1 2 5
/Database Management System Lab /SRM
EXNO:5 PROCEDURES AND FUNCTIONS
Table created.
1 row created.
1 row created.
ID FIRST_NAME
--------- --------------------
101 Nithya
102 Maya
IT-405 IT/GGITS 45 | 1 2 5
/Database Management System Lab /SRM
3 begin
5 end insert_num;
6/
Procedure created.
ID FIRST_NAME
--------- --------------------
101 Nithya
102 Maya
103 SCOTT
IT-405 IT/GGITS 46 | 1 2 5
/Database Management System Lab /SRM
FUNCTION TO FIND FACTORIAL
2 return number is
3 i number(10);
4 f number:=1;
5 begin
7 f:=f*i;
8 end loop;
9 return f;
10 end;
11 /
Function created.
FACT(2)
---------
RESULT:
IT-405 IT/GGITS 47 | 1 2 5
/Database Management System Lab /SRM
EX.NO:6 IMPLEMENTATION OF EMBEDDED SQL
SQL> declare
2 salary number;
3 bonus number;
4 begin
5 salary:=&sa;
6 if salary>5000 then
7 bonus:=salary*0.5;
8 else
9 bonus:=0;
10 end if;
11 dbms_output.put_line(bonus);
12 end;
13 /
old 5: salary:=&sa;
new 5: salary:=10000;
5000
IT-405 IT/GGITS 48 | 1 2 5
/Database Management System Lab /SRM
PROGRAM FOR ARMSTRONG NUMBER
SQL> declare
2 a number;
3 b number;
4 i number;
5 begin
6 i:=#
7 a:=i;
8 b:=0;
9 while a>0
10 loop
11 b:=b+power(mod(a,10),3);
12 a:=trunc(a/10);
13 end loop;
14 if b=i then
16 else
18 end if;
19 end;
20 /
old 6: i:=#
new 6: i:=123;
IT-405 IT/GGITS 49 | 1 2 5
/Database Management System Lab /SRM
123 IS NOT AN ARMSTRONG NUMBER
SQL> /
old 6: i:=#
new 6: i:=407;
IT-405 IT/GGITS 50 | 1 2 5
/Database Management System Lab /SRM
PROGRAM FOR MULTIPLICATION TABLE:
SQL> declare
2 a number;
3 b number;
4 i number;
5 n number;
6 s number;
7 begin
8 a:=&ulimit;
9 b:=&llimit;
10 n:=&n;
12 s:=i*n;
13 dbms_output.put_line(i||'*'||n||'='||s);
14 end loop;
15 end;
16 /
old 8: a:=&ulimit;
new 8: a:=1;
old 9: b:=&llimit;
new 9: b:=10;
IT-405 IT/GGITS 51 | 1 2 5
/Database Management System Lab /SRM
old 10: n:=&n;
1*5=5
2*5=10
3*5=15
4*5=20
5*5=25
6*5=30
7*5=35
8*5=40
9*5=45
10*5=50
RESULT:
IT-405 IT/GGITS 52 | 1 2 5
/Database Management System Lab /SRM
EX NO:7 Database design using E-R model and Normalization
ER diagram:
Chen Notation
Chen Notation
Representing Relationships
1:1 Relationships. The key of one relation is stored in the second relation.
Look at example queries to determine which key is queried most often.
1:N Relationships.
Parent - Relation on the "1" side.
Child - Relation on the "Many" side.
Represent each Entity as a relation.
Copy the key of the parent into the child relation.
CUSTOMER (CustomerID (key), Name, Address, ...)
ORDER (OrderNum (key), OrderDate, SalesPerson, CustomerID (fk))
IT-405 IT/GGITS 53 | 1 2 5
/Database Management System Lab /SRM
M:N Relationships. Many to Many relationships can not be directly implemented in
relations.
Solution: Introduce a third Intersection relation and copy keys from original two
relations.
Chen Notation
RESULT:
Thus the ER Database design using E-R model and Normalization was implemented
successfully.
IT-405 IT/GGITS 54 | 1 2 5
/Database Management System Lab /SRM