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
'Database > MSSQL' 카테고리의 다른 글
| MSSQL DROP TABLE 제대로 사용하기 (0) | 2025.05.16 |
|---|---|
| MSSQL ALTER TABLE 완벽 가이드 (0) | 2025.05.15 |
| MSSQL 테이블 생성, 수정, 삭제하는 방법 (0) | 2025.05.14 |
| MSSQL 데이터베이스 생성 및 삭제 방법 (0) | 2025.05.13 |
| MSSQL 서비스 자동 시작 설정 방법 (0) | 2025.05.12 |