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에 있는 데이터들이 부모테이블을 참조하고 
있고 그참조데이터가 지워지면 자식들도 함께 지울수있게
옵션값을 주는것이다. 이렇게 하면 데이터의 무결성을 지킬수 있을것이다.