hyeonga_code
Database_08_오라클 데이터베이스 sqldeveloper 인사관리 환경 설정 본문
- 인사 관리 계정으로 접속합니다.
- '+' 접속 클릭 > 새접속- Name : 인사관리
- 사용자 정보
- 사용자 이름 : hr
- 비밀번호 : hr
- 롤 : 기본값- 세부 정보
- 호스트 이름 : localhost
- 포트 : 1521
- SID : xe> 접속
- 사용할 예제 데이터 생성
- 인사관리 데이터베이스 > 테이블 선택- 아무런 데이터가 없습니다.
'인사관리'
=====
DROP TABLE regions CASCADE CONSTRAINTS PURGE;
DROP TABLE locations CASCADE CONSTRAINTS PURGE;
DROP TABLE departments CASCADE CONSTRAINTS PURGE;
DROP TABLE jobs CASCADE CONSTRAINTS PURGE;
DROP TABLE employees CASCADE CONSTRAINTS PURGE;
DROP TABLE job_history CASCADE CONSTRAINTS PURGE;
DROP TABLE job_grades CASCADE CONSTRAINTS PURGE;
DROP TABLE countries CASCADE CONSTRAINTS PURGE;
REM ********************************************************************
REM Create the REGIONS table to hold region information for locations
REM HR.LOCATIONS table has a foreign key to this table.
Prompt ****** Creating REGIONS table ....
CREATE TABLE regions
( region_id NUMBER
CONSTRAINT region_id_nn NOT NULL
CONSTRAINT reg_id_pk PRIMARY KEY
, region_name VARCHAR2(25)
);
REM ********************************************************************
REM Create the COUNTRIES table to hold country information for customers
REM and company locations.
REM OE.CUSTOMERS table and HR.LOCATIONS have a foreign key to this table.
Prompt ****** Creating COUNTRIES table ....
CREATE TABLE countries
( country_id CHAR(2)
CONSTRAINT country_id_nn NOT NULL
, country_name VARCHAR2(40)
, region_id NUMBER
, CONSTRAINT country_c_id_pk PRIMARY KEY (country_id)
)
ORGANIZATION INDEX;
ALTER TABLE countries
ADD ( CONSTRAINT countr_reg_fk FOREIGN KEY (region_id) REFERENCES regions(region_id)
) ;
REM ********************************************************************
REM Create the LOCATIONS table to hold address information for company departments.
REM HR.DEPARTMENTS has a foreign key to this table.
Prompt ****** Creating LOCATIONS table ....
CREATE TABLE locations
( location_id NUMBER(4) CONSTRAINT loc_id_pk PRIMARY KEY
, street_address VARCHAR2(40)
, postal_code VARCHAR2(12)
, city VARCHAR2(30)
CONSTRAINT loc_city_nn NOT NULL
, state_province VARCHAR2(25)
, country_id CHAR(2) CONSTRAINT loc_c_id_fk REFERENCES countries(country_id)
) ;
REM ********************************************************************
REM Create the DEPARTMENTS table to hold company department information.
REM HR.EMPLOYEES and HR.JOB_HISTORY have a foreign key to this table.
Prompt ****** Creating DEPARTMENTS table ....
CREATE TABLE departments
( department_id NUMBER(4) CONSTRAINT dept_id_pk PRIMARY KEY
, department_name VARCHAR2(30)
CONSTRAINT dept_name_nn NOT NULL
, manager_id NUMBER(6)
, location_id NUMBER(4) CONSTRAINT dept_loc_fk REFERENCES locations (location_id)
) ;
REM ********************************************************************
REM Create the JOBS table to hold the different names of job roles within the company.
REM HR.EMPLOYEES has a foreign key to this table.
Prompt ****** Creating JOBS table ....
CREATE TABLE jobs
( job_id VARCHAR2(10) CONSTRAINT job_id_pk PRIMARY KEY
, job_title VARCHAR2(35)
CONSTRAINT job_title_nn NOT NULL
, min_salary NUMBER(6)
, max_salary NUMBER(6)
) ;
REM ********************************************************************
REM Create the EMPLOYEES table to hold the employee personnel
REM information for the company.
REM HR.EMPLOYEES has a self referencing foreign key to this table.
Prompt ****** Creating EMPLOYEES table ....
CREATE TABLE employees
( employee_id NUMBER(6) CONSTRAINT emp_emp_id_pk PRIMARY KEY
, first_name VARCHAR2(20)
, last_name VARCHAR2(25)
CONSTRAINT emp_last_name_nn NOT NULL
, email VARCHAR2(25)
CONSTRAINT emp_email_nn NOT NULL
, phone_number VARCHAR2(20)
, hire_date DATE
CONSTRAINT emp_hire_date_nn NOT NULL
, job_id VARCHAR2(10)
CONSTRAINT emp_job_nn NOT NULL CONSTRAINT emp_job_fk REFERENCES jobs (job_id)
, salary NUMBER(8,2)
, commission_pct NUMBER(2,2)
, manager_id NUMBER(6)
, department_id NUMBER(4) CONSTRAINT emp_dept_fk REFERENCES departments
, CONSTRAINT emp_salary_min CHECK (salary > 0)
, CONSTRAINT emp_email_uk UNIQUE (email)
) ;
REM ********************************************************************
REM Create the JOB_HISTORY table to hold the history of jobs that
REM employees have held in the past.
REM HR.JOBS, HR_DEPARTMENTS, and HR.EMPLOYEES have a foreign key to this table.
Prompt ****** Creating JOB_HISTORY table ....
CREATE TABLE job_history
( employee_id NUMBER(6)
CONSTRAINT jhist_employee_nn NOT NULL
, start_date DATE
CONSTRAINT jhist_start_date_nn NOT NULL
, end_date DATE
CONSTRAINT jhist_end_date_nn NOT NULL
, job_id VARCHAR2(10)
CONSTRAINT jhist_job_nn NOT NULL
, department_id NUMBER(4)
, CONSTRAINT jhist_date_interval CHECK (end_date > start_date)
) ;
CREATE UNIQUE INDEX jhist_emp_id_st_date_pk
ON job_history (employee_id, start_date) ;
ALTER TABLE job_history
ADD ( CONSTRAINT jhist_emp_id_st_date_pk
PRIMARY KEY (employee_id, start_date)
, CONSTRAINT jhist_job_fk FOREIGN KEY (job_id) REFERENCES jobs
, CONSTRAINT jhist_emp_fk FOREIGN KEY (employee_id) REFERENCES employees
, CONSTRAINT jhist_dept_fk FOREIGN KEY (department_id) REFERENCES departments
) ;
CREATE TABLE job_grades
(grade_level VARCHAR2(3),
lowest_sal NUMBER,
highest_sal NUMBER);
Insert into REGIONS (REGION_ID,REGION_NAME) values (1,'Europe');
Insert into REGIONS (REGION_ID,REGION_NAME) values (2,'Americas');
Insert into REGIONS (REGION_ID,REGION_NAME) values (3,'Asia');
Insert into REGIONS (REGION_ID,REGION_NAME) values (4,'Middle East and Africa');
Insert into COUNTRIES (COUNTRY_ID,COUNTRY_NAME,REGION_ID) values ('CA','Canada',2);
Insert into COUNTRIES (COUNTRY_ID,COUNTRY_NAME,REGION_ID) values ('DE','Germany',1);
Insert into COUNTRIES (COUNTRY_ID,COUNTRY_NAME,REGION_ID) values ('UK','United Kingdom',1);
Insert into COUNTRIES (COUNTRY_ID,COUNTRY_NAME,REGION_ID) values ('US','United States of America',2);
Insert into LOCATIONS (LOCATION_ID,STREET_ADDRESS,POSTAL_CODE,CITY,STATE_PROVINCE,COUNTRY_ID)
values (1400,'2014 Jabberwocky Rd','26192','Southlake','Texas','US');
...
Insert into LOCATIONS (LOCATION_ID,STREET_ADDRESS,POSTAL_CODE,CITY,STATE_PROVINCE,COUNTRY_ID)
values (2500,'Magdalen Centre, The Oxford Science Park','OX9 9ZB','Oxford','Oxford','UK');
Insert into DEPARTMENTS (DEPARTMENT_ID,DEPARTMENT_NAME,MANAGER_ID,LOCATION_ID) values (10,'Administration',200,1700);
...
Insert into DEPARTMENTS (DEPARTMENT_ID,DEPARTMENT_NAME,MANAGER_ID,LOCATION_ID) values (190,'Contracting',null,1700);
Insert into JOBS (JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY) values ('AD_PRES','President',20000,40000);
...
Insert into JOBS (JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY) values ('MK_REP','Marketing Representative',4000,9000);
Insert into EMPLOYEES (EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID) values (100,'Steven','King','SKING','515.123.4567',to_date('02/06/17','RR/MM/DD'),'AD_PRES',24000,null,null,90);
...
Insert into EMPLOYEES (EMPLOYEE_ID,FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID) values (206,'William','Gietz','WGIETZ','515.123.8181',to_date('09/06/07','RR/MM/DD'),'AC_ACCOUNT',8300,null,205,110);
Insert into JOB_HISTORY (EMPLOYEE_ID,START_DATE,END_DATE,JOB_ID,DEPARTMENT_ID) values (102,to_date('08/01/13','RR/MM/DD'),to_date('13/07/24','RR/MM/DD'),'IT_PROG',60);
...
Insert into JOB_HISTORY (EMPLOYEE_ID,START_DATE,END_DATE,JOB_ID,DEPARTMENT_ID) values (200,to_date('09/07/01','RR/MM/DD'),to_date('13/12/31','RR/MM/DD'),'AC_ACCOUNT',90);
Insert into JOB_GRADES (GRADE_LEVEL,LOWEST_SAL,HIGHEST_SAL) values ('A',1000,2999);
...
Insert into JOB_GRADES (GRADE_LEVEL,LOWEST_SAL,HIGHEST_SAL) values ('F',25000,40000);
COMMIT;
ALTER TABLE departments
ADD ( CONSTRAINT dept_mgr_fk
FOREIGN KEY (manager_id)
REFERENCES employees (employee_id)
) ;
REM ********************************************************************
REM Create the EMPL_DEMO table
DROP TABLE empl_demo PURGE;
CREATE TABLE empl_demo
AS
SELECT * FROM employees
WHERE 1=2;
INSERT INTO empl_demo VALUES ( 100, 'Steven', 'King', 'SKING', '515.123.4567', TO_DATE('17-06-1987', 'dd-mm-yyyy'), 'AD_PRES', 24000, NULL, NULL, 90);
...
INSERT INTO empl_demo VALUES ( 206, 'William', 'Gietz', 'WGIETZ', '515.123.8181', TO_DATE('07-06-1994', 'dd-mm-yyyy'), 'AC_ACCOUNT', 8300, NULL, 205, 110);
COMMIT;
SELECT COUNT(*) NUM_EMP FROM employees;
SELECT COUNT(*) NUM_DEP FROM departments;
SELECT COUNT(*) NUM_LOC FROM locations;
SELECT COUNT(*) NUM_REG FROM regions;
SELECT COUNT(*) NUM_CTR FROM countries;
SELECT COUNT(*) NUM_JOB FROM jobs;
SELECT COUNT(*) NUM_JH FROM job_history;
>>> 실행합니다.
- 워크시트의 코드를 지우려면 지우개 기호를 클릭하면 모두 지워집니다.
'Oracle Database' 카테고리의 다른 글
Database_10_데이터 제한 및 정렬_WHERE 절 (0) | 2023.07.13 |
---|---|
Database_09_오라클 데이터베이스 sqldeveloper SQL 자격 검증 시험 대비 실습 환경 설정 (0) | 2023.07.11 |
Database_07_오라클 sqldeveloper 실습 환경 설정하기 (0) | 2023.07.09 |
Database_06_오라클 데이터베이스 사용하기 (0) | 2023.07.08 |
Database_05_관계형 데이터베이스 (0) | 2023.07.07 |