오답노트/DBMS
데이터베이스(Oracle)_Select 연습문제
개발..너...
2022. 4. 8. 14:53
▶문제1
employees 테이블에서 department_id가 100이고 job_id가 FI_MGR인 사람 조회
1
2
3
4
5
|
SELECT *
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 100
AND JOB_ID = 'FI_MGR'
;
|
cs |
▶문제2
employees 테이블에서 first_name이 Guy인 사람의 employee_id, first_name, last_name, job_id를 조회
1
2
3
4
|
SELECT EMPLOYEE_ID , FIRST_NAME , LAST_NAME , JOB_ID
FROM EMPLOYEES e
WHERE FIRST_NAME = 'Guy'
;
|
cs |
▶문제3
employees 테이블에서 Department_id가 50이고 manager_id가 121인 사람의 employee_id, first_name, last_name, job_id를 조회
1
2
3
4
5
|
SELECT EMPLOYEE_ID , FIRST_NAME , LAST_NAME , JOB_ID
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 50
AND MANAGER_ID = 121
;
|
cs |
▶문제4
employees 테이블에서 Salary가 4000~8000인 사람의 first_name, last_name, salary 를 구하라
1
2
3
4
|
SELECT FIRST_NAME , LAST_NAME , SALARY
FROM EMPLOYEES e
WHERE SALARY BETWEEN 4000 AND 8000
;
|
cs |
▶문제5
employees 테이블에서 employee_id, first_name, last_name, job_id, manager_id, salary를 조회하면서
department_id가 10또는 30또는 100또는 90에 속하고,
salary가 5000이상 10000이하이고
manager_id가 100이 아닌 사람을 조회하라
1
2
3
4
5
6
|
SELECT EMPLOYEE_ID , FIRST_NAME , LAST_NAME, JOB_ID , MANAGER_ID , SALARY
FROM EMPLOYEES e
WHERE DEPARTMENT_ID in(10,30,100,90)
AND SALARY BETWEEN 5000 AND 10000
AND NOT (MANAGER_ID = 100)
;
|
cs |
▶문제6
Employees 테이블에서 fist_name count와 중복을 제거한 first_name count 조회
1
2
3
|
SELECT count(FIRST_NAME), count (DISTINCT FIRST_NAME)
FROM EMPLOYEES e
;
|
cs |
▶문제7
Employees 테이블에서 department id 80인 급여(Salary) 평균을 구하라
1
2
3
4
|
SELECT avg(SALARY)
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 80
;
|
cs |
▶문제8
salary가 12000 이상 되는 직원들의 last_name, salary를 조회하고 salary만 오름차순으로 조회하라
1
2
3
4
5
|
SELECT LAST_NAME , SALARY
FROM EMPLOYEES e
WHERE SALARY >= 12000
ORDER BY SALARY
;
|
cs |
▶문제9
사원 번호가 176인 사람의 last_name, department_id 조회
▶문제10
연봉이 5000에서 12000의 범위 이외인 사람들의 last_name 및 salary 조회
between 문에선 not 기호는 적용되지않는다.
▶문제11
20번 부서 또는 50번 부서에서 근무하는 모든 사원들의 last_name, department_id를 조회하고 last_name만 알파벳 순으로 조회
▶문제12
20번 및 50번 부서에서 근무하며, 연봉이 5000이상 12000 사이인 사원들의 last_name, salary를 조회
▶문제13
last_name 첫 글자가 A인 사원들의 last_name을 조회
▶문제14
manager_id가 없는 사람의 last_name과 job_id를 조회
▶문제15
커미션이 있는 모든 사원들의 last_name, salary, 커미션을 조회하고 연봉을 역순으로 조회한다.
▶문제16
Employees 테이블에서 King의 정보를 소문자로 검색하고(검색조건),
사원번호, 담당업무(소문자출력), 부서번호를 출력하라
▶문제17
Employees 테이블에서 King의 정보를 대문자로 검색하고(검색조건)
사원번호, 성명, 담당업무(대문자출력), 부서번호를 출력하라
▶문제18
Department 테이블에서 부서번호와 부서이름 위치번호(LOCATION_ID)를 같은칸에 연결하여 출력하라
혹은 concat을 사용해도 된다.
concat은 문자열 2개만 합칠 수 있으니 concat을 2개 사용함
▶문제19
Employees 테이블에서 30번 부서 중 사원번호, 이름, 담당 아이디를 연결하여 출력하여라
▶문제20
Employees 테이블에서 SALARY + SALARY*COMMISION_PCT 의 합이 10000 이상이면 'good' , 5000이상이면 'average' 이라고 출력하며, 1이상 5000 미만이면 'bad'를 출력, 0이면 'no good'으로 평가를 검색조건으로 하고
employee id, first name, salary, commission_pct, salary+salary*commission_pct를 출력하며
알리아스는 grade로 설정하라
▶문제21
부서별 사원수와 평균 급여 구하기
▶문제22
부서별과 직급별로 사원수, 평균 급여를 구하라
▶문제23
employees 테이블에서 job_id가 'SA'로 시작하는 사람에 대하여 급여의 평균, 최고액, 최저액, 합계를 출력하라
▶문제24
employees 테이블에서 등록되어 있는 사원수, commission_pct가 null이 아닌 인원수, salary 평균, 등록되어있는 부서의 수를 출력하시오.
COUNT라고 하는 함수가 NULL이 아닌 값을 가져오기때문에 where절이 필요없다.
또한, 등록되어있는 부서수를 확인을 하기위해 중복을 제거하고 COUNT를 통해 NULL을 제거한 숫자를 세준다.
▶문제25
employees 테이블에서 부서별 인원수, 평균급여, 최저급여, 최고급여, 급여의 합을 출력하라
▶문제26
employees 테이블에서 부서별, 업무별로 인원수, 평균급여, 급여의 합, 부서, 업무를 출력하라
▶문제27
employees 테이블에서 부서 인원이 4명보다 많은 부서의 부서번호, 인원수, 급여의 합을 출력하라
▶문제28
employees 테이블에서 급여가 최대 10000이상인 부서에 대해서, 부서번호, 평균급여, 급여의 합을 출력하라
이상의 부등호는 >=, 이하는 <=이다.
부등호를 다르게 입력하면 오류가난다.
▶문제29
employees 테이블에서 업무별 급여의 평균이 10000이상인 업무에 대해서 업무명, 평균급여, 급여의 합을 구하여 출력하라
▶문제30
employees 테이블에서 전체 월급이 10000을 초과하는 각 업무에 대해서 업무와 월급의 합계를 출력하라. 단, 업무가 'SA_'로 시작하는 업무는 제외하고, 월 급여 합계로 내림차순으로 정렬하라
▶문제31
각 job_id별 최대급여, 최소급여, 급여 총 합 및 평균 급여를 job_id 내림차순으로 조회하라.
▶문제32
employees 테이블에서 동일한 직업(job_id)를 가진 사원들의 총 수를 조회하라.
▶문제33
매니저의 사번 및 그 매니저가 관리하는 직원들 중 최소 연봉을 받는 사원의 연봉을 조회하라
매니저가 없는 사람은 제외하고 최소 연봉 기준 역순으로 조회하라