본문 바로가기

과제

Oracle 조회 점검 과제

1. departments 테이블의 구조를 캡쳐하여 표시

 

 

2. employees 테이블의 모든 레코드를 표시

select * from employees;

 

 

3. employees 테이블의 employee_id, last_name, hire_date, salary 컬럼의 데이터만 표시

select employee_id, last_name, hire_date, salary from employees;

 

 

4. employees 테이블에서 last_name, salary, 그리고 salary*12의 값을 표시

select last_name, salary, salary*12 from employees;

 

 

5. employees 테이블에서 last_name은 이름으로, salary는 월급으로, 월급에 12를 곱한 값은 연봉으로 별칭을 사용하여 표기하시오.

select last_name "이름", salary "월급", salary*12 "연봉" from employees;

 

 

6. nvl을 이용하여 employees 테이블의 commission_pct는 null이 있습니다. 이 부분을 널이 아닌 0으로 표기를 바꾸어 연봉에 커미션 퍼센트를 더한 결과를 표시하시요.

select salary*12*(1+nvl(commission_pct, 0)) from employees;

 

 

7. employees 테이블에서 last_name과 salary를 1개의 컬럼 형태로 연결하여 결과를 표시하시요.

select last_name||', '|| salary from employees;

 

 

8. employees 테이블에서 job_id의 중복을 제거하여 표시하시요.

select DISTICNT job_id from employees;

 

 

9. employees 테이블에서 월급이 10000 이상인 사원의 사원번호 이름, 직업, 월급을 출력하시요.

select employee_id, last_name, job_id, salary from employees where salary>=10000;

 

 

10. employees 테이블에서 입사일이 2008년도에 입사한 사원의 사원번호, 이름, 월급, 입사일을 출력하시요. → 대신 2012년도에 입사한 사람을 찾는다.

select employee_id, last_name, salary, hire_date from employees where hire_date BETWEEN TO_DATE('20120101','yyyymmdd')and TO_DATE('20121231','yyyymmdd');

 

 

11. employees 테이블에서 월급이 7000과 8000 사이에 있는 사원을 표시하시요.

select last_name from employees where salary BETWEEN 7000 and 8000;

 

 

12. employees 테이블에서 2007년도부터 2008년도 사이에 입사한 사원을 표시하시요. → 2011년~2012년으로 대체

select last_name from employees where hire_date BETWEEN TO_DATE(20110101,'yyyymmdd') and TO_DATE(20121231,'yyyymmdd');

 

 

13. employees 테이블에서 사원번호가 100 또는 200 또는 300인 사원을 표시하시요.

select last_name from employees where employee_id in (100, 200, 300);

 

 

14. employees 테이블에서 입사일이 ‘2001/01/13’ 또는 ‘2007/02/07’인 사원 검색

select last_name from employees where hire_date in (TO_DATE(20160205,'yyyymmdd'), TO_DATE(20170207,'yyyymmdd'));

 

 

15. 이름이 대문자 ‘J’로 시작하는 사원 검색

select last_name from employees where last_name like 'J%';

 

 

16. ‘ai’라는 문자가 포함된 이름을 가진 사원 검색.

select last_name from employees where last_name like '%ai%';

 

 

17. ‘in’으로 끝나는 이름을 가진 사원 검색.

select last_name from employees where last_name like '%in';

 

 

18. 사원들 중 두번째 문자가 ‘b’인 사원 검색

select last_name from employees where last_name like '_b%';

 

 

19. 이름이 6글자이고, 마지막에 소문자 ‘d’로 끝나는 사원 검색.

select last_name from employees where last_name like '_____d';

 

 

20. 사원이름에 ‘_’언더바가 표시된 사원 검색

select last_name from employees where last_name like '%\\_%' ESCAPE '\\';

 

 

21. employees 테이블에서 job_id 가 뒤에서 3번째 문자로 ‘_’를 갖는 사원 정보 검색.

select last_name, job_id from employees where job_id like '%\\___' ESCAPE '\\';

 

 

22. employees 테이블에서 job_id 가 it_porg 이고, salary 가 5000 이상인 사원 검색.

select last_name, job_id from employees where job_id = 'IT_PROG' and salary>=5000;

 

 

23. employees 테이블에서 job_id 가 it_porg 이거나, salary 가 5000 이상인 사원 검색.

select last_name, job_id from employees where job_id = 'IT_PROG' or salary>=5000;

 

 

24. employees 테이블에서 salary 가 20000 이상인 사원 검색 (not 이용)

select last_name, salary from employees where not salary>=20000;

 

 

25. employees 테이블에서 salary 가 9000,8000,6000 이 아닌 사원 검색 (not 이용)

select last_name, salary from employees where salary not in (9000, 8000, 6000);

 

 

26. employees 테이블에서 last_name 시작 문자가 ‘J’ 가 아닌 사원 검색

select last_name from employees where last_name not like 'J%';

 

 

27. employees 테이블에서 salary 가 2400~20000 사이의 사원 검색

select last_name, salary from employees where salary BETWEEN 2400 and 20000;

 

 

