--급여테이블
--년월(6), 직원코드, 급여, 보너스
--직원명 부서코드 등 이미 다른 테이블에 존재하는 경우 조인해서 가지고 오면 된다.
CREATE TABLE SALARY
(
SALDATE CHAR(6) NOT NULL, --여기에 바로 PK 설정하면 안 됨 따로 빼서 해야 됨
EMPNO CHAR(4) NOT NULL, --PK, FK
SAL NUMBER(10),
COMM NUMBER(10)
);
COMMENT ON TABLE SALARY IS '급여정보';
COMMENT ON COLUMN SALARY.SALDATE IS '급여년월';
COMMENT ON COLUMN SALARY.EMPNO IS '사원번호';
COMMENT ON COLUMN SALARY.SAL IS '급여';
COMMENT ON COLUMN SALARY.COMM IS '보너스';
ALTER TABLE SALARY ADD CONSTRAINT SALARY_PK PRIMARY KEY(SALDATE, EMPNO);
--여러개의 프라이머리키 지정을 할 때 오류가 뜨기 때문에 밖에서 지정을 해준다.
ALTER TABLE SALARY ADD CONSTRAINT SALARY_EMPNO_FK FOREIGN KEY(EMPNO)
REFERENCES EMP(EMPNO);
--REFERENCES 참조
코멘트 작성법
COMMENT ON TABLE SALARY IS '급여정보';
기본키에 복수 칼럼 설정하기
ALTER TABLE SALARY ADD CONSTRAINT SALARY_PK PRIMARY KEY(SALDATE, EMPNO);
[Oracle] 기본키 2개 이상 지정 (기본키 복수 칼럼 지정)
테이블 생성시 기본키 2개를 설정하려고 하면 오류가 발생한다. create table 테이블명( 컬럼1 number primary key, 컬럼2 number primary key ); 기본키는 복수가 되는데 왜? 라는 의문을 가질수 있지만 기본
practice365.xyz
이 글 참고
외래키 작성
테이블 생성시
CREATE TABLE [테이블명] (
[컬럼명] [데이터형식] FOREIGN KEY REFERENCES [테이블명] ([컬럼명])
)
테이블 작성 뒤 설정
ALTER TABLE [테이블명] ADD CONSTRAINT [FOREIGN KEY명] FOREIGN KEY ([컬럼명])
REFERENCES [테이블명] ([컬럼명])
삭제
ALTER TABLE [테이블명] DROP CONSTRAINT [FOREIGN KEY명]
예시
ALTER TABLE SALARY ADD CONSTRAINT SALARY_EMPNO_FK FOREIGN KEY(EMPNO)
REFERENCES EMP(EMPNO);
--REFERENCES 참조
'개발일지 > SQL' 카테고리의 다른 글
인덱스 리빌드 사용방법 (0) | 2021.11.19 |
---|---|
[Oracle] Outer Join (아우터 조인) (0) | 2021.11.19 |
[Oracle] 기본키 2개 이상 지정 (기본키 복수 칼럼 지정) (0) | 2021.11.19 |
[oracle 초보자] 데이터 쉽게 복붙 및 수정 (0) | 2021.11.19 |
[Oracle] 다양한 함수 배워보기 (0) | 2021.11.18 |