티스토리 뷰
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)는 쿼리를 이용해 추가하는 방법을 추천합니다.
도움이 되셨다면 공감 버튼 살짝 클릭해 주는 센스~