ASSIGNMENT DATABASE DEVELEPOR
CHAPTER # 01 ( WRITING BASIC SQL SELECT STATEMENT )
Lab1_6 select *
from departments;
Lab1_7 select employee_id,last_name,job_id,hire_date stardate
from employees;
Lab1_9 select job_id
from employees;
Lab1_10 select last_name || ', ' || job_id "Employee and Title"
from employees;
Lab1_11 select last_name || ', ' || job_id "Employee and Title"
from employees;
Lab1_12 select employee_id || ',' || first_name || ',' || last_name || ',' ||
email || ',' || phone_number || ',' || job_id || ',' || hire_date ||
',' || salary || ',' || department_id
from employees;
CHAPTER # 02 ( RESTRICTING AND SORTING DATA )
Lab2_1 select last_name,salary
from employees
where salary > 12000;
Lab2_3 select last_name,salary
from employees
where salary not between 5000 and 12000;
Lab2_4 select last_name,job_id,hire_date
from employees
where hire_date between '20-feb-1998' and '01-may-1998'
order by hire_date asc;
Lab2_5 select last_name,department_id
from employees
where department_id in (20,50)
order by last_name asc;
Lab2_6 select last_name "Employee",salary "Monthly Salary"
from employees
where salary between 5000 and 12000
and department_id in (20,50);
Lab2_7 select last_name,hire_date
from employees
where hire_date like '%94';
MUHAMMAD ARSALAN 1 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
Lab2_8 select last_name,job_id
from employees
where manager_id is null;
Lab2_9 select last_name,salary,commission_pct
from employees
where commission_pct is not null
order by salary desc,commission_pct desc;
Lab2_10 select last_name
from employees
where last_name like '__a%';
Lab2_11 select last_name
from employees
where last_name like '%a%'
and last_name like '%e%';
Lab2_12 select last_name,job_id,salary
from employees
where job_id like 'SA_REP'
or job_id like 'ST_CLERK'
and salary not in (2500,3500,7000);
Lab2_13 select last_name "Employee",salary "Monthly
Salary",commission_pct
from employees
where commission_pct in (0.2);
CHAPTER # 03 ( SINGLE ROW FUNCTIONS )
Lab3_1 select sysdate "date"
from dual;
Lab3_2 select employee_id,last_name,salary,salary+salary*0.15
"New Salary"
from employees;
Lab3_4 select employee_id,last_name,salary,salary+salary*0.15
"New Salary", salary+salary*.15 - salary "Increase"
from employees;
Lab3_5 select initcap(last_name) "Name", length(last_name)
from employees
where last_name like 'A%'
or last_name like 'J%'
or last_name like 'M%'
order by last_name;
Lab3_6 select last_name,trunc(months_between(sysdate,hire_date),0)
"MONTHS_WORKED"
MUHAMMAD ARSALAN 2 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
from employees
order by hire_date desc;
Lab3_7 select last_name|| ' earns ' ||to_char(salary,'$99,999.00')|
| ' monthly but wants' || to_char(salary*3,'$99,999.00')
"Dream Salaries"
from employees;
Lab3_8 select last_name,lpad(salary,15,'$') salary
from employees;
Lab3_9 select last_name,hire_date,to_char(next_day(add_months
(hire_date,6),'Monday'),'fmspth Day,"the" Ddspth "of"
Month, YYYY') review
from employees;
Lab3_10 select last_name,hire_date ,to_char(hire_date,'DAY') day
from employees
order by DAY;
Lab3_11 select last_name,nvl(to_char(commission_pct),'No Commission')
from employees;
Lab3_12
Lab3_13 select job_id,decode( job_id,
'AD_PRES' ,'A',
'ST_MAN' ,'B',
'IT_PROG' ,'C',
'SA_REP' ,'D',
'ST_CLERK' ,'E',
0)g
from employees
group by job_id;
Lab3_14 select job_id,case job_id
when 'AD_PRES' then 'A'
when 'ST_MAN' then 'B'
when 'IT_PROG' then 'C'
when 'SA_REP' then 'D'
when 'ST_CLERK' then 'E'
else '0'
end as g
from employees
group by job_id;
CHAPTER # 04 ( DISPLAYING DATA FROM MULTIPLE TABLES )
Lab4_1 select e.last_name, e.department_id, d.department_name
from employees e, departments d
where e.department_id = d.department_id;
Lab4_2 select distinct e.job_id, d.location_id
MUHAMMAD ARSALAN 3 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
from employees e, departments d
where e.department_id = d.department_id
and e.department_id = 80;
Lab4_3 select e.last_name, d.department_name, l.location_id, [Link]
from employees e, departments d, locations l
where e.department_id = d.department_id
and d.location_id = l.location_id
and e.commission_pct is not null;
Lab4_4 select e.last_name, d.department_name
from employees e, departments d
where e.department_id = d.department_id
and e.last_name like '%a%';
Lab4_5 select e.last_name, e.job_id, d.department_id, d.department_name
from employees e, departments d
where e.department_id = d.department_id
and d.location_id = 1800;
Lab4_6 select emp.last_name "Employee", emp.employee_id "Emp#",
mgr.last_name "Manager" , mgr.employee_id "Mgr#"
from employees emp, employees mgr
where emp.manager_id = mgr.employee_id;
Lab4_7 select emp.last_name "Employee", emp.employee_id "Emp#",
mgr.last_name "Manager" , mgr.employee_id "Mgr#"
from employees emp, employees mgr
where emp.manager_id = mgr.employee_id (+)
order by emp.employee_id asc;
Lab4_8 select emp.last_name "Employee", emp.employee_id "Emp#",
mgr.last_name "Manager" , mgr.employee_id "Mgr#"
from employees emp, employees mgr
where emp.manager_i d = mgr.employee_id (+)
order by emp.employee_id asc;
Lab4_9 select e.last_name, e.job_id, d.department_name,
[Link], j.grade_level
from employees e,departments d, job_grades j
where e.department_id = d.department_id
and [Link] between j.lowest_sal and j.highest_sal ;
Lab4_10 select last_name,hire_date
from employees
where hire_date >
( select hire_date
from employees
where last_name like 'Davies') ;
Lab4_11 select emp.last_name "Employee", emp.hire_date "Emp Hired",
mgr.last_name "Manager" , mgr.hire_date "Mgr Hired"
from employees emp, employees mgr
where emp.manager_id = mgr.employee_id
MUHAMMAD ARSALAN 4 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
and emp.hire_date < mgr.hire_date;
CHAPTER # 05 ( AGGREGATING DATA USING GROUP FUNCTIONS )
Lab5_4 select max(salary) "Maximum",min(salary) "Minimum",
sum(salary) "Sum" ,round(avg(salary),0) "Avarage"
from employees;
Lab5_5 select job_id,max(salary) "Maximum",min(salary) "Minimum",
sum(salary) "Sum", round(avg(salary),0) "Avarage"
from employees
group by job_id;
Lab5_6 select job_id,count(job_id)
from employees
group by job_id;
Lab5_7 select count(manager_id) "Numbers of Managers"
from employees
group by manager_id;
Lab5_8 select max(salary)-min(salary) difference
from employees;
Lab5_9 select manager_id,min(salary)
from employees
where manager_id is not null
group by manager_id
having min(salary) > 6000
order by min(salary) desc;
Lab5_10 select department_name "Name",location_id,
count(employee_id) "Number of People",round(avg(salary),2)
"Salary"
from employees,departments
where employees.department_id = departments.department_id
group by department_name,location_id
order by department_name asc;
Lab5_11 select count(employee_id),
sum(decode( to_char(hire_date,'YYYY'),1995,1,0)) "1995",
sum(decode( to_char(hire_date,'YYYY'),1996,1,0)) "1996",
sum(decode( to_char(hire_date,'YYYY'),1997,1,0)) "1997",
sum(decode( to_char(hire_date,'YYYY'),1998,1,0)) "1998"
from employees;
Lab_12 select job_id,
sum(decode(department_id,20,salary)) "dept 20",
sum(decode(department_id,50,salary)) "dept 50",
sum(decode(department_id,80,salary)) "dept 80",
MUHAMMAD ARSALAN 5 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
sum(decode(department_id,90,salary)) "dept 90",
sum(salary) "Total"
from employees
group by job_id;
CHAPTER # 06 ( SUBQUERIES )
Lab6_1 select last_name,hire_date
from employees
where department_id =
( select department_id
from employees
where last_name like 'Zlotkey')
and last_name not like 'Zlotkey';
Lab6_2 select employee_id,last_name,salary
from employees
where salary >
( select avg(salary)
from employees )
order by salary asc;
Lab6_3 select employee_id,last_name
from employees
where department_id in
( select department_id
from employees
where last_name like '%au%') ;
Lab6_4 select e.last_name,d.department_id,e.job_id
from employees e,departments d
where e.department_id = d.department_id
and d.location_id =
( select location_id
from departments
where location_id = 1700
group by location_id ) ;
Lab6_5 select last_name,salary
from employees
where manager_id =
( select employee_id
from employees
where last_name like 'King'
and job_id like 'AD_PRES' ) ;
Lab6_6 select department_id,last_name,job_id
from employees
where department_id =
( select department_id
from departments
where department_name like 'Executive' ) ;
MUHAMMAD ARSALAN 6 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
Lab6_7 select employee_id,last_name,salary
from employees
where department_id in
( select department_id
from employees
where last_name like '%a%'
and last_name like '%u%' )
and salary >
( select avg(salary)
from employees );
CHAPTER # 07 ( PRODUCING READABLE OUTPUT WITH iSQL*PLUS )
Lab7_3(a) define low_date = 01/01/1998
define high_date = 01/01/1999
i Lab7_3(b)
Lab7_4 select e.last_name "Employee Name", e.job_id,
d.department_name
from employees e, departments d
where e.department_id = d.department_id
and d.location_id = &loc_numbers;
Lab7_5
CHAPTER # 08 ( MANIPULATING DATA )
DATA MANIPULATING LANGUAGE ( DML)
Lab8_1 create table my_empolyee
(id number(4) not null, last_name varchar2(25),
first_name varchar2(25), user_id varchar2(8), salary number(9,2) );
Lab8_2 describe my_employee
Lab8_3 insert into my_employee
Values ( 1, ‘Patel’, ‘Ralph’, ‘rpatel’, 895 )
Lab8_4 insert into my_employee
( id, last_name, first_name, user_id, salary )
Values ( 2, ‘Dancs’, ‘Betty’, ‘bdancs’, 860 )
Lab8_5 select * from my_employees;
Lab8_6 set echo off
set verify off
insert into my_employee
values ( &p_id, ‘&p_last_name’, ‘&p_first_name’,
lower( substr(‘&p_first_name’, 1,1) || substr(‘&p_last_name’, 1,7)
), &p_salary );
set verify on
MUHAMMAD ARSALAN 7 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
set echo on
Lab8_7 set echo off
set verify off
insert into my_employee
values ( &p_id, ‘&p_last_name’, ‘&p_first_name’,
lower( substr(‘&p_first_name’, 1,1) || substr(‘&p_last_name’, 1,7)
), &p_salary );
set verify on
set echo on
Lab8_8 select * from my_employees;
Lab8_9 commit;
Lab8_10 update my_employee set last_name = ‘Drexler’ where id =3;
Lab8_11 update my_employee set salary = 1000 where salary < 900;
Lab8_12 select last_name, salary from my_employee;
Lab8_13 delete from my_employee where last_name = ‘Dancs’;
Lab8_14 select * from my_employees;
Lab8_15 commit;
Lab8_16 set echo off
set verify off
insert into my_employee
values ( &p_id, ‘&p_last_name’, ‘&p_first_name’,
lower( substr(‘&p_first_name’, 1,1) || substr(‘&p_last_name’, 1,7)
), &p_salary );
set verify on
set echo on
Lab8_17 select * from my_employees;
Lab8_18 save_point step_18;
Lab8_19 delete from my_employee;
Lab8_20 select * from my_employees;
Lab8_21 rollback to step_18;
Lab8_22 select * from my_employees;
Lab8_23 commit;
CHAPTER # 09 ( CREATING AND MANAGING TABLES )
DATA CONTROL LANGUAGE ( DCL)
MUHAMMAD ARSALAN 8 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
Lab9_1 (a) create table dept ( id number(7), name varchar2 (25) );
(b) describe dept
Lab9_2 insert into dept
select department_id, department_name
from departments;
Lab9_3 create table emp
( id number(7), last_name varchar2(25),
first_name varchar2(25), dept_id number(7) );
describe emp
Lab9_4 alter table emp modify ( last_name varchar2(50) );
describe emp
Lab9_5 select table_name from user_tables
where table_name in (‘emp’, ‘dept’ );
Lab9_6 create table employees2 as
select employee_id id, first_name, last_name, salary,
department_id dept_id
from employees;
Lab9_7 drop table emp;
Lab9_8 rename employees2 to emp;
Lab9_9 comment on table emp is ‘ Employees Information’;
comment on table dept is ‘ Department Information’;
select * from user_tab_comments
where table_name = ‘dept’ or table_name = ‘emp’ ;
Lab9_10 alter table emp drop column first_name;
describe emp
Lab9_11 alter table emp set unused (dept_id);
describe emp
Lab9_12 alter table emp drop unused columns;
describe emp
CHAPTER # 10 ( INCLUDING CONSTRAINTS )
Lab10_1 alter table emp
add constraint my_emp_id_pk primary key (id);
Lab10_2 alter table dept
add constraint my_dept_id_pk primary key (id);
Lab10_3 alter table emp add ( dept_id number(7) );
alter table emp
MUHAMMAD ARSALAN 9 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
add constraint dept_id_fk forign key(dept_id) refrence dept(id);
Lab10_4 select constraint_name, constraint_type from user_constraints
where ( ‘emp’, ‘dept’);
Lab10_5 select object_name, object_type from user_objects
where object_name like ‘emp%’ or object_name like ‘dept%’;
Lab10_6 alter table emp add commission number(2,2)
Constraint my_emp_comm_ck check (commission >= 0) ;
CHAPTER # 11 ( CREATING VIEWS )
Lab11_1 create or replace view employees_vu as
select employee_id, last_name employee, department_id
from employees;
Lab11_2 select * from employees_vu;
Lab11_3 set long 600 select view_name, text from user_views;
Lab11_4 select employee, department_id from employee_vu;
Lab11_5 create view dept50 as
select employee_id empno, last_name employee,
department_id deptno
from employees where department_id = 50
with check option constraint emp_dept_50;
Lab11_6 describe dept50 select * from dept50;
Lab11_7 update dept50 set deptno = 80
where employee = ‘Matos’;
Lab11_8 create or replace view salary_vu as
select e.last_name “Employee”, d.department_name “Department”
,[Link] “salary”, j.grade_level “Grades”
from employees e, departments d, job_grades j
where e.department_id = d.department_id
and [Link] between j.lowest_sal and j.highest_sal;
CHAPTER # 12 ( OTHER DATABASE OBJECTS )
Lab12_1 create sequence dept_id_seq
Start with 200
increament by 10
maxvalue 1000;
Lab12_2 select sequence_name, max_value, increament_by, last_name
from user_sequence;
MUHAMMAD ARSALAN 10 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
Lab12_3 insert into dept values (dept_id_seq.nextval, ‘Education’ );
insert into dept values (dept_id_seq.nextval, ‘Administration’ );
Lab12_4 create index emp_dept_id_idx on emp (dept_id);
Lab12_5 select index_name, table_name, uniqueness
from user_indexes
where table_name = ‘emp’ ;
CHAPTER # 13 ( CONTROLLING USER ACCESS )
Lab13_6 Team 2 executes the grant statement.
grant select on departments to <user1>;
Team 1 executes the grant statement.
grant select on departments to <user2>;
Lab13_7 select * from departments;
Lab13_8 Team 1 executes this insert statement.
Insert into departments (department_id, department_name )
Values ( 500, ‘Eduacation’ ); commit;
Team 2 executes this insert statement.
Insert into departments ( department_id, department_name )
Values ( 510, ‘Administration’ ); commit;
Lab13_9 Team 1 create a synonym named team2
Create synonym team1 for <user2>.departments;
Team 2 create a synonym named team1
Create synonym team2 for <user1>.departments;
Lab13_10 Team 1 executes this select statement.
Select * from team2;
Team 2 executes this select statement.
Select * from team1;
Lab13_11 select table_name from user_tables;
Lab13_12 select table_name, owner from all_tables
where owner <> <your account>;
Lab13_13 Team 1 revokes the previlage.
Revoke select on departments from user2;
Team 2 revokes the previlage.
Revoke select on departments from user1;
Lab13_14 Team 1 executes this delete statement.
Delete from departments
where department_id = 500 ; commit;
Team 2 executes this delete statement.
Delete from departments
MUHAMMAD ARSALAN 11 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO
ASSIGNMENT DATABASE DEVELEPOR
where department_id = 510 ; commit;
MUHAMMAD ARSALAN 12 BCS-III (P.M)
ROLL # 2K8/CSM/203 SIR AFTAB CHANDIO