28. employees 테이블에서 commission_pct 가 널인 결과 출력.

select last_name, commission_pct from employees where commission_pct is null;

 

 

29. employees 테이블에서 commission_pct 가 널이 아닌 결과 출력.

select last_name, commission_pct from employees where commission_pct is not null;

 

 

30. employees 테이블에서 job_id 가 ac_mgr 이거나 mk_rep 이고, commission_pct 가 널이고 salary 가 4000보다 크고 9000보다 작은 사원 출력.

SELECT
    last_name,
    job_id,
    commission_pct,
    salary
FROM
    employees
WHERE
    commission_pct IS NULL
    AND ( job_id = 'AC_MGR'
          OR job_id = 'MK_REP' )
    AND 4000 < salary
    AND salary < 9000;

 

 

31. employees 테이블에서 salary 가 많은 순으로 출력.

select last_name, salary from employees order by salary desc;

 

 

32. employees 테이블에서 사원이름을 오름차순으로 정렬.

select last_name, salary from employees order by last_name;

 

 

33. 사번이 200인 사원의 이름과 부서번호를 조회하는 쿼리문을 작성하시오

select last_name, department_id from employees where employee_id = 200;

 

 

34. 급여가 3000에서 15000 사이에 포함되지 않은 사원의 사번, 이름, 급여 정보를 조회하는 쿼리문을 작성하시오

select employee_id, last_name, salary from employees where salary BETWEEN 3000 and 15000;

 

 

35. 부서번호 30과 60에 소속된 사원의 사번, 이름, 부서번호, 급여를 조회하는데 이름은 알파벳 순서(A~Z, ASC)로 정렬하여 조회하시오

select employee_id, last_name, department_id, salary from employees order by last_name;

 

 

36. 급여가 3000에서 15000 사이 이면서(AND) 부서번호 30 또는 60에 소속된 사원의 사번, 이름, 급여를 조회하는 쿼리문을 작성 (단, 이름은 성 + 이름을 합쳐서 name, 급여는 Monthly Salary로 조회되도록 한다)

SELECT
    employee_id,
    first_name
    || ' '
    || last_name "name",
    salary       "Monthly Salary"
FROM
    employees
WHERE
    salary BETWEEN 3000 AND 15000
    AND department_id IN ( 30, 60 );

 

 

37. 소속된 부서번호가 없는 사원의 사번, 이름, 업무ID를 조회하는 쿼리문을 작성한다.

select employee_id, last_name, job_id from employees where department_id is null;

 

 

38. 커미션을 받는 사원의 사번, 이름, 급여, 커미션을 조회하는데 이때 커미션이 높은 사원부터 낮은 사원 순서 (DESC)로 정렬하여 조회한다

select employee_id, last_name, salary, commission_pct from employees where commission_pct is not null order by commission_pct desc;

 

 

39. 이름에 문자 'z'가 포함된 사원의 사번과 이름을 조회하는 쿼리문을 작성한다

select employee_id, last_name, salary, commission_pct from employees where commission_pct is not null order by commission_pct desc;

 

 

40. 사원 테이블에서 이름(first_name)이 A로 시작하는 모든 사원의 이름과 이름의 길이를 조회하는 쿼리문 작성

select first_name, last_name, length(first_name) + length(last_name) from employees where first_name like 'A%';

 

 

41. 80번 부서원의 이름, 급여를 조회. 단, 급여는 15자 길이로 왼쪽에 $ 기호가 채워진 형태로 표시)

select last_name, to_char(salary, '$000,000,000,000,000') from employees where employee_id = 120;

 

 

42. 60번, 80번 부서, 100번 부서에 소속된 사원의 사번, 이름, 전화번호, (전화번호의) 지역번호를 조회하는 쿼리문작성

SELECT
employee_id,
last_name,
phone_number,
substr(phone_number,
instr(phone_number, '.', 1)+1,
instr(phone_number, '.',2)+1)
FROM
employees
WHERE
department_id IN ( 60, 80, 100 );

 

 

43. 사원 테이블에서 130번 부서원의 사번, 성명, 급여, 근무개월수를 조회하는 쿼리문을 작성한다.

SELECT employee_id, last_name, salary, floor(sysdate - hire_date) FROM employees WHERE employee_id = 130;

 

 

44. 급여가 12000 달러 이상인 사원의 사번, 성명, 급여를 조회하여 급여순으로 결과를 정렬하는 쿼리문을 작성 (단, 급여는 천단위 구분 기호를 사용하여 표시한다)

SELECT employee_id, last_name, salary FROM employees where salary>=12000 order by salary desc;

 

 

45. 2005년 이전에 입사한 사원들의 사번, 성명, 입사일, 업무 시작 요일을 조회하는 쿼리문을 작성한다.

SELECT employee_id, last_name, hire_date, to_char(hire_date, 'day') FROM employees where hire_date<=to_date(20131231,'yyyymmdd');

'과제' 카테고리의 다른 글

231107 - Java mini project : 쇼핑몰 만들기  (0) 2023.11.07
추석 과제  (0) 2023.10.04