MS SQL

[MS SQL]4.데이터 베이스 작성

myjeongjun 2025. 2. 2. 16:49

DB 생성

CREATE DATABASE [이름]

 

CREATE DATABASE GameDB;

 

테이블 생성(CREATE)

CREATE TABBLE 테이블명(열이름 자료형 [DEFAULT 기본값][ NULL | NOT NULL],...)

CREATE TABLE accounts(
	accountID INTEGER NOT NULL,
	accountName VARCHAR(10) NOT NULL,
	coins INTEGER DEFAULT 0,
	createdTime DATETIME
);

테이블 삭제(DROP)

단순히 DROP TABLE [테이블 이름]해주면 테이블이 지워진다.

DROP TABLE accounts;

 

 

테이블 변경(ALTER)

열 추가(ADD)/삭제(DROP)/변경)(ALTER)

 

열 추가

ALTER TABLE accounts
ADD lastEnterTime DATETIME

 

열 삭제

ALTER TABLE accounts
DROP COLUMN lastEnterTime

 

열 변경

ALTER TABLE accounts
ALTER COLUMN accountName VARCHAR(20) NOT NULL

 

제약(CONTSTRAINT) 추가/삭제
1.NOT NULL
2.UNIQUE
3.PRIMARY KEY
4.FOREIGN KEY

 

강의에서 PRIMARY KEY에대해서 강조하는데, 간략하게 설명해서 PRIMARY KEY로 설정해놓은 속성은 데이터를 찾을때 Dictonary처럼 찾고 그렇지 않은건 LIST처럼 모든 원소를 비교하면서 찾는 형식이라고 한다.

 

이런식으로PRIMARY KEY를 지정할 수있는데, 이 방식은 나중에 해제할때 불편하다고하니 제약에 이름을 붙여 관리 할수있다고 한다. 

ALTER TABLE accounts
ADD PRIMARY KEY (accountID);

 

개선된 제약 추가 , 해제

ALTER TABLE accounts
ADD CONSTRAINT PK_Account PRIMARY KEY (accountID);

ALTER TABLE accounts
DROP CONSTRAINT PK_Account;

 

 

accountID를 PRIMARY KEY로 지정하고이 코드를 실행하면

SELECT *
FROM accounts
WHERE accountID = 1111;

 

ctrl + L을 눌럿을때 Clustered Index Seek라는 식으로 진행된다 나온다.

반면 PRIMARY KEY를 해제하고 실행해보면 Table Scan하는 식으로찾는다.