본문 바로가기
Database/MSSQL

MSSQL CREATE TABLE 완전 정리

by yazasus 2025. 5. 15.
728x90

MSSQL CREATE TABLE 완전 정리 – 기본 문법부터 실무 속성까지

CREATE TABLE은 SQL Server에서 테이블을 새로 생성할 때 사용하는 가장 기본적인 명령어입니다.
단순한 테이블 생성뿐 아니라, 기본키, 자동 증가, 기본값, 제약조건 등 다양한 속성을 함께 정의할 수 있습니다.

1. 기본 CREATE TABLE 문법


CREATE TABLE 테이블이름 (
    열이름 데이터형식 제약조건,
    ...
);

예제:


CREATE TABLE Users (
    UserId INT PRIMARY KEY,
    UserName NVARCHAR(100) NOT NULL,
    Email NVARCHAR(200),
    CreatedAt DATETIME DEFAULT GETDATE()
);
GO

 

2. 주요 속성 및 제약조건 설명

▶ PRIMARY KEY

  • 행을 고유하게 식별하는 키
  • 자동으로 NOT NULL + UNIQUE가 적용됨

UserId INT PRIMARY KEY

▶ NOT NULL

  • 해당 열은 NULL을 허용하지 않음
  • 필수 입력값을 의미

UserName NVARCHAR(100) NOT NULL

▶ DEFAULT

  • 입력값이 없을 경우 자동으로 지정되는 기본값

CreatedAt DATETIME DEFAULT GETDATE()

▶ IDENTITY

  • 자동 증가 숫자열 지정
  • 보통 PK에 함께 사용

UserId INT IDENTITY(1,1) PRIMARY KEY

IDENTITY(1,1)은 시작값 1, 증가값 1을 의미합니다.

▶ CONSTRAINT (제약조건 이름 지정)

  • 제약조건에 이름을 붙여 관리 가능
  • 에러 메시지, 수정 시 관리 편리

CONSTRAINT PK_Users PRIMARY KEY (UserId)

▶ UNIQUE

  • 중복 허용하지 않는 고유값 설정

Email NVARCHAR(200) UNIQUE

▶ FOREIGN KEY (외래 키)

  • 다른 테이블과의 관계 정의

FOREIGN KEY (RoleId) REFERENCES Roles(RoleId)

 

3. 복합 키(PK 또는 UNIQUE) 지정


CREATE TABLE OrderItems (
    OrderId INT,
    ProductId INT,
    Quantity INT,
    CONSTRAINT PK_OrderItems PRIMARY KEY (OrderId, ProductId)
);

두 개 이상의 컬럼으로 조합된 키를 설정할 수 있습니다.

 

4. 실무 예제: 다양한 속성 포함한 테이블 생성


CREATE TABLE Customers (
    CustomerId INT IDENTITY(1,1),
    Name NVARCHAR(100) NOT NULL,
    Email NVARCHAR(150) UNIQUE,
    RegisteredAt DATETIME DEFAULT GETDATE(),
    IsActive BIT DEFAULT 1,
    CONSTRAINT PK_Customers PRIMARY KEY (CustomerId)
);

---

5. 실무 팁 💡

  • 테이블 생성 시 제약조건에 명확한 이름을 붙이면 유지보수가 쉬워집니다.
  • IDENTITY 컬럼은 INSERT 시 값을 생략해야 자동으로 증가합니다.
  • CREATE TABLE 실행 전에 기존 테이블 존재 여부 확인 로직을 넣으면 오류 방지에 유용합니다:

IF OBJECT_ID('Users', 'U') IS NOT NULL
    DROP TABLE Users;

CREATE TABLE Users (
    ...
);

 

마무리

CREATE TABLE은 단순한 테이블 생성 이상의 의미를 가집니다.
데이터 무결성, 구조 설계, 유지보수까지 고려해 다양한 속성을 적극 활용해야 실무에서도 안정적인 데이터베이스를 운영할 수 있습니다.

728x90