달력

62024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

SQL 을 작성하면서 DML , DDL, DCL, TCL 이런 용어를 알아야 하는가? 라고 묻는다면 ... 

"뭐 꼭 그럴필요는 없다." 라고 말한다. 

근데 SQL을 작성해야만 하는 개발자라면 저런 용어는 알아두는게 좋다. 

 

DML : Data Manipulation Language

쉽게 설명 > SELECT, UPDATE , INSERT , DELETE , MERGE 등..

풀어서 설명 > 우리가 일반적으로 "쿼리를 짠다" , "SQL을 작성한다" 이런것들을 말한다. 

근데....DML 에서 M 이 Manipulation 인건.....솜씨있는 처리로 쿼리를 짜라는 소린가??..ㅎㅎ 

 

DDL : Data Definition Language

쉽게 설명 > CREATE, ALTER, RENAME, DROP, TRUNCATE,  등..

풀어서 설명 > 객체(테이블, 뷰, 프로시져 등등)를 생성하거나 수정하거나 지우거나 할때 사용하는 Syntax

 

DCL : Data Control Language

쉽게 설명 > GRANT, REVOKE 등..

풀어서 설명 > 권한을 주거나 회수 하기위한 Syntax. 권한이란 접근 및 조회, 수정 권한 등을 말한다.

 

TCL : Transaction Control Language

쉽게 설명 > COMMIT, ROLLBACK, SAVEPOINT 등..

풀어서 설명 > 입력(Insert), 수정(Update), 삭제(Delete) 된 데이터는 사실 현재 본인의 세션에만 적용이 된것이라 생각하면 된다. 좀 더 깊게 파고들면 할말이 많은데 ... 일단은 이렇게만 알아두자 (깊게 파면 깊어짐)

여튼 현재 C,U,D 된 데이터를 DB(Table)에 "빡! 적용하라"..고 하는 명령어가 COMMIT, 

"응, 아니야 되돌려놔" 라고 하는 명령어가 ROLLBACK, 

"특정 위치까지만 되돌려놔" 라고 하는 명령어가 SAVEPOINT 이다.

SAVEPOINT 를 조금만 더 설명 하자면.....(아주 조금만.)

요렇게 하고 

SAVEPOINT pointForRollback1;

SAVEPOINT pointForRollback2;

요렇게 하면

ROLLBACK TO pointForRollback1;

pointForRollback1 지점까지만 Rollback이 되는거다...

그니까....pointForRollback1 다음부터 pointForRollback2 전까지 작업한 내용은 날라간다는것.

 

 

참고로 SQL은 Structured Query Language 의 약자이다

Posted by redev
|