개발노트

2. [MS-SQL] 테이블 생성하기 본문

DB/MS-SQL

2. [MS-SQL] 테이블 생성하기

mroh1226 2022. 10. 6. 14:54
반응형

프로그램에 사용가능한 테이블 구조를 만들어본다.

 

1. 사용자 테이블

2. 소속 테이블

3. 화면 테이블

4. 사용자와 그룹을 연결하는 테이블

5. 그룹이 접근 가능한 화면 테이블

 

ERD 다이어 그램(개체-관계 모델)으로 그리면 대략 아래와 같은 모습이다.

개체 관계 다이어그램(ERD)

 

 

 

- ERD다이어그램을 그릴 수 있는 사이트 링크: https://www.erdcloud.com/

 

ERDCloud

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com


1. DB  → 테이블(우클릭)  → 새로만들기  → 테이블 클릭

테이블 새로 만들기

 


2. ERD와 동일하게 테이블 입력한다.

테이블 정보입력

 


3. Primary Key 지정 및 Column 속성 설정하기


    1) Primary Key 지정: 식별키가 될 키에 우클릭, [기본키 설정] 선택

Primary Key 설정

 

    2) 기본값(Default Value) 설정

        2-1) [DATETIME]형에 현재 날짜시간 넣기: 열 속성 > 일반 > 기본값 또는 바인딩에 (GETDATE()) 입력

DATETIME형에 기본값 현재날짜 설정하기

        2-2) [INT]형에 0을 기본 값으로 주기: 열 속성 > 일반 > 기본값 또는 바인딩 = 0 입력

기본 값 0으로 설정하기

   

        2-3) [INT]형에 1부터 1씩 증가된 값을 기본 값으로 주기: 열 속성 > ID 사양 > ID 시드 = 1 , ID 증가값 = 1 입력

기본 값 1씩 증가시키기


4. 저장버튼을 누르면 테이블명을 입력하는 팝업이 나오고 입력 후, 확인버튼을 누르면 생성된다. (Ctrl + S)

테이블 이름 입력


위 과정을 SQL 문으로 작성한다면 아래와 같다.

USE [msdb]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[User](
	[Uid] [varchar](10) NOT NULL,
	[Password] [varchar](50) NOT NULL,
	[UserName] [nvarchar](50) NULL,
	[CreatedDate] [datetime] NOT NULL,
	[ModifiedDate] [datetime] NOT NULL,
	[IsDeleted] [int] NOT NULL,
 CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED 
(
	[Uid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[User] ADD  CONSTRAINT [DF_User_CreatedDate]  DEFAULT (getdate()) FOR [CreatedDate]
GO

ALTER TABLE [dbo].[User] ADD  CONSTRAINT [DF_User_ModifiedDate]  DEFAULT (getdate()) FOR [ModifiedDate]
GO

ALTER TABLE [dbo].[User] ADD  CONSTRAINT [DF_User_IsDeleted]  DEFAULT ((0)) FOR [IsDeleted]
GO

Tip: ERDCloud 사이트에서 SQL로 Export 할 수 있다.

복사 붙여넣기로 모든 테이블을 생성할 수 있다.

(단, MySQL 기준으로 쿼리를 작성해주니 검토는 필요하다.)

SQL Export

반응형
Comments