5.
이름이 J,A,또는 M으로 시작하는 사원의 이름(첫글자는 대문자로, 나머지는 소문자로)
이름의 길이를 찾아라. 열별칭은 알아서 해라. 사원의 이름 순으로 정렬해라.
->조건:이름이 J,A 또는 M으로 시작
-> last_name like 'J%' or last_name like 'A%' or last_name like 'M%'
select initcap(last_name) "이 름", length(last_name) "길 이"
from employees
where last_name like 'J%' or last_name like 'A%' or last_name like 'M%'
order by last_name;
4.
select employee_id, last_name, salary,
round(salary * 1.15) "새 월급", round(salary * 1.15) - salary "차 액"
from employees;
2.3.
사원번호, 이름, 급여, 15% 인상된 급여(정수)를 출력해라.
인상된 급여의 열 제목을 "새 월급"으로 지정해라.
-> 15% 인상된 급여 : salary * 1.15 --> 결과가 실수 --> 반올림 round
-> round(salary * 1.15)
select employee_id, last_name, salary, round(salary * 1.15) "새 월급"
from employees;
select round(100.35, 2) from dual;
select 1 + 2 - 3 from dual;
select salary + 100 from employees;
13.
커미션이 20%인 사원의 이름, 급여, 커미션을 찾아라.
select last_name, salary, commission_pct
from employees
where commission_pct = 0.2;
12.
업무가 영업사원(SA_REP) 또는 사무원(ST_CLERK) 이면서
급여가 2500, 3500, 7000 이 아닌 사원의 이름, 업무코드, 급여를 찾아라.
조건 1 : 업무가 영업사원 또는 사무원 -> job_id in('SA_REP','ST_CLERK')
조건 2 : 급여가 2500,3500,7000 인 아닌-> salary not in (2500,3500,7000)
최종 조건 : 조건1 and 조건2
select last_name, job_id, salary
from employees
where job_id in('SA_REP','ST_CLERK') and salary not in(2500,3500,7000);
11.
이름에 a와 e가 있는 사원의 이름을 찾아라.
--> 이름에 a가 있는 사람 --> last_name like '%a%'
and
--> 이름에 e가 있는 사람 --> last_name like '%e%'
참고 : last_name like '%a%e'; --> 이름에 a가 먼저오고 e가 나중에 오는 이름
select last_name
from employees
where last_name like '%a%' and last_name like '%e%';
10.
이름의 세번째 문자가 소문자 a인 사원의 이름을 찾아라.
select last_name
from employees
where last_name like '__a%';
9.
커미션을 받는 --> 커미션이 있는 사원의 이름, 급여, 커미션을 찾아라.
급여 및 커미션을 내림차순으로 정렬해라.
select last_name, salary, commission_pct
from employees
where commission_pct is not null
order by salary desc, commission_pct desc;
8.
관리자가 없는 모든 사원의 이름과 업무를 찾아라.
관리자가 없는 --> 상관이 없는 직원 --> 사장
select last_name, job_id
from employees
where manager_id is null;
7.
2004년에 입사한 모든 사원의 이름과 입사일을 찾아라.
사원의 이름과 입사일이 있는 테이블이름:employees
조건:2004년에 입사 --> 04로 시작하는 입사일 --> hire_date like '04%'
select last_name, hire_date
from employees
where hire_date like '04%';
6.
급여가 5000과 12000사이이고, 부서번호가 20 또는 50인
사원의 이름과 급여를 찾아라. 열 이름을 Employee와 Monthly Salary로 바꿔라.
급여와 부서번호와 사원의 이름과 급여가 있는 테이블이름:employees
조건1 : 급여가 5000과 12000사이 -> salary between 5000 and 12000
조건2 : 부서번호가 20 또는 50 -> department_id in(20,50)
조건 : 조건1 and 조건2
select last_name 종업원, salary "월 급"
from employees
where salary between 5000 and 12000 and department_id in(20,50);
5.
부서 20 혹은 50에 근무하는 사원의 이름과 부서번호를 찾아라.
사원의 이름을 기준으로 영문자순으로 정렬해서 출력해라.
부서번호와 사원의 이름이 있는 테이블이름:employees
조건: 부서번호가 20 혹은 50 --> department_id in(20,50)
select last_name, department_id
from employees
where department_id in(20,50)
order by last_name;
4.
2008년 2월 20일과 2008년 5월 1일 사이에 입사한 사원의 이름, 업무ID,
입사일을 찾아라. 입사일을 기준으로 오름차순으로 정렬해서 출력해라.
입사일, 사원의 이름, 업무코드가 있는 테이블이름:employees
조건: 입사일이 2008년 2월20일과 2008년 5월 1일 사이
--> hire_date between '08/02/20' and '08/05/01'
select last_name, job_id, hire_date
from employees
where hire_date between '08/02/20' and '08/05/01'
order by hire_date;
3.
급여가 5000과 12000사이에 포함되지 않는 사원의 이름과 급여를 찾아라.
급여와 사원의 이름이 있는 테이블이름:employees
조건:급여가 5000과 12000사이에 포함되지 않는
-> 급여가 5000과 12000사이의 반대
-> 급여가 5000과 12000사이 -> salary not between 5000 and 12000
select last_name, salary
from employees
where salary not between 5000 and 12000;
2.
사원번호가 176인 사원의 이름과 부서번호를 찾아라.
사원번호, 사원의 이름, 부서번호가 있는 테이블이름: employees
select last_name, department_id
from employees
where employee_id = 176;
1.
급여가 12,000을 넘는 사원의 이름(last_name)과 급여(salary)를 찾아라.
사원의 이름과 급여가 있는 테이블이름 : employees
select last_name, salary
from employees
where salary > 12000;
오라클을 처음 설치한 후 다음을 실행한다.
0. 명령창을 띄운다.
1. 오라클에 관리자로 접속한다.
sqlplus / as sysdba
2. hr계정을 활성화한다.
alter user hr account unlock;
3. hr계정의 암호를 hr로 변경한다.
alter user hr identified by hr;
4. exit를 입력해서 sqlplus를 종료한다.
강의장 PC에는 설치되어있으므로 0과 5만 한다.
5. sqlplus hr/hr 를 입력해서 오라클에 hr계정으로 접속한다.