반응형

안녕하세요.

 

오라클 학습 목적으로 예전 7,8,9 버전에 번들(Sample)로 들어 있던

부서 정보인 DEPT 테이블, 사원 정보인 EMP 테이블을 생성하고

4개의 부서, 14명의 사원 정보를 생성(Insert) 하도록 하겠습니다.

 

해당 스크립트는 ORACLE Live SQL 참고 하였습니다.

https://livesql.oracle.com/apex/livesql/file/content_O5AEB2HE08PYEPTGCFLZU9YCV.html

 

Oracle Live SQL - Script: EMP and DEPT

Script Name EMP and DEPT Description Example EMP and DEPT tables. Classic Oracle tables with 4 departments and 14 employees. Includes a join query example. Area SQL General Contributor Mike Hichwa (Oracle) Created Monday October 05, 2015 Additional Informa

livesql.oracle.com

오라클 11g 설치는 참고하세요.

https://meyouus.tistory.com/35

 

오라클 11g 설치

안녕하세요. 개발이나 데이터베이스 학습 목적으로 많이들 이용하시는 오라클 11g 설치에 대해 알려 드리겠습니다. 1. 오라클 11g 다운로드 1-1. 다운로드 홈페이지 접속 https://www.oracle.com/database/technol..

meyouus.tistory.com

SQL 스크립트는 다음과 같으며 파일로 첨부 하였습니다.

Oracle_DEPT_EMP_Script.sql
다운로드

 

/*
    사원 Table 삭제
*/
-- DROP TABLE EMP;

/*
    부서 Table 삭제
*/
-- DROP TABLE DEPT;


/*
    Create DEPT table which will be the parent table of the EMP table.
*/
create table dept( 
  deptno     number(2,0), 
  dname      varchar2(14), 
  loc        varchar2(13), 
  constraint pk_dept primary key (deptno) 
);

/*
    Create the EMP table which has a foreign key reference to the DEPT table.
    The foreign key will require that the DEPTNO in the EMP table exist in the DEPTNO column in the DEPT table.
*/
create table emp( 
  empno    number(4,0), 
  ename    varchar2(10), 
  job      varchar2(9), 
  mgr      number(4,0), 
  hiredate date, 
  sal      number(7,2), 
  comm     number(7,2), 
  deptno   number(2,0), 
  constraint pk_emp primary key (empno), 
  constraint fk_deptno foreign key (deptno) references dept (deptno) 
);

/*
    Insert row into DEPT table using named columns.
*/
insert into DEPT (DEPTNO, DNAME, LOC)
values(10, 'ACCOUNTING', 'NEW YORK');

/*
    Insert a row into DEPT table by column position.
*/
insert into dept 
values(20, 'RESEARCH', 'DALLAS');

insert into dept 
values(30, 'SALES', 'CHICAGO');

insert into dept 
values(40, 'OPERATIONS', 'BOSTON');

/*
    Insert EMP row, using TO_DATE function to cast string literal into an oracle DATE format.
*/
insert into emp 
values( 
 7839, 'KING', 'PRESIDENT', null, 
 to_date('17-11-1981','dd-mm-yyyy'), 
 5000, null, 10 
);

insert into emp 
values( 
 7698, 'BLAKE', 'MANAGER', 7839, 
 to_date('1-5-1981','dd-mm-yyyy'), 
 2850, null, 30 
);

insert into emp 
values( 
 7782, 'CLARK', 'MANAGER', 7839, 
 to_date('9-6-1981','dd-mm-yyyy'), 
 2450, null, 10 
);

insert into emp 
values( 
 7566, 'JONES', 'MANAGER', 7839, 
 to_date('2-4-1981','dd-mm-yyyy'), 
 2975, null, 20 
);

insert into emp 
values( 
 7788, 'SCOTT', 'ANALYST', 7566, 
 to_date('13-07-1987','dd-mm-yyyy') - 85, 
 3000, null, 20 
);

insert into emp 
values( 
 7902, 'FORD', 'ANALYST', 7566, 
 to_date('3-12-1981','dd-mm-yyyy'), 
 3000, null, 20 
);

insert into emp 
values( 
 7369, 'SMITH', 'CLERK', 7902, 
 to_date('17-12-1980','dd-mm-yyyy'), 
 800, null, 20 
);

insert into emp 
values( 
 7499, 'ALLEN', 'SALESMAN', 7698, 
 to_date('20-2-1981','dd-mm-yyyy'), 
 1600, 300, 30 
);

insert into emp 
values( 
 7521, 'WARD', 'SALESMAN', 7698, 
 to_date('22-2-1981','dd-mm-yyyy'), 
 1250, 500, 30 
);

insert into emp 
values( 
 7654, 'MARTIN', 'SALESMAN', 7698, 
 to_date('28-9-1981','dd-mm-yyyy'), 
 1250, 1400, 30 
);

insert into emp 
values( 
 7844, 'TURNER', 'SALESMAN', 7698, 
 to_date('8-9-1981','dd-mm-yyyy'), 
 1500, 0, 30 
);

insert into emp 
values( 
 7876, 'ADAMS', 'CLERK', 7788, 
 to_date('13-07-87', 'dd-mm-yyyy') - 51, 
 1100, null, 20 
);

insert into emp 
values( 
 7900, 'JAMES', 'CLERK', 7698, 
 to_date('3-12-1981','dd-mm-yyyy'), 
 950, null, 30 
);

insert into emp 
values( 
 7934, 'MILLER', 'CLERK', 7782, 
 to_date('23-1-1982','dd-mm-yyyy'), 
 1300, null, 10 
);

/*
   부서, 사원 테이블을 조인하여 사원별 부서 정보를 조회
*/
select ename, dname, job, empno, hiredate, loc 
from emp, dept 
where emp.deptno = dept.deptno 
order by ename;

/*
   부서별 사원수 조회를 조회하여
   사원이 많은 부서별로 정렬한다.
*/
select dname, count(*) count_of_employees
from dept, emp
where dept.deptno = emp.deptno
group by DNAME
order by 2 desc; 

 

스크립트를 실행하면 다음과 같이 정보를 조회 할 수 있습니다.

 

 

 

/*
   부서, 사원 테이블을 조인하여 사원별 부서 정보를 조회
*/
select ename, dname, job, empno, hiredate, loc 
from emp, dept 
where emp.deptno = dept.deptno 
order by ename; 

 
 

/*
   부서별 사원수 조회를 조회하여
   사원이 많은 부서별로 정렬한다.
*/
select dname, count(*) count_of_employees
from dept, emp
where dept.deptno = emp.deptno
group by DNAME
order by 2 desc; 

 

 

감사합니다.
 


 

 

반응형

'IT > 데이터베이스' 카테고리의 다른 글

Oracle Analytic Function(분석 함수)  (0) 2019.12.05
DBeaver 단축키 모음  (2) 2019.12.03
Oralce User(사용자) Tablespace 생성 삭제 권한 부여  (0) 2019.11.29
DBeaver 설치  (0) 2019.11.28
오라클 11g 설치  (0) 2019.11.24
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기