-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathselect_exam1.sql
More file actions
156 lines (105 loc) · 3.55 KB
/
select_exam1.sql
File metadata and controls
156 lines (105 loc) · 3.55 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
--EMP 테이블과 DEPT 테이블을 이용해서 풀이해 주세요.
--1. 덧셈연산자를 이용하여
-- 모든 사원에 대해서 $300의 급여 인상을 계산한 후
-- 사원의 이름, 급여, 인상된 급여를 출력하시오.
select ename, sal, sal+300 as addSal
from emp
;
--2. 사원의 이름, 급여, 연간 총 수입을
-- 총 수입이 많은 것부터 작은 순으로 출력하시오, -> 내림차순
-- 연간 총수입은 월급에 12를 곱한 후 $100의 상여금을 더해서 계산하시오.
select ename, sal, sal*12+100 as Income
from emp
--order by sal*12+100 desc
order by income desc
;
--3. 급여가 2000을 넘는 사원의
-- 이름과 급여를 표현,
-- 급여가 많은 것부터 작은 순으로 출력하시오.
select ename, sal
from emp
where sal > 2000
order by sal desc
;
--4. 사원번호가 7788인
-- 사원의 이름과 부서번호를 출력하시오.
select ename, deptno
from emp
where empno=7788
;
--5. 급여가 2000에서 3000 사이에 포함되지 않는
-- 사원의 이름과 급여를 출력하시오.
select ename, sal
from emp
where sal not between 2000 and 3000
;
--6. 1981년 2월 20일 부터 1981년 5월 1일 사이에 입사한
-- 사원의 이름, 담당업무, 입사일을 출력하시오.
select ename, job, hiredate
from emp
where hiredate between '1981-02-20' and '1981-05-01'
;
--7. 부서번호가 20 및 30에 속한 --> 20에 속하고 30 속하는
-- 사원의 이름과 부서번호를 출력,
-- 이름을 기준(내림차순)으로 영문자순으로 출력하시오.
select ename, deptno
from emp
--where deptno=20 or deptno=30
where deptno in (20, 30)
order by ename desc
;
--8. 사원의 급여가 2000에서 3000사이에 포함"되고" -> and - 조건1
-- 부서번호가 20 또는 30인 - 조건2
-- 사원의 이름, 급여와 부서번호를 출력,
-- 이름순(오름차순)으로 출력하시오.
select ename, sal, deptno
from emp
--where (sal>=2000 and sal <= 3000) and (deptno=20 or deptno=30)
where sal between 2000 and 3000 and deptno in (20, 30)
order by ename
;
--9. 1981년도에 입사한 --> YY/MM/DD --> '81%' to_char()
-- 사원의 이름과 입사일을 출력하시오.
-- (like 연산자와 와일드카드 사용)
select ename, hiredate
from emp
where hiredate like '81%'
;
--10. 관리자가 없는 사원의 이름과 담당 업무를 출력하시오.
select ename, job
from emp
where mgr is null
;
--11. 커미션을 받을 수 있는 자격이 되는
-- 사원의 이름, 급여, 커미션을 출력하되
-- 급여 및 커미션을 기준으로 내림차순 정렬하여 표시하시오.
select ename, sal, comm
from emp
where comm is not null
order by sal desc, comm desc
;
--12. 이름의 세번째 문자가 R인 --> '__R%'
-- 사원의 이름을 표시하시오.
select ename
from emp
where ename like '__R%'
;
--13. 이름에 A와 E를 모두 포함하고 있는 '%A%' and '%E%'
-- 사원의 이름을 표시하시오.
select ename
from emp
where ename like '%A%' and ename like '%E%'
;
--14. 담당업무가 CLERK, 또는 SALESMAN"이면서" 조건1 and
-- 급여가 $1600, $950 또는 $1300이 아닌
-- 사원의 이름, 담당업무, 급여를 출력하시오.
select ename, job, sal
from emp
--where (job='CLERK' or job='SALESMAN') and sal not in (1600, 950, 1300)
where job in ('CLERK', 'SALESMAN') and sal not in (1600, 950, 1300)
;
--15. 커미션이 $500 이상인 사원의 이름과 급여 및 커미션을 출력하시오.
select ename, sal, comm
from emp
where comm>=500
;