티스토리 뷰




MSSQL 쿼리문을 이용한 테이블생성, 필드변경, 인덱스생성 구문입니다




* 테이블 생성 구문


1) 구문 :

    create table 테이블명

    (

       필드명 필드타입(길이) null유무 기본값  ID증가값 수식,

       필드명 필드타입(길이) null유무  ,

        '

        '

        '

    )

2) 예시 :

    create table TT_BOARD  --> TT_BOARD라는 이름으로 테이블을 만듭니다.

    (

       idx int  not null identity(1,1) ,  --> idx라는 int형 필드명으로 1에서 1씩 자동증가 값을 지정한다.

       title varchar(100) not null  , --> title이라는 varchar형(길이 100) 필드명으로 null 값을 허용하지 않는다.

       InDate datetime not null default(getdate())  , --> inDate라는 날짜형 필드로 기본값을(날짜) 저정한다.

       Counts as (idx + 1)   , --> Counts라는 수식형 필드로 지정합니다. (수식 적용시 필드 Type은 지정하지 않습니다.)

         Memo text null  , --> Memo라는 Text형 필드명으로 null 값을 허용한다.

        '

        '

        '

    )




* 테이블 삭제 구문


1) 구문 : drop table [테이블명]

2) 예시 : drop table TT_BOARD  




* 테이블 필드 추가하기


1) 구문 : alter table [테이블명] add 추가할필드명 필드타입(길이) null유무

2) 예시 : alert table TT_BOARD add memo varchar(300) not null

               설명 : TT_BORAD 라는 테이블에 memo 필드(길이 300에 null값을 허용 불가)를 추가시킨다.

               null 값을 허용하려면 not을 빼고 null 또는 not null 항목을 빼고 구문을 실행 시킨다.



 

* 테이블 필드 수정

1) 구문 : alter table [테이블명] alter column 수정할필드명 필드타입(길이) null유무

2) 예시 : alert table TT_BOARD alter column title varchar(300) not null 




* 인텍스 추가

1) 구문 : create clustered index 인덱스명 on 테이블명(인덱스를 지정할 필드명 ASC 또는 DESC)

2) 예시 : create index idx_papt_ssn on tb_table(PSPT_SSN)  -- 단일 인덱스생성(넌클러스트)

   create clustered  index idx_papt_ssn on tb_table(PSPT_SSN)  -- 단일 인덱스생성(클러스트)

   create index idx_papt_ssn on tb_table(PSPT_SSN,PSPT_SSN) --복수 인덱스생성


 

* 인텍스 삭제

1) 구문 : drop idex 테이블명.인덱스명 

2) 예시 : drop index  table.idx_papt_ssn

* pk로 설정되어 있는 필드는 index 삭제 불가 인덱스 alter 문의로 수정

alter table 테이블명 drop constraint 인덱스명


특히 대용량데이터베이스의 경우 SQL SERVER MANGAGER 를 이용해 인덱스를 추가할 경우 

LOCK이 발생하거나 인덱스를 추가하는데도 시간이 많이 소요되는 단점이 있다

역시나 인덱스(특히 clustered)는 쿼리를 이용해 추가하는 방법을 추천합니다.



도움이 되셨다면 공감 버튼 살짝 클릭해 주는 센스~


반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday