DBMS PRACTICALS
Create user in oracle sql plus and grant permissions
SQL> alter session set "_oracle_script"=true;
SQL> create user jay identified by pass;
SQL> grant create session to jay;
SQL> connect jay/pass;
SQL> ALTER USER jay QUOTA UNLIMITED ON USERS;
SQL> grant create table to aryan;
Practical No. 2
Create database schema for given application
SQL> create table emp(empno number(4),ename varchar(10),job number(9),mgr number(4),hiredate
date,sal number(7,2),comm number(7,2),deptno number(2));
SQL> alter table emp modify empno primary key;
SQL> desc emp;
SQL> insert into emp
values(1111,'Aryan',118619,2217,TO_DATE('2007/05/16','yyyy/mm/dd'),30000.50,902.56,23);
SQL> select * from emp;
SQL> insert into emp values(2222,'Arya',118,3217,'10-Oct-07',30000.50,902,22);
SQL> select * from emp;
SQL> insert into dept values(23,'Computer','Karad');
SQL> insert into dept values(22,'Computer','Malvan');
SQL> select * from dept;
Practical No. 3
Execute DDL commands to manage Database using SQL
SQL> create table EMP(emp_no number Primary key,e_name varchar(10),dept_no
number(4),dept_name varchar(10),job_id number(4),salary number(6));
INFORMATIVE TECH
SQL> insert into emp values(1111,'aryan',2023,'Computer',1001,20000);
SQL> insert into emp values(2222,'rohan',3423,'HR',1031,30000);
SQL> insert into emp values(3333,'pranav',3453,'HR',1031,35000);
SQL> insert into emp values(4444,'aakash',3555,'Sales',1431,45000);
SQL> select * from emp;
SQL> drop table emp;
SQL> create table emp(empno number primary key,empname varchar(10),salary number(6),phoneno
number(10));
SQL> insert into emp values(1111,'aryan',20000,3040506010);
SQL> insert into emp values(2222,'pranav',23333,1020304050);
SQL> insert into emp values(3333,'john',30000,1098765432);
SQL> select * from emp;
SQL> create table dept(deptno number primary key,empno number, deptname varchar(20),location
varchar(20),constraint fk_empno foreign key (empno) references emp(empno));
SQL> insert into dept values(1000,1111,'Computer','Karad');
SQL> insert into dept values(2000,2222,'Electronics','Karad');
SQL> insert into dept values(3000,3333,'Electrical','Karad');
SQL> select * from dept;
SQL> rename emp to emp_table;
SQL> select * from emp_table;
SQL> alter table dept modify location varchar(15);
SQL> desc dept;
SQL> truncate table dept;
SQL> select * from dept;
SQL> drop table dept;
SQL> drop table emp_table;
INFORMATIVE TECH
Practical No. 4
Execute DML Commands to manipulate data using SQL
SQL> create table emp(empno number(5),ename varchar(10),dname varchar(20),job
varchar(15),hiredate date,loc varchar(20));
SQL> insert into emp values(7876,'ADAMS','RESEARCH','CLERK','23-MAY-87','DALLAS');
SQL> insert into emp values(7876,'ALLEN','SALES','SALESMAN','20-FEB-81','CHICAGO');
SQL> insert into emp values(7698,'SMITH','SALES','MANAGER','01-MAY-81','CHICAGO');
SQL> insert into emp values(7782,'CLARK','ACCOUNTING','MANAGER','09-JUN-81','NEW YORK');
SQL> SELECT * FROM EMP;
SQL> UPDATE EMP SET EMPNO=7499 WHERE ENAME='ALLEN';
SQL> SELECT * FROM EMP;
SQL> insert ALL
into emp values(7902,'FORD','RESEARCH','ANALYST','03-DEC-81','DALLAS')
into emp values(7900,'JAMES','SALES','CLERK','03-DEC-81','CHICAGO')
into emp values(7566,'JONES','RESEARCH','MANAGER','02-APR-81','DALLAS')
into emp values(7839,'KING','ACCOUNTING','PRESIDENT','17-NOV-81','NEW YORK')
SELECT * FROM DUAL;
SQL> DELETE EMP WHERE ENAME='SMITH';
SQL> UPDATE EMP SET JOB='MANAGER' WHERE ENAME='ADAMS';
SQL> SELECT EMPNO,DNAME FROM EMP;
Practical No. 5
Execute DCL Commands to control the access to data using SQL
SQL> create table emp(empno number(4),empname varchar(15),salary number(7,2),phno number(10));
SQL> alter table emp modify empno number primary key;
SQL> create table dept(deptno number(4),empno number(4),deptname varchar(15),location
varchar(15),constraint fk_empno foreign key (empno) references emp(empno));
SQL> alter table dept add jobtype varchar(15);
SQL> alter session set "_oracle_script"=true;
INFORMATIVE TECH
SQL> create user jay identified by admin;
SQL> grant create table,create view to jay;
SQL> grant select,insert,update on emp to jay;
SQL> grant select ,update(deptno,empno) on dept to jay;
SQL> alter user jay identified by admin;
SQL> revoke create table,create view from jay;
SQL> revoke select,insert,update on emp from jay;
SQL> create role emp_pvr;
SQL> grant create table,create view to emp_pvr;
SQL> create user john identified by admin;
SQL> grant emp_pvr to jay,john;
SQL> drop user jay;
SQL> drop user john;
Practical No. 6
Execute TCL Commands to control transactions on data using SQL
SQL> create table emp(empno number(4),empname varchar(10),sal number(6,2));
SQL> insert into emp values(101,'zoya',2000);
SQL> insert into emp values(102,'srikant',5000);
SQL> insert into emp values(103,'Jayesh',3000);
SQL> select * from emp;
SQL> commit;
SQL> select * from emp;
SQL> insert into emp values(104,'Krishna',3500);
SQL> insert into emp values(104,'Kunal',4500);
SQL> insert into emp values(105,'jay',1500);
SQL> select * from emp;
SQL> rollback;
SQL> select * from emp;
INFORMATIVE TECH
SQL> savepoint s1;
SQL> insert into emp values(104,'Krishna',3500);
SQL> insert into emp values(105,'jay',1500);
SQL> insert into emp values(106,'Kunal',4500);
SQL> select * from emp;
SQL> savepoint s2;
SQL> update emp set sal=sal+20 where empno=101;
SQL> update emp set sal=sal+20 where empno=102;
SQL> update emp set sal=sal+20 where empno=104;
SQL> update emp set sal=sal+20 where empno=103;
SQL> savepoint s3;
SQL> update emp set sal=sal+20 where empno=105;
SQL> select * from emp;
SQL> rollback to s3;
SQL> select * from emp;
SQL> rollback to s2;
SQL> select * from emp;
SQL> rollback to s1;
SQL> select * from emp;
Practical No. 10
Use set operators to perform different operations
SQL> create table emp1(empno number(4),empname varchar(15),deptno number(4));
SQL> create table emp2(empno number(4),empname varchar(15),deptno number(4));
SQL> insert into emp1 values(1,'Hari',24);
SQL> insert into emp1 values(2,'ram',25);
SQL> insert into emp1 values(3,'lisa',26);
SQL> insert into emp2 values(3,'james',26);
SQL> insert into emp2 values(2,'ram',27);
INFORMATIVE TECH
SQL> insert into emp2 values(1,'Hari',24);
SQL> select * from emp1;
SQL> select * from emp2;
SQL> select * from emp1 union all select * from emp2;
SQL> select * from emp1 union select * from emp2;
SQL> select * from emp1 intersect select * from emp2;
SQL> select * from emp1 minus select * from emp2;
Practical No. 11
Execute queries using string functions
SQL> SELECT ASCII('t') AS ascii_value FROM dual;
SQL> SELECT LENGTH('Hello') AS string_length FROM dual;
SQL> select length('hello world') as character_length from dual;
SQL> SELECT LPAD('hello', 10, '*') AS left_padded FROM dual;
SQL> SELECT RPAD('hello', 10, '*') AS right_padded FROM dual;
SQL> SELECT CONCAT('hello', ' world') AS concatenated_string FROM dual;
SQL> SELECT REPLACE('hello world', 'world', 'Oracle') AS replaced_string FROM dual;
SQL> SELECT TRIM('r' FROM 'rrrrrhellorrrrr') AS trimmed_string FROM dual;
SQL> SELECT LTRIM(' hello') AS left_trimmed_string FROM dual;
SQL> SELECT RTRIM('hello ') AS right_trimmed_string FROM dual;
SQL> select concat('Jay','IITB') from dual;
SQL> select ltrim('Shreya','s') from dual;
SQL> select upper('raj') from dual;
SQL> select rpad('HR',10,'*') from dual;
Practical No. 12
Execute queries using Arithmetic functions
SQL> select abs(-363.4) from dual;
INFORMATIVE TECH
SQL> select ceil(2.83) from dual;
SQL> select floor(2.83) from dual;
SQL> select mod(21,4) from dual;
SQL> select power(5,2) from dual;
SQL> select round(2.553) from dual;
SQL> select sqrt(49) from dual;
SQL> select trunc(56.51234,2) from dual;
Practical No. 13
Implement queries using Date and Time functions
SQL> select sysdate from dual;
SQL> select last_day(sysdate) from dual;
SQL> SELECT SYSDATE AS Current_Date FROM DUAL;
SQL> SELECT
2 EXTRACT(YEAR FROM SYSDATE) AS Year,
3 EXTRACT(MONTH FROM SYSDATE) AS Month,
4 EXTRACT(DAY FROM SYSDATE) AS Day
5 FROM DUAL;
SQL> SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') AS Current_Time FROM DUAL;
SQL> SELECT
2 EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS Hour,
3 EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS Minute,
4 EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS Second
5 FROM DUAL;
Practical No. 14
Implement queries using Aggregate functions
SQL> create table emp(empno number(4),ename varchar(15),job varchar(10),mgr number(4),sal
number(8,2),comm number(5),deptno number(4));
INFORMATIVE TECH
SQL> insert into emp values(100,'ram','HR',1,3400,2000,10);
SQL> insert into emp values(101,'jay','HR',NULL,3400,null,10);
SQL> insert into emp values(102,'zoya','sales',NULL,3450,null,10);
SQL> insert into emp values(103,'john','sales',2,4050,1000,1);
SQL> select * from emp;
SQL> select min(sal) as minimum, max(sal) as maximum, sum(sal) as sum, avg(sal) as average from emp;
SQL> select count(distinct mgr) as no_of_manager from emp where mgr is not null;
SQL> select max(sal)-min(sal) as difference from emp;
SQL> select count(empno) as no_of_emp from emp where deptno=10 and comm>0;
SQL> select count(empno) from emp;
SQL> select count(comm) from emp;
SQL> select min(sal) from emp;
SQL> select count(empno) as no_of_emp ,min(sal) as minimum, max(sal) as maximum, sum(sal) as sum,
avg(sal) as average from emp;
SQL> select avg(sal) from emp;
SQL> select sum(sal) from emp;
SQL> select count(distinct deptno) from emp;
Practical No. 15
Execute queries for Ordering and Grouping data
SQL> create table emp(empno number primary key,ename varchar(15),deptno number(4),deptname
varchar(15),jobid number(6),salary number(7));
SQL> create table dept(deptno number primary key,empno number,deptname varchar(15),location
varchar(15),foreign key(empno) references emp(empno));
SQL> insert all
2 into emp values(1,'alice',101,'HR',1001,50000)
3 into emp values(2,'bob',102,'FC',1002,45000)
4 into emp values(3,'charlie',101,'HR',1003,60000)
5 into emp values(4,'david',103,'IT',1004,70000)
6 select * from dual;
INFORMATIVE TECH
SQL> insert all
2 into dept values(101,1,'HR','Malvan')
3 into dept values(102,2,'FC','Mumbai')
4 into dept values(103,4,'IT','Pune')
5 select * from dual;
SQL> select * from dept;
SQL> select deptname,count(empno) as no_of_emp from emp group by deptname;
SQL> select deptname,count(empno) as no_of_emp from emp where salary is not null group by
deptname;
SQL> select deptname,count(empno) as no_of_emp from emp group by deptname having
count(empno)>1;
SQL> select * from emp where salary>50000 order by salary asc;
SQL> select * from emp where salary>50000 order by salary desc;
SQL> select deptname,min(salary) as minsalary from emp group by deptname;
SQL> select deptname,sum(salary) as Totalsal from emp group by deptname;
SQL> select * from emp order by ename asc;
Practical No. 16
Implement SQL queries for Inner and Outer Join
SQL> create table emp(empno number primary key,ename varchar(15),deptno number(4),deptname
varchar(15),jobid number(6),salary number(7));
SQL> create table dept(deptno number primary key,empno number,deptname varchar(15),location
varchar(15),foreign key(empno) references emp(empno));
SQL> insert all
2 into emp values(1,'alice',101,'HR',1001,50000)
3 into emp values(2,'bob',102,'FC',1002,45000)
4 into emp values(3,'charlie',101,'HR',1003,60000)
5 into emp values(4,'david',103,'IT',1004,70000)
6 select * from dual;
SQL> insert all
INFORMATIVE TECH
2 into dept values(101,1,'HR','Malvan')
3 into dept values(102,2,'FC','Mumbai')
4 into dept values(103,4,'IT','Pune')
5 select * from dual;
SQL> select * from dept;
SQL> select * from emp;
SQL> select emp.empno,emp.ename,emp.deptno,dept.location from emp,dept where
emp.deptno=dept.deptno;
SQL> select e.empno,e.ename,e.salary,d.location from emp e,dept d where e.salary>50000;
SQL> select e.empno,e.ename,e.salary,d.location from emp e,dept d where e.salary>50000 and
d.deptno=e.deptno;
SQL> select a.ename,b.ename from emp a,emp b where a.empno=b.deptno;
SQL> select a.ename,b.ename from emp a,emp b where a.empno=b.empno;
SQL> select emp.empno,emp.ename,dept.deptname from emp left outer join dept on
emp.deptno=dept.deptno;
SQL> select emp.empno,emp.ename,dept.deptname from emp right outer join dept on
emp.deptno=dept.deptno;
SQL> select emp.empno,emp.ename,dept.deptname from emp full outer join dept on
emp.deptno=dept.deptno;
INFORMATIVE TECH