안녕하세요.
오라클 학습 목적으로 예전 7,8,9 버전에 번들(Sample)로 들어 있던
부서 정보인 DEPT 테이블, 사원 정보인 EMP 테이블을 생성하고
4개의 부서, 14명의 사원 정보를 생성(Insert) 하도록 하겠습니다.
해당 스크립트는 ORACLE Live SQL 참고 하였습니다.
https://livesql.oracle.com/apex/livesql/file/content_O5AEB2HE08PYEPTGCFLZU9YCV.html
오라클 11g 설치는 참고하세요.
https://meyouus.tistory.com/35
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;
스크립트를 실행하면 다음과 같이 정보를 조회 할 수 있습니다.
/* |
||
/*
|
감사합니다.
'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 |
최근댓글