CREATE 쿼리문은 새로운 엔터티(Entity)를 정의할 때 사용합니다. 새 데이터 베이스를 정의하거나 사용자 계정을 정의 및 테이블 등을 정의할 때 사용합니다. 여기에서는 CREATE TABLE로 시작하는 새 테이블을 정의하는 쿼리문을 살펴봅시다.
포멧:
CREATE TABLE
[ database_name . [ schema_name ] . | schema_name . ] table_name
[ AS FileTable ]
( { <column_definition> | <computed_column_definition>
| <column_set_definition> | [ <table_constraint> ] [ ,…n ] } )
[ ON { partition_scheme_name ( partition_column_name ) | filegroup | “default” } ]
[ { TEXTIMAGE_ON { filegroup | “default” } ]
[ FILESTREAM_ON { partition_scheme_name | filegroup | “default” } ]
[ WITH ( <table_option> [ ,…n ] ) ]
[ ; ]
예:
CREATE TABLE Custom
(
CID int identity(1,1) primary key,
CNAME varchar(50) not null,
PHONE varchar(50) not null,
ADDR varchar(100)
)
새 테이블을 정의할 때는 필수적으로 테이블 이름을 지정하고 테이블에 속할 열(Column)을 정의해야 합니다. 그리고 선택적으로 테이블이 속할 데이터 베이스 이름과 스키마 이름 등을 지정할 수 있습니다. 또한 파일을 보관하고 관리할 목적으로 테이블을 정의할 때는 FileTable을 만들면 강력한 DBMS의 기능을 제공받을 수 있습니다.
테이블의 열(Column)을 정의할 때는 열 이름과 형식이 오며 열의 다양한 속성과 제약 사항을 선택적으로 지정할 수 있습니다.
포멧:
<column_definition> ::=
column_name <data_type>
[ FILESTREAM ] [ COLLATE collation_name ] [ SPARSE ][ NULL | NOT NULL ]
[ [ CONSTRAINT constraint_name ] DEFAULT constant_expression ]
| [ IDENTITY [ ( seed ,increment ) ] [ NOT FOR REPLICATION ] ]
[ ROWGUIDCOL ]
예:
CID int identity(1,1) primary key,
CNAME varchar(50) not null,
PHONE varchar(50) not null,
ADDR varchar(100)
열 정의 예에서는 CID, CNAME, PHONE, ADDR 이름의 열을 정의한 것입니다. int, varchar(50), varchar(100)은 형식을 나타내는 것입니다. 그리고 identity는 테이블의 특정 열의 값을 데이터 베이스 엔진에서 자동으로 값을 지정하기 위한 것이며 (1,1)은 테이블에 처음 추가하는 데이터의 값을 1로 시작하고 1씩 증가하라고 지정한 것입니다. 일반적으로 identity로 지정한 열은 PRIMARY KEY 제약 조건을 지정합니다. 보다 자세한 내용을 원하시면 쿼리문을 자세히 다루는 레퍼런스나 MSDN을 참고하시기 바랍니다.