그룹함수
select
from
where
group by
having
order by
//그룹에 대한 조건식은 having 조건식을 사용한다.
//부서별로 사원의수가 4명 이상인 정보를 찾아 부서번호와 급여의 합계를 출력
SQL> select deptno,sum(sal),count(*) from emp
2 group by deptno having count(*)>=5 order by deptno;
DEPTNO SUM(SAL) COUNT(*)
---------- ---------- ----------
20 10875 5
30 9400 6
//그룹함수의 중첩
//max(avg(sal)): 각 부서번호 마다의 avg를 구한 후, avg 중 가장 큰 값 구하기
SQL> select max(avg(sal)),max(sum(sal)),min(min(sal)),max(max(sal))
2 from emp group by deptno;
MAX(AVG(SAL)) MAX(SUM(SAL)) MIN(MIN(SAL)) MAX(MAX(SAL))
------------- ------------- ------------- -------------
2916.66667 10875 800 5000
//emp테이블에서 업무가 manager가 아닌 사원에 대하여 부서별로 급여의 합이
//6500이상인 부서의 정보를 출력? (부서번호, 급여의 합계 순으로 출력하되 급여의 합계가
//높은순으로 정렬할 것)
SQL> select deptno,sum(sal) from emp where job<>'MANAGER'
2 group by deptno having sum(sal)>=6500 order by sum(sal) desc;
DEPTNO SUM(SAL)
---------- ----------
20 7900
30 6550
집계함수
count,sum,min,max,avg 와 같은 집계 함수는
숫자데이터 뿐만 아니라 날짜, 문자 데이터에서도 사용이 가능하다.
SQL> select min(ename),max(ename),min(hiredate),max(hiredate),min(sal),max(sal)
2 from emp;
MIN(ENAME) MAX(ENAME) MIN(HIRE MAX(HIRE MIN(SAL) MAX(SAL)
---------- ---------- -------- -------- ---------- ----------
ADAMS WARD 80/12/17 87/05/23 800 5000
DDL(CREATE, ALTER, DROP)
- CREATE(full backup)
테이블 복사하기(스키마,데이터 모두)
create table 새로만들테이블명 as select * from 복사할테이블명;
- ALTER, DROP
기존 테이블에 필드 추가하기
alter table 테이블명 add (필드명 자료형 제약조건);
//우선 변경하고자하는 테이블에 데이터가 있는지 확인
//모두 뽑아버리면 수많은 데이터가 나올 수도 있으니 숫자로 확인
select count(*) from test_table;
//테이블에 데이터가 없는 경우에만 not null 제약조건을 가진 필드를 추가할 수 있다.
alter table test_table add (tel varchar2(10) not null);
//default값 설정
alter table test_table add (hiredate date default sysdate);
(필드명 자료형 default 적용시킬값)
//insert into test_table values(1,'김',default); //id,name,hiredate
기존 테이블의 필드 수정하기
alter table 테이블명 modify (변경할필드명 자료형 제약조건);
기존 테이블에서 필드 삭제하기
데이터가 존재하는 필드는 삭제하지 못함.
alter table 테이블명 drop column 삭제시킬필드명;
기존 테이블에서 필드명 변경
//필드명 변경
alter table 테이블명 rename column 변경전필드명 to 변경후필드명;
'DB(ORACLE)' 카테고리의 다른 글
[Oracle]오라클 백업테이블생성, 테이블 복사, 스키마 복사 (0) | 2020.12.23 |
---|---|
[Oracle]오라클 데이터 딕셔너리, 제약조건 (0) | 2020.12.23 |
[Oracle]dual 테이블,날짜/문자/숫자함수 (0) | 2020.12.23 |
[Oracle] update, delete, select, 조건식 (0) | 2020.12.23 |
[Oracle] 계정,롤,select,desc,ed (0) | 2020.12.23 |