SQL
(MySql)테이블 생성명령어
undefineds
2020. 6. 20. 13:28
테이블을 생성하는 명령어이다.
신텍스
create table tableName(
Col1 Type primary key comment 'PK Key'
,Col2 Type
,Col3 Type
,PK > 2 primary KEY(Col1,Col2,Col3)
,OptionName1 optionSet1
OptionName2 optionSet2
)
아래는 실제 생성명령어이다.
create table MASTER_FILE
(
MASTER_ID int default 0 not null comment '상품ID',
FILE_CODE int not null COMMENT '파일유형',
FILE_ID int not null comment '상품파일ID',
FILE_NAME varchar(255) null comment '파일명',
FILE_ORG_NAME varchar(255) null comment '파일명',
CREATED_DATE varchar(14) null comment '등록일',
primary KEY (MASTER_ID,FILE_CODE,FILE_ID),
constraint FK_MASTER_TO_MASTER_FILE
foreign key (MASTER_ID) references MASTER (MASTER_ID)
on delete cascade
)
comment '상품상세파일';
옵션별 기능
constraint | 제약조건명을 설정하여 주는것이다. 이옵션을 사용하지 않으면 디폴트값으로 들어가는데 그러면 가독성이 떨어지게 되고 제약조건 관리가 잘안될수 있다. 쓰는형식은 프로젝트 마다 정말 다다르다 테이블명_키값 , 외부테이블_생성테이블 이렇게 하는 경우도 있다. |
|
foreign key (ColName) referenences (MASTER) | 해당구문은 참조하고있는 테이블(MASTER)의 외부키로 엮어주는 구문이다. |
|
on delete cascade | 이구문은 부모테이블을 참조하고있는 자식테이블 MASTER_FILE에 있는 데이터들이 부모테이블을 참조하고 있고 그참조데이터가 지워지면 자식들도 함께 지울수있게 옵션값을 주는것이다. 이렇게 하면 데이터의 무결성을 지킬수 있을것이다. |