📌 1. 데이터베이스 생성

-- 새로운 데이터베이스 생성
CREATE DATABASE GameDB;

-- 해당 데이터베이스 사용
USE GameDB;

📌 2. 테이블 생성 (CREATE TABLE)

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

테이블 생성 문법

CREATE TABLE 테이블명 (
  열이름 자료형 [DEFAULT] [NULL | NOT NULL] ...
);

✅ C#으로 비유하면 다음과 같습니다:

int accountId;
string accountName;

📍 결과 확인

SELECT * FROM accounts;

📌 3. 테이블 삭제 (DROP TABLE)

DROP TABLE accounts;

⚠ 주의: DROP은 되돌릴 수 없으며, 전체 테이블이 삭제됩니다!


📌 4. 테이블 수정 (ALTER TABLE)


🔹 열 추가

ALTER TABLE accounts
ADD lastEnterTime DATETIME;

🔹 열 삭제

ALTER TABLE accounts
DROP COLUMN lastEnterTime;

🔹 열 변경

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

📌 5. 제약 조건 (CONSTRAINT)

SQL에서 제약 조건은 데이터 무결성과 고유성을 유지하기 위한 장치입니다.

✅ 주요 제약 조건

제약 조건설명
NOT NULL값을 반드시 입력해야 함
PRIMARY KEY행을 고유하게 식별하는 키 (중복/NULL 불가)
UNIQUE중복을 허용하지 않음
FOREIGN KEY다른 테이블의 키를 참조

📌 6. PRIMARY KEY 지정

방법 1: 테이블 생성 시 열 뒤에 바로 지정

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

방법 2: 테이블 마지막에 지정

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

방법 3: 나중에 ALTER로 지정 (❌ 권장 X)

ALTER TABLE accounts
ADD PRIMARY KEY (accountId);

⚠ 이름 없는 PRIMARY KEY는 삭제하기 까다롭습니다.

✅ 권장 방식: 제약 조건 이름 명시

ALTER TABLE accounts
ADD CONSTRAINT PK_Accounts PRIMARY KEY (accountId);

-- 삭제 시
ALTER TABLE accounts
DROP CONSTRAINT PK_Accounts;

🔍 PRIMARY KEY 비유 (C# Dictionary)

Dictionary<int, Player> players;
  • int → Primary Key
  • Player → 나머지 데이터
  • 키 값으로 빠르게 검색 가능

🚀 실행 성능 확인 (Execution Plan)

SELECT * FROM accounts
WHERE accountId = 1111;
  • Ctrl + L (실행 계획 보기)
  • Table Scan: 전체 탐색 → 느림
  • Clustered Index Seek: 인덱스를 통한 검색 → 빠름

profile
李家네_공부방

0개의 댓글