SQL 명령어 - DDL DML DCL TCL

해연·2023년 7월 24일
0

데이터베이스

목록 보기
2/14

SQL(Structured Query Language)

데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어
관계형 데이터베이스에서 데이터를 추출하고 조작하는 데에 사용하는 데이터 처리 언어

SQL 언어적 특성

  • SQL은 기본적으로 대소문자를 구분하지 않지만, 서버 환경이나 DBMS 종류에 따라 데이터베이스 또는 필드명에 대해 대소문자를 구분하기도 한다.
  • SQL 명령은 반드시 세미콜론(;)으로 끝나야 한다.
  • 고유값은 따옴표(")로 감싸준다.

SQL 명령어

DDL(Data Definition Language)

  • 데이터베이스 스키마와 설명을 처리하도록 정의하는 언어
  • 데이터베이스나 테이블 생성,변경,삭제 등의 작업이 포함된다.
  • 즉시 반영되므로 롤백 불가

CREATE

  • 데이터베이스의 객체 생성

ALTER

  • 데이터베이스의 구조 변경

DROP

  • 데이터베이스의 객체 삭제

TRUNCATE

  • 데이터베이스 초기화
  • 테이블에 할당된 모든 공간을 포함하여 모든 레코드 제거

DML(Data Manipulation Language)

  • 데이터 검색,삽입,변경,삭제 수행을 조작하는 언어
  • 실질적으로 저장된 데이터를 관리하고 처리할 때 사용한다.
  • 자동으로 커밋되지 않는다. 즉, 데이터베이스에 영구적이지 않으므로 롤백 가능

SELECT

  • 데이터 조회
SELECT [조회하려는 column] FROM [테이블명]
SELECT [조회하려는 column]
FROM [테이블명]
WHERE [조건]
GROUP BY [그룹열]
HAVING [그룹조건]

INSERT

  • 데이터 삽입
INSERT INTO [테이블명] (열1,열2,...) VALUE (값1,값2,...)

DELETE

  • 데이터 삭제
DELETE FROM [테이블명] WHERE [조건]

UPDATE

  • 데이터 조회
UPDATE [테이블] SET [열] = '변경할 값' WHERE [조건]

DCL(Data Control Language)

  • 데이터베이스에 권한 부여
    ※ 데이터베이스에 직접적인 영향을 미치기 때문에 DCL 명령어를 입력하는 순간, 명령어에 해당하는 작업이 즉시(AUTO COMMIT) 완료된다는 것을 기억

GRANT

  • 데이터베이스에 대한 사용자의 액세스 권한 제공
  • 특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한을 부여한다

REVOKE

  • GRANT 명령으로 주어진 액세스 권한을 철회한다.
  • 특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한을 박탈,회수한다.

TCL(Transaction Control Language)

  • 데이터의 보안,무결성,회복,병행,수행제어 등을 정의하는데 사용
  • 트랜잭션 제어

COMMIT

  • 트랜잭션의 작업 결과를 저장 반영

ROLLBACK

  • 데이터베이스를 마지막 COMMIT된 시점의 상태로 복원
  • 데이터에 대한 변경 내용은 논리적인 트랜잭션으로 그룹화 될 수 있다.

SAVEPOINT

  • COMMIT 전 특정 시점까지만 반영하거나 ROLLBACK한다.
  • ROLLBACK 할 때 트랜잭션에 포함된 전체 작업을 ROLLBACK 하는 것이 아니라 현 시점에서 SAVEPOINT까지 트랜잭션의 일부만 ROLLBACK 할 수 있다.

참고
https://iamfreeman.tistory.com/entry/DBMS-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%96%B8%EC%96%B4-DDL-DML-DCL-TCL-%EC%9D%98-%EC%A0%95%EC%9D%98
https://velog.io/@alicesykim95/DB-DDL-DML-DCL-TCL%EC%9D%B4%EB%9E%80

profile
물음표를 느낌표로 바꾸며 성장하는 예비 백엔드 개발자입니다.

2개의 댓글

comment-user-thumbnail
2023년 7월 24일

많은 도움이 되었습니다, 감사합니다.

1개의 답글