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 |