CS/DB

[DB] SQL - DDL, DML, DCL

leejunkim 2025. 7. 14. 10:37

WeeklyPaper: SQL에서 DDL과 DML의 차이점을 설명하고, 각각의 대표적인 명령어들의 용도를 설명하세요.

* 추가로 DCL까지 찾아보았다


SQL (Structured Query Language/ 구조적 쿼리 언어 )

SQL은 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어 / 쿼리 언어이다.

  • 정보를 표 형식으로 저장하고, schema를 사용하여 데이터 저장 전 정의가 필수다
  • SQL를 사용해서 기본적인 데이터의 CRUD (저장, 검색, 업데이트, 삭제)를 할 수 있다
  • 다른 프로그래밍 언어와 잘 통합이 된다
    • 예) Java로 SQL을 포함시켜 Oracle/MS SQL Server와 같은 주요 SQL 데이터베이스 시스템으로 고성능 데이터 처리 어플리케이션을 빌드할 수 있다

관계형 데이터베이스 관리 시스템:

  • SQL을 사용하여 데이터를 저장하고 관리한다
  • 서로 관련된 여러 데이터베이스 테이블을 저장한다
  • 예) MS SQL Server, MySQL 또는 MS Access

SQL문 / SQL 쿼리:

  • 관계형 데이터베이스 관리 시스템에서 이해하는 유효한 명령

관계형 VS 비관계형

여기서 잠시 관계형 VS 비관계형을 알아보자:

  관계형 데이터베이스 (SQL) 비관계형 데이터베이스 (NoSQL)
데이터 구조 정해진 행(Row)과 열(Column)의 테이블 형태 Key-Value, 문서(Document) 등 유연하고 다양한 구조
스키마(Schema) 엄격하고 고정됨 (데이터 저장 전 정의 필수) 유연함 (스키마가 없거나 동적으로 변경 가능)
확장성 주로 수직 확장 (서버 성능 업그레이드) 주로 수평 확장 (서버 대수 추가)
일관성 강력한 데이터 일관성 중시 (ACID 원칙) 가용성과 성능 중시 (BASE 원칙)
쿼리 언어 SQL (표준화된 언어) DB 종류별로 다른 API나 쿼리 언어 사용
예시 MySQL, PostgreSQL, Oracle MongoDB, Redis, Cassandra
주요 사용처 금융, 전자상거래 등 데이터 무결성이 중요한 서비스 빅데이터, 실시간 SNS 등 유연성과 빠른 처리가 중요한 서비스
* 수직 확장 = 기존 서버의 부품을 더 좋은 것으로 교체해서 성능을 높히는 방식 (CPU, RAM 업그레이드 등)
* 수평 확장 = 기존 서버와 비슷한 사양의 서버를 여러대 추가해서 일을 나누어 처리하는 방식

 

SQL 문법의 종류 3가지 

DDL - Data Definition Language (데이터 정의 언어)

데이터베이스의 구조(뼈대)만들고, 수정하고, 삭제하는 명령어들이다. 테이블이나 관계의 구조를 생성하는데 사용한다.

명령어 설명 예시
CREATE 데이터베이스 객체(테이블, 뷰 등) 생성 CREATE TABLE members (id INT, name VARCHAR(20));
ALTER 기존 객체의 구조 수정 (열 추가/삭제 등) ALTER TABLE members ADD (email VARCHAR(50));
DROP 테이블 객체를 완전히 삭제
- 삭제 후 되돌릴 수 없다
DROP TABLE members;
TRUNCATE 테이블의 모든 데이터 삭제 (구조는 남음)
- 삭제후 용량이 줄어들고, 인덱스/id/name 등도 모두 삭제
- 테이블 초기화 (뒤로가기 버튼처럼)
- 삭제 후 되돌릴 수 없다
TRUNCATE TABLE members;

DML - Data Manipulation Language (데이터 조작 언어)

테이블 안의 실제 데이터를 다루는 명령어들이다.

- 가장 많이 쓰임

명령어 설명 예시
SELECT 데이터 조회 SELECT * FROM members;
INSERT 새로운 데이터 삽입 INSERT INTO members (id, name) VALUES (1, '홍길동');
UPDATE 기존 데이터 수정 UPDATE members SET name = '김철수' WHERE id = 1;
DELETE 데이터 삭제
-  테이블 안에 원하는 데이터만 지울 수 있다
- 삭제한것을 되돌릴 수 있다
- 롤백이 가능
DELETE FROM members WHERE id = 1;

DCL - Data Control Language (데이터 제어 언어)

데이터에 대한 접근 권한을 관리하고, 트랜잭션을 제어하는 명령어들이다.

 

명령어 설명 예시
GRANT 사용자에게 특정 권한 부여 GRANT SELECT ON members TO user1;
REVOKE 사용자의 권한 회수 REVOKE SELECT ON members FROM user1;
COMMIT 모든 작업을 최종적으로 확정하고 저장 COMMIT;
ROLLBACK 작업을 취소하고 이전 상태로 되돌림 ROLLBACK;

 

DROP VS TRUNCATE VS DELETE

 

헷갈려서 따로 정리해봤다.

 

  DELETE (데이터 삭제) TRUNCATE (데이터 비우기) DROP (테이블 삭제)
대상 테이블의 일부 또는 전체 행, 데이터만 삭제 테이블의 모든 행 (테이블 초기화) 테이블 자체 (테이블 스키마+데이터)
종류 DML  DDL  (일부 DML) DDL
WHERE 절
속도 느림 빠름 매우 빠름
ROLLBACK ✅(COMMIT 이전에 가능)
결과 데이터만 삭제 데이터만 삭제 (빈 테이블 남음) 테이블 자체가 사라짐
 

자료

 

SQL이란 무엇인가요? - 구조적 쿼리 언어(SQL) 설명 - AWS

구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과

aws.amazon.com

 

SQL DDL, DML, DCL이란?

SQL (Structered Query Language) [https://ko.wikipedia.org/wiki/SQL] 자세한내용 참고 - 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이

zzdd1558.tistory.com

 

SQL) DROP vs TRUNCATE vs DELETE 차이 비교

DROP, TRUNCATE, DELETE는 모두 삭제하는 명령어이지만 차이가 있습니다. 한눈에 알아보기 쉽게 표로 정리해 보았습니다. 😀 DROP TRUNCATE DELETE 종류 DDL DDL (일부 DML 성격) DML COMMIT AUTO COMMIT AUTO COMMIT 사용

yurimac.tistory.com

  • Gemini Chat (노트 정리 위주)

'CS > DB' 카테고리의 다른 글

[DB] 정규화, 역정규화  (0) 2025.07.18