Cute Apple
본문 바로가기
개발/DB

Oracle Query 의 사용

by 미댕댕 2021. 3. 7.

emp라는 테이블을 우선적으로 생성후 데이터를 추가하였다.

 

이 테이블에서 select를 이용한 Query 를 작성해보자

 

Oracle 집계함수

 ※as 다음에 가짜 컬럼명 (alias)

 

● 총갯수(count)
  select count(*) as 총사원수 from emp;

● 평균(avg)
  select avg(sal) as 급여평균 from emp;

● 합(sum)
  select sum(sal) as 급여합 from emp;

● 최대값(max)
  select max(sal) as 최대급여 from emp;

● 최소값(min)
  select min(sal) as 최소급여 from emp;

 

 

Oracle 서브쿼리 문제

 

 ※subquery(쿼리문 안에 또 다른 쿼리문을 포함할 수 있는 쿼리문장)는 소괄호로 감싸놓아야 한다

 

● 최소급여를 받는 사원의 이름, 급여를 출력
  >select ename, sal from emp 
    where sal=(select min(sal) from emp);


● ALLEN 과 부서가 같은 사원들의 이름, 입사일, 부서번호 출력
  >select ename, hiredate, deptno from emp 
    where deptno=(select deptno from emp where ename='ALLEN');

● 이름에 t자가 들어가는 사원들의 급여의 합
  >select sum(sal) as 급여합 from emp where ename like '%T%';

● 최대급여를 받는 사원의 입사일
  >select hiredate from emp where sal=(select max(sal) from emp);

● 최대급여를 받는 사원보다 입사일이 늦은 사원의 이름, 입사일 출력하되(입사일 기준으로 오름차순 정렬)
  >select ename, hiredate from emp
    where hiredate > ( 
    select hiredate from emp where sal=(select max(sal) from emp)
     ) order by hiredate asc;

 

Oracle ANSI 함수 외의 함수

● 사원의 이름과 이름의 글자수를 출력하시오 (length 함수)
 >select ename as 사원명, length(ename) as 이름길이 from emp;

● 사원의 원래이름과 소문자로 변환한 이름을 출력하시오 (LCASE or LOWER 함수)
  >select ename , lcase(ename) from emp;

● 사원의 이름 중 KING이라는 사원의 이름을 왕으로 출력하시오 (replace함수)
  형식 : replace('조사대상','어떤문자열?','어떻게바꿀지?')

  >select replace(ename,'KING','wang') from emp ;

● 사원명 앞에 name: 붙게 이름을 출력하시오(concat 함수)
  형식 : concat('문자열1','문자열2','문자열3'...)
  >select concat('name:',ename) from emp;

반응형

'개발 > DB' 카테고리의 다른 글

MySql csv 파일 가져오기 / 제약조건(Index)  (0) 2021.03.22
Oracle 제약조건  (0) 2021.03.14
Oracle DML  (0) 2021.03.07
Oracle 시작 / 사용자 및 테이블 생성  (0) 2021.03.07

댓글