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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
-- 부서번호가 60인 직원의 사원번호,이름,월급을 출력하라
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY
FROM HR_EMPLOYEES
WHERE DEPARTMENT_ID=60

-- 사원번호가 127인 사람의 이름, 입사일, 부서번호를 출력하라
SELECT FIRST_NAME, HIRE_DATE, DEPARTMENT_ID
FROM HR_EMPLOYEES
WHERE EMPLOYEE_ID=127

-- 이름의 JOHN인 사람의 모든 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE FIRST_NAME='JOHN'

-- 입사일이 97년 1월 5일인 사원의 이름, 부서번호, 월급을 출력하라
SELECT FIRST_NAME, DEPARTMENT_ID, SALARY
FROM HR_EMPLOYEES
WHERE HIRE_DATE='1997-01-05'

-- 직원이 매니저가 아닌 사람의 모든 정보를 출력하라
SELECT EMP1.*
FROM HR_EMPLOYEES EMP1 INNER JOIN HR_JOBS JOB1
ON EMP1.JOB_ID = JOB1.JOB_ID
WHERE JOB1.JOB_TITLE LIKE '%MANAGER%'

-- 입사일이 97년 1월 2일 이후인 사원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE HIRE_DATE>'1997-01-02'

-- 급여가 6000 이상인 사람의 이름, 급여, 부서번호를 출력하라
SELECT FIRST_NAME,SALARY,DEPARTMENT_ID
FROM HR_EMPLOYEES
WHERE SALARY>6000

-- 부서번호가 80 이상인 사원의 모든 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE DEPARTMENT_ID>=80

-- 이름이 k로 시작하는 사람보다 높은 이름을 가진 사원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE FIRST_NAME>'K%'

-- 입사일이 97/12/10 보다 먼저 입사한 사람들의 모든 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE HIRE_DATE>'1997-12-10'

-- 직원번호가 127보다 작거나 같은 직원의 입사번호와 이름을 출력하라
SELECT EMPLOYEE_ID, FIRST_NAME
FROM HR_EMPLOYEES
WHERE EMPLOYEE_ID<=127

-- 입사일이 97/01/01보다 늦고  00/12/07보다 빠른 사원의 이름,월급,부서번호를 출력하라
SELECT FIRST_NAME,SALARY,DEPARTMENT_ID
FROM HR_EMPLOYEES
WHERE HIRE_DATE BETWEEN '1997-01-01' AND '2000-12-07'

-- 급여가 5000보다 크고 8000보다 작은 사람의 이름,직업,급여를 출력하라
SELECT FIRST_NAME, JOB_ID, SALARY
FROM HR_EMPLOYEES
WHERE SALARY BETWEEN 5000 AND 8000

-- 사원번호가 120~130 이외의 사원의 모든 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE NOT EMPLOYEE_ID BETWEEN 120 AND 130

-- 이름의 B와 J 사이인 직원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE FIRST_NAME BETWEEN 'B' AND 'J'

-- 입사일 97년 이외에 입사한 사람의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE YEAR(HIRE_DATE) != 1997

-- 직업이 MANAGER 와 SALEMAN인 사람인 모든 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES EMP1 INNER JOIN HR_JOBS JOB1
ON EMP1.JOB_ID = JOB1.JOB_ID
WHERE JOB1.JOB_TITLE LIKE '%MANAGER%' OR JOB1.JOB_TITLE LIKE '%SALEMAN%'

-- 부서번호 60,90을 제외한 사원의 이름, 부서번호, 사원번호를 출력하라
SELECT FIRST_NAME,DEPARTMENT_ID,EMPLOYEE_ID
FROM HR_EMPLOYEES
WHERE NOT DEPARTMENT_ID IN (60,90)

-- S로 시작하는 사원의 사원번호, 이름, 입사일, 부서번호를 출력하라
SELECT EMPLOYEE_ID, FIRST_NAME, HIRE_DATE, DEPARTMENT_ID
FROM HR_EMPLOYEES
WHERE FIRST_NAME LIKE 'S%'

-- 입사일이 2000년도인 직원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE YEAR(HIRE_DATE) = 2000

-- 이름이 J로 시작하고 마지막 글자가 N인 사원의 정보를 출력하라
-- 조건1. 이름은 4자리 이다
SELECT *
FROM HR_EMPLOYEES
WHERE FIRST_NAME LIKE 'J__N'

-- 첫번째 문자를 관계없고, 두번째 문자가 A인 직원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE FIRST_NAME LIKE '_A%'

-- 커미션이 NULL인 사원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE COMMISSION_PCT IS NULL

-- 커미션이 NULL이 아닌 사원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES
WHERE COMMISSION_PCT IS NOT NULL

-- 부서번호가 100이고 급여가 5000 이상인 직원의 이름,부서,월급을 출력하라
SELECT FIRST_NAME, DEPARTMENT_ID, SALARY
FROM HR_EMPLOYEES
WHERE DEPARTMENT_ID = 100 AND SALARY >= 5000

-- 첫글자가 K로 시작하거나 부서번호가 30인 사원의 사원번호, 이름, 부서번호를 출력하라
SELECT EMPLOYEE_ID, FIRST_NAME, DEPARTMENT_ID
FROM HR_EMPLOYEES
WHERE FIRST_NAME LIKE 'K%'

-- 급여가 5000이상이고 부서가 100인 사원중 직원이 MANAGER인 사원의 정보를 출력하라
SELECT *
FROM HR_EMPLOYEES EMP1 INNER JOIN HR_JOBS JOB2
ON EMP1.JOB_ID = JOB2.JOB_ID
WHERE SALARY >5000 AND DEPARTMENT_ID = 100 AND JOB2.JOB_TITLE LIKE '%MANAGER%'

-- 부서번호가 100인 사원을 사원번호순으로 정렬
SELECT *
FROM HR_EMPLOYEES
WHERE DEPARTMENT_ID = 100
ORDER BY EMPLOYEE_ID ASC

-- 급여 순서가 많은 순으로 정렬
SELECT *
FROM HR_EMPLOYEES
ORDER BY SALARY DESC

-- 부서번호로 오름차순정렬후 급여 내림차순정렬
SELECT *
FROM HR_EMPLOYEES
ORDER BY DEPARTMENT_ID ASC , SALARY DESC

-- 부서번호 내림차순, 이름 오름차순, 급여 내림차순 출력
SELECT *
FROM HR_EMPLOYEES
ORDER BY DEPARTMENT_ID DESC, FIRST_NAME ASC, SALARY DESC

-- 사원의 이름, 급여, 커미션 금액, 총액을 구하여 총액 내림차순 출력
-- 커미션이 NULL인 사람은 제외
SELECT FIRST_NAME, SALARY, COMMISSION_PCT*SALARY, SALARY+COMMISSION_PCT*SALARY
FROM HR_EMPLOYEES
WHERE COMMISSION_PCT IS NOT NULL

-- 50번 부서의 모든 직원들에게 13%트의 보너스를 지부라기로 했다. 이름, 급여, 보너스, 금액, 부서번호를 출력하라
SELECT FIRST_NAME, SALARY, SALARY*0.13, SALARY*1.13, DEPARTMENT_ID
FROM HR_EMPLOYEES
WHERE DEPARTMENT_ID = 50

-- 60번 부서의 연봉을 계산하여 이름, 부서번호, 급여, 연봉을 출력하라
-- 연말에 150%의 보너르를 지급한다
SELECT FIRST_NAME, DEPARTMENT_ID, SALARY, 13.5*SALARY
FROM HR_EMPLOYEES
WHERE DEPARTMENT_ID = 60