본문 바로가기

데이터베이스(SQL)

데이터베이스 1일차_(2)(oracle, sql)

SQL 1일차 실습 문제 (SELECT)

EX1. 급여가 $10000를 넘는 사원의 이름 및 급여를 표시하는 질의를 작성하시오.

select last_name, salary
from  emp
where salary >= 10000 ;


EX2. 사원의 번호가 100인 사원의 이름 및 부서 번호를 표시하는 질의를 작성하시오.

select last_name, depatment_id
from  emp
where   EMPLOYEE_ID = 100 ;                                                 
 
EX3. 급여가 $15000 이상 ~ $22000 이하의 범위에 속하지 않는 
모든 사원의 이름 및 급여를 표시하는 질의를 작성하시오.

select last_name, salary
from  emp
where salary not between 15000 and 22000 
order by 2 ;

EX4. 2004년 2월 2일 ~ 2004년 5월 1일에 입사한 
사원 이름, 직위 및 시작일을 표시한다. 
시작일을 기준으로해서 오름차순 정렬한다. 

select last_name, job_id, hire_date
from  emp
where hire_date between  '2004-02-02' and '2004-05-01' 
order by  3 ;                             


EX5. 부서 10및 30에 속하는 모든 사원의 이름 및 부서 번호를 
이름을 기준으로 해서 영문자순으로 표시한다.

select last_name, department_id
from  emp
where department_id in (10, 30 ) 
order by 1 ;
  

EX6. 부서 10 또는 30에 속하는 사원 중 급여가 $5000를 넘는 
      사원의 이름 및 급여를 표시하도록 하며, 
      EMPLOYEE 및 MONTHLY SALARY 으로 이름을 바꾸시오.

select last_name as "EMPLOYEE"   ,  salary as "MONTHLY SALARY"
from  emp
where department_id  in (10,30)  and salary >= 5000 ;

EX7. 2004년에 입사한 모든 사원의 이름 및 입사일을 표시한다.

select last_name, hire_date
from  emp
where hire_date between  '2004-01-01' and '2004-12-31'  ;

select last_name, hire_date
from  emp
where extract(year from hire_date )  = 2004 ;

select last_name, hire_date
from  emp
where to_char( hire_date, 'yyyy')  = '2004' ;

EX8. 관리자가 없는 모든 사원의 이름 및 직위를 표시한다.

select last_name, job_id
from emp
where manager_id is null ;

EX9. 커미션을 받는 모든 사원의 이름, 급여 및 커미션을 
급여 및 커미션을 기준으로 해서 내림차순 정렬하시오.

select last_name, salary, commission_pct
from  emp
where commission_pct is null
order by 2 desc, 3 desc ;


EX10. 이름의 세 번째 문자가 A인 모든 사원의 이름을 표시한다.

select last_name
from  emp
where last_name like '__A%'  or  last_name like '__a%';

EX11. 이름에 s가 두 번 들어가며 부서 50 또는 80에 속한 모든 사원의 이름을 표시한다.

SELECT LAST_NAME  
FROM  EMP
WHERE DEPARTMENT_ID IN (50,80)  AND lower(LAST_NAME) LIKE '%s%s%';


EX12. 업무가 CLERK 면서 급여가 $1000, 3000, $5000가 아닌 
모든 사원의 이름, 직무 및 급여를 표시한다.

select last_name, job_id, salary
from   emp 
where salary not in ( 1000,3000, 5000 ) 
    and job_id like '%CLERK'    ;              

EX13. 커미션과 급여의 합계가 10% 인상된 급여보다 많은 
모든 사원의 이름, 급여 및 커미션을 표시하도록 한다.

select last_name, salary, COMMISSION_PCT


select last_name, salary, salary * nvl( COMMISSION_PCT, 0) 
from emp
where salary + ( salary * nvl(COMMISSION_PCT, 0)) > salary + ( salary * 0.1 ) ;