-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSQL Assignment-1 Answers.txt
More file actions
62 lines (56 loc) · 3.97 KB
/
SQL Assignment-1 Answers.txt
File metadata and controls
62 lines (56 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
create table dept(deptno number(2,0),dname varchar2(14),loc varchar2(13),constraint pk_dept primary key (deptno))
create table emp(empno number(4,0),ename varchar2(10),job varchar2(9),mgr number(4,0),hiredate date,sal number(7,2),comm number(7,2),deptno number(2,0),
constraint pk_emp primary key (empno),constraint fk_deptno foreign key (deptno) references dept (deptno))
insert into DEPT(DEPTNO, DNAME, LOC) values(10, 'ACCOUNTING', 'NEW YORK');
insert into dept values(20, 'RESEARCH', 'DALLAS');
insert into dept values(30, 'SALES', 'CHICAGO');
insert into dept values(40, 'OPERATIONS', 'BOSTON');
insert into emp values(7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981','dd-mm-yyyy'), 5000, null, 10)
insert into emp values(7698, 'BLAKE', 'MANAGER', 7839, to_date('1-5-1981','dd-mm-yyyy'), 2850, null, 30)
insert into emp values(7782, 'CLARK', 'MANAGER', 7839, to_date('9-6-1981','dd-mm-yyyy'), 2450, null, 10)
insert into emp values(7566, 'JONES', 'MANAGER', 7839, to_date('2-4-1981','dd-mm-yyyy'), 2975, null, 20)
insert into emp values(7788, 'SCOTT', 'ANALYST', 7566, to_date('13-JUL-87','dd-mm-rr') , 3000, null, 20)
insert into emp values(7902, 'FORD', 'ANALYST', 7566, to_date('3-12-1981','dd-mm-yyyy'), 3000, null, 20)
insert into emp values(7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980','dd-mm-yyyy'), 800, null, 20)
insert into emp values(7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-2-1981','dd-mm-yyyy'), 1600, 300, 30)
insert into emp values(7521, 'WARD', 'SALESMAN', 7698, to_date('22-2-1981','dd-mm-yyyy'), 1250, 500, 30)
insert into emp values(7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-9-1981','dd-mm-yyyy'), 1250, 1400, 30)
insert into emp values(7844, 'TURNER', 'SALESMAN', 7698, to_date('8-9-1981','dd-mm-yyyy'), 1500, 0, 30)
insert into emp values(7876, 'ADAMS', 'CLERK', 7788, to_date('13-JUL-87', 'dd-mm-rr') , 1100, null, 20)
insert into emp values(7900, 'JAMES', 'CLERK', 7698, to_date('3-12-1981','dd-mm-yyyy'), 950, null, 30)
insert into emp values(7934, 'MILLER', 'CLERK', 7782, to_date('23-1-1982','dd-mm-yyyy'), 1300, null, 10)
select count(*) as total_employees from emp;
select count(*) as total_departments from dept;
select * from emp;
select * from dept;
select sum(sal) as total_salary from emp;
select sum(comm) as total_commission from emp where comm is not null;
select distinct job from emp where comm is not null;
select sysdate from dual;
select avg(sal) as average_salary from emp;
select deptno, count(*) as employee_count from emp group by deptno;
select deptno, sum(sal) as total_salary from emp group by deptno;
select job, count(*) as employee_count from emp group by job;
select job, avg(sal) as average_salary from emp group by job;
select empno, ename, to_char(hiredate, 'dd') as hire_day, to_char(hiredate, 'mm') as hire_month, to_char(hiredate, 'yyyy') as hire_year from emp;
select * from emp order by deptno;
select * from emp order by job;
select * from emp order by sal desc;
select * from emp order by deptno asc, sal desc;
select count(*) as six_char_employees from emp where length(ename) = 6;
select max(sal) as max_salary, min(sal) as min_salary from emp;
select deptno, max(sal) as max_salary, min(sal) as min_salary, avg(sal) as avg_salary, sum(sal) as total_salary from emp group by deptno;
select * from emp order by hiredate;
select * from emp where hiredate = (select max(hiredate) from emp);
select * from emp where hiredate = (select min(hiredate) from emp);
select * from emp order by extract(year from hiredate) desc, deptno asc;
select * from emp where sal >= (select avg(sal) from emp);
select * from emp where sal <= (select avg(sal) from emp);
select * from emp where sal between 2000 and 4000;
select * from emp where sal = (select max(sal) from emp)
union
select * from emp where sal = (select min(sal) from emp);
select to_char(hiredate, 'mm') as joining_month, count(*) as gifts_needed
from emp
where to_char(hiredate, 'mm') = to_char(add_months(sysdate, 1), 'mm')
group by to_char(hiredate, 'mm');