기본키는 자동 NOT NULL 이므로 NOT NULL이라고 안해도 됩니다.
제약조건은 테이블마다가 아니라 필요한 컬럼에 해주는겁니다.
LKDM_A01 테이블 같은경우는 EMPNO는 기본키이니 여기에 기본키라고 제약조건을 주면 되겠네요. 그리고 EMPNO에는 INT가 아닌 NUMBER가 옳습니다.
한마디로 제약조건을 주는 방식은 2가지 인데요,
1. 칼럼 옆에서 CONSTRAINT [칼럼이름] [제약조건]
2. 칼럼 다주고 밑에서 CONSTRAINT [칼럼이름] [제약조건](칼럼이름)
첫번째 방식으로...
SQL> CREATE TABLE LKDM_A01
2 (EMPNO NUMBER(4) CONSTRAINT LKDM_A01_EMPNO_PK PRIMARY KEY,
3 JUMIN_NO VARCHAR2(13),
4 EMP_NAME VARCHAR2(10),
5 JIKGB_CODE VARCHAR2(2),
6 JIKCH_CODE VARCHAR2(2));
이렇게 해보세요.
그리고 참조키 주는 방식은... 예를 들어 TEST 테이블의 TTT칼럼이 LKDM_A01의 EMPNO를 참조한다면...
SQL> CREATE TABLE TEST
2 (TTT NUMBER(4) CONSTRAINT TEST_TTT_FK REFERENCES LKDM_A01(EMPNO));
이런식으로 하면 됩니다.
------------------------------------------
다양한 방법이 가능합니다. ^^
-- 컬럼 레벨 제약 : 제약 조건에 이름을 붙이지 않는 방식
CREATE TABLE SALESDATA (
SNO NUMBER(5),
S_ID VARCHAR2(5) references sperson(s_id),
CCODE VARCHAR2(5) references carinfo(ccode),
SCOUNT NUMBER(3),
SDATE DATE default SYSDATE );
-- 컬럼 레벨 제약 : 제약 조건에 이름을 붙이는 방식
CREATE TABLE SALESDATA (
SNO NUMBER(5),
S_ID VARCHAR2(5) CONSTRAINT SALESDATA_S_ID_FK references sperson(s_id),
CCODE VARCHAR2(5) CONSTRAINT SALESDATA_CCODE_FK references carinfo(ccode),
SCOUNT NUMBER(3),
SDATE DATE default SYSDATE );
-- 테이블 레벨 제약 : 제약 조건에 이름을 붙이지 않는 방식
CREATE TABLE SALESDATA (
SNO NUMBER(5),
S_ID VARCHAR2(5),
CCODE VARCHAR2(5),
SCOUNT NUMBER(3),
SDATE DATE default SYSDATE,
foreign key(s_id) references sperson(s_id),
foreign key(ccode) references carinfo(ccode));
-- 테이블 레벨 제약 : 제약 조건에 이름을 붙이는 방식
CREATE TABLE SALESDATA (
SNO NUMBER(5),
S_ID VARCHAR2(5),
CCODE VARCHAR2(5),
SCOUNT NUMBER(3),
SDATE DATE default SYSDATE,
CONSTRAINT SALESDATA_S_ID_FK foreign key(s_id) references sperson(s_id),
CONSTRAINT SALESDATA_CCODE_FK foreign key(ccode) references carinfo(ccode));
[출처] 웹디황용
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
![]() |
☞자세히보기 |
|
|