개인 공부 (23.07~

[SQL] DDL DML DCL 개념

Song쏭 2023. 9. 4. 14:39
SQL

Structured Query Language

관계형 데이터베이스에서

데이터를 조작하고 질의하기 위한 표준 프로그래밍 언어

 

대부분의 관계형 데이터베이스 관리 시스템(RDBMS)에서 지원되며,

데이터베이스 간의 데이터 조작 및 구조 정의의 표준화를 목표로 개발되었다.

(각 RDBMS 제품마다 특별한 확장 기능이나 문법의 차이는 있다.)

 

선언적 언어.

"어떻게"가 아닌 "무엇을"에 중점을 둔 프로그래밍 언어.

원하는 결과에 대한 명세만 제공하면 시스템이 그 명세에 따라 작동하는 방식.

사용자는 특정 작업을 수행하는 방법을 자세히 지시하는 대신 원하는 결과의 기능이나 특성만을 정의.

 

사용자가 원하는 결과를 얻기 위해 수행해야 할 구체적인 단계와 연산을 지정해야하는 절차적 언어와 반대.

 

SQL은 선언적 언어의 좋은 예시.

SQL 쿼리를 작성할 때 사용자는 어떻게 데이터를 가져오거나 조작해야 하는지 구체적으로 지시하지 않는다.

대신 "어떤 데이터를 원하는가"에 대해만 정의하고

DBMS가 그 쿼리를 어떻게 실행할 것인지 결정한다.

 

select * from people where name = 'James';

위의 쿼리에서 우리는 이름이 James인 사람의 정보를 얻고 싶다는 결과만을 명시한다.

데이터베이스가 내부적으로 이 정보를 어떻게 검색하는지(인덱스를 사용하는지, 스캔을 하는지 등)에 대해서

사용자가 지정하지 않는다.

 

SQL의 기본적인 명령어를 분류하기 위한 주요 카테고리

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

데이터베이스, 테이블, 인덱스, 뷰 등의 구조를 정의하거나 변경하거나 삭제하는데 사용된다.주요 명령어CREATE : 데이터베이스, 테이블 등을 생성한다.ALTER : 기존의 데이터 구조를 변경한다.DROP : 데이터베이스, 테이블 등을 삭제한다.TRUNCATE : 테이블의 모든 데이터를 삭제한다. (구조는 그대로 유지)

 

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

저장된 데이터를 조회하거나 수정하거나 입력하거나 삭제하는 작업에 사용된다.주요 명령어SELECT : 데이터를 조회한다.INSERT : 데이터를 입력한다.UPDATE : 데이터를 수정한다.DELETE : 데이터를 삭제한다.

 

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

데이터에 대한 접근을 제어하기 위한 권한 설정 및 트랜잭션 관리와 관련된 작업에 사용된다.

주요 명령어

GRANT : 특정 사용자에게 특정 작업에 대한 권한을 부여한다.

REVOKE : 특정 사용자의 특정 권한을 제거한다.

COMMIT : 트랜잭션의 변경 사항을 확정하고 반영한다.

ROLLBACK : 트랜잭션의 변경 사항을 취소한다.

 

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

데이터베이스의 트랜잭션을 제어한다.

주요 명령어

COMMIT : 트랜잭션의 모든 변경을 저장한다.

ROLLBACK : 최근의 COMMIT 이후의 모든 변경사항을 취소(되돌리기)한다.

SAVEPOINT : 트랜잭션 내에서 롤백할 수 있는 지점을 설정한다.

SET TRANSACTION : 트랜잭션의 속성을 설정한다.