Coding Memo

DB Basic - SQL 본문

카테고리 없음

DB Basic - SQL

minttea25 2024. 12. 27. 16:07

복습 차원 및 메모용으로 남겨두기 위해서 작성했다.

각 SQL 테스트는 MS SQL Server와 SSMS (SQL Server Management Stduio)를 사용했다.

 

정말 간단하게 쿼리를 작성하고 정말 간단하게 테스트해보기로 하자.

 

Note: CREATE DATABASE로 데이터베이스를 먼저 생성하고 시작한다.

CREATE DATABASE TestDB

DDL - CREATE

 


SQL (Structured Query Language, 구조적 질의 언어)는, RDBMS(Relational DataBase Management System, 관계형 데이터베이스 관리 시스템)에서 데이터를 관리하기 위해서 설계된 언어이다.

 

SQL을 이용하여 데이터베이스의 관리뿐만 아니라, 테이블과 데이터의 관리를 할 수 있다.

 

SQL은 크게 4가지로 분류될 수 있다:

1. DDL (Data Definition Language, 데이터 정의 언어)

2. DML (Data Manipulation Language, 데이터 조작 언어)

3. DCL (Data Control Language, 데이터 제어 언어)

4. TCL (Transaction Control Language, 트랜잭션 제어 언어)

 

실제로 4가지 쿼리를 여러가지 실행해보고 결과를 확인해보자.


DDL ( Data Definition Language )

 

데이터 정의 언어로, 데이터베이스에서 스키마, 테이블, 인덱스를 정의 하거나 변경할 때 사용한다.

-> CREATE, ALTER, DROP, TRUNCATE

 

- CREATE

테이블 생성

USE TestDB
CREATE TABLE Monster (
	MonsterID INT PRIMARY KEY,
	Name NVARCHAR(50) NOT NULL,
	Level SMALLINT,
	)

 

- DROP

테이블 삭제

USE TestDB
DROP TABLE Monster

 

- ALTER

테이블 변경

ALTER TABLE Monster
ADD MonsterType SMALLINT

 

- TRUNCATE

테이블에 있는 모든 데이터 제거

TRUNCATE TABLE Monster

 

 

 

 

 

DML (Data Manipulation Language)

 

데이터 조작 언어로, 데이터베이스에 저장된 데이터를 조작(삽입, 수정, 삭제, 조회)할 때 사용

-> INSERT, UPDATE, DELETE, SELECT

 

- INSERT

데이터 삽입

INSERT INTO dbo.Monster (MonsterID, Name, Level, MonsterType)
VALUES (100000, 'Slime', 10, 1);

여러개의 데이터를 한번에 삽입할 수도 있음

 

- UPDATE

데이터 수정 (업데이트)

UPDATE Monster
SET Level = 15
WHERE Name = 'Slime';

 

- SELECT

데이터 조회

SELECT * from Monster;

 

- DELETE

데이터 삭제 (행 삭제)

DELETE FROM Monster
WHERE MonsterID = 100000;

 

 

 

 

 

DCL (Data Control Language)

 

데이터 제어 언어로, 데이터베이스에 대한 접근 권한과 보안을 제어

-> GRANT, REVOKE

 

- GRANT

특정 사용자에게 권한을 부여

GRANT SELECT, INSERT ON Monster TO [유저];

[유저]의 Monster 테이블에 대한 SELECT와 INSERT 권한을 부여

 

- REVOKE

특정 사용자의 권한의 회수

REVOKE INSERT ON Monster TO [유저];

[유저]의 Monster 테이블에 대한 INSERT 권한 회수

 

 

 

 

TCL (Trasaction Control Language)

 

트랜잭션 제어 언어로, 트랜잭션와 관련된 작업을 수행

트랜잭션의 시작, 저장, 종료, 복구 관리를 하고, DML 작업을 그룹화하여 일괄 처리하거나 롤백 할 수 있음

-> COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION

 

- COMMIT: 트랜잭션을 성공적으로 종료하고 변경 내요을 데이터베이스에 영구적으로 반영

- ROLLBACK: 트랜잭션 중 발생한 변경 내용 취소

- SAVEPOINT: 트랜잭션 내 특정 시점을 저장 -> 필요 시 해당 지점으로 롤백 가능

- SET TRANSACTION: 트랜잭션의 속성을 설정 (READ ONLY, READ WRTIE)

 

 


Summary

 

  목적 주요 명령어 설명
DDL 데이터 구조 및 테이블 정의 및 변경 CREATE 테이블 생성
ALTER 테이블 속성(Attribute) 변경
DROP 테이블 삭제
TRUNCATE 테이블에 있는 모든 데이터 삭제
DML 데이터 조작 (삽입, 조회, 수정, 삭제) INSERT 데이터 삽입
SELECT 데이터 조회
UPDATE 데이터 수정 (업데이트)
DELETE 데이터 삭제
DCL 테이블 접근 권한 및 보안 제어 GRANT 접근 부여
REVOKE 접근 회수
TCL 트랜잭션 관리 COMMIT 트랜잭션 성공적으로 종료 및 변경 내용 반영
ROLLBACK 변경 내용 취소
SAVEPOINT 트랜잭션 내 특정 시점 저장
SET TRANSACTION 트랜잭션 속성 설정

 

 

 

다음 글에서는 RDB의 기본적인 요소와 파일 및 스키마에 대해 정리해놓아야 겠다.