2016년 8월 18일 목요일

02day SQL tunning

--현재 오라클 버전
SQL> select * from v$version;

--보너스 테이블 채우기
SQL> insert into bonus
  2  select ename, job, sal, comm
  3  from emp
  4  where job in('MANAGER', 'CLERK');

--보너스 테이블 컬럼추가
SQL> alter table bonus
  2  add empno number(4);

--삭제
SQL> drop table bonus;

--복구
SQL> flashback table bonus
  2  to before drop;

--완전삭제
SQL> drop table bonus purge;

--보너스 테이블 생성
SQL> create table bonus
  2  as
  3  select empno, ename, job, sal, comm
  4  from emp
  5  where job in('MANAGER', 'CLERK');

--프라이머리키 지정
SQL> alter table bonus
  2  add constraint bonus_empno_pk primary key(empno);

--보너스받는 사원정보 출력 (조인)
SQL> select emp.empno, emp.ename, emp.hiredate
  2  from emp,bonus
  3  where emp.empno=bonus.empno;
--보너스받는 사원정보 출력 (조인1999)
SQL> select empno, e.ename, e.hiredate
  2  from emp e
  3  join bonus b
  4  using(empno);
--보너스받는 사원정보 (서브쿼리)
SQL> select empno, ename, hiredate
  2  from emp
  3  where empno in(select empno from bonus);

--보너스테이블 컬럼명 변경
SQL> alter table bonus
  2  rename column empno to eno;
---보너스받는 사원정보 (조인)
SQL> select empno, e.ename, e.hiredate
  2  from emp e
  3  join bonus b
  4  on (e.empno = b.eno);


--where절은 한 행씩 비교함
--모든행 출력
SQL> select *
  2  from emp
  3  where 1=1;
--틀만 출력
SQL> select *
  2  from emp
  3  where 1=0;

--널표기 바꿈
SQL> set null "널이네"
SQL> select empno, ename, comm
  2  from emp;

--아우터 조인
SQL> select e.ename, c.ename
  2  from emp e
  3  left outer join emp c
  4  on e.mgr=c.empno;

댓글 없음:

댓글 쓰기