반응형
사원(TB_EMP), 부서(TB_DEPT), 사원 자격증(TB_EMP_CERTI), 자격증(TB_CERTI),
급여 내역(TB_SAL_HIS), 급여 내역 상세(TB_SAL_HIS_DTL), 급여(TB_SAL)
정보 테이블 생성을 위한 E-R 다이어그램 만들기
<급여>
<급여 내역>
<급여 내역 상세>
<부서>
<사원>
<사원 자격증>
<자격증>
E-R 다이어그램
DBEeaver 활용하여 테이블 생성하기
ex) TB_DEPT 생성;
DROP TABLE WDSQL.TB_DEPT purge;
DROP TABLE WDSQL.TB_EMP purge;
CREATE TABLE TB_DEPT(
DEPT_CD CHAR(6) NOT NULL
, DEPT_NM VARCHAR2(150) NOT NULL
, UPPER_DEPT_CD CHAR(6)
);
ALTER TABLE WDSQL.TB_DEPT ADD CONSTRAINT PK_TB_DEPT PRIMARY KEY(DEPT_CD);
COMMENT ON COLUMN WDSQL.TB_DEPT.DEPT_CD IS '부서코드';
COMMENT ON COLUMN WDSQL.TB_DEPT.DEPT_NM IS '부서이름';
COMMENT ON COLUMN WDSQL.TB_DEPT.UPPER_DEPT_CD IS '상위부서코드';
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100001','운영본부','999999');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100002','지원팀','100001');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100003','기획팀','100001');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100004','디자인팀','100001');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100005','플랫폼사업본부','999999');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100006','데이터팀','100005');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100007','개발팀','100005');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100008','솔루션사업본부','999999');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100009','운영팀','100008');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100010','개발팀','100008');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100011','신사업본부','999999');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100012','인공지능팀','100011');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('100013','빅데이터팀','100011');
INSERT INTO WDSQL.TB_DEPT T(T.DEPT_CD, T.DEPT_NM, T.UPPER_DEPT_CD) VALUES('999999','회장실',null);
CREATE TABLE -> ALTER TABLE ~ ADD CONSTRAINT ~ (PK, FK 설정)
-> COMMENT ON COLUMN~ IS ~ (코멘트 추가)-> INSERT INTO ~ VALUES~ (데이터 삽입)
순서로 반복해주면 된다. 그런데!!
위 코드에서 볼 수 있듯이 많은 분량의 데이터를 일일이 INSERT 하는 것은 매우 비효율적....
그래서 파일을 저장해서 명령 프롬포트로 추가하는 방법이 있다.
명령 프롬포트를 통해 테이블에 데이터 삽입하는 방법
1. 데이터 파일을 다운받는다.
(TB_EMP_CERTI_data.sql , TB_EMP_data.sql, TB_SAL_HIS_data.sql, TB_SAL_HIS_DTL_data.sql) 첨부 파일 참고
2. Visual Code로 열어서 한글이 깨질 경우 인코딩을 EUC-KR 로 변경 저장
3. 파일을 저장한 경로를 복사해서
4. 명령 프롬포트 창에 입력한다.
5. dir을 입력하고
6. 해당 경로에 파일이 저장되어 있는 것을 확인한 다음
7. @와 함께 파일 이름을 입력해주면 끝!
(나는 이미 INSERT해서 엔터는 치지 않았는데 아마 엔터치면
1행이 추가되었습니다....쭉 뜨고 삽입완료될 것임!)
8. DBeaver (or 다른 툴) 들어가서 확인해보면 데이터가 삽입되어 있다!.
이 많은 걸 일일이 친다고 생각하면....(한숨)
이 과정을 반복해서 7개 테이블을 생성하고 나면
이렇게 다이어그램이 완성된다!!! 끝!
반응형
'📒 education archive > 💾DB' 카테고리의 다른 글
[국비학원 기록/DB] 오라클 계층형 SQL 구문 형태, 사용 방법 (0) | 2021.12.23 |
---|---|
[국비학원 기록/DB 미니 프로젝트] DA#5 활용한 데이터 모델링 실습 01. (0) | 2021.11.18 |
[국비학원 기록/DB] 데이터베이스 설계02. 정규화, 제 1, 2, 3 정규화 (0) | 2021.11.18 |
[국비학원 기록/DB] 데이터베이스 설계01. DB 설계 단계, 개념적 설계, 논리적 설계 (0) | 2021.11.17 |
[국비학원 기록/DB] JOIN - 내부조인, 외부조인 (0) | 2021.11.12 |