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 의 약자이다
'Programming > 분석.설계.개발' 카테고리의 다른 글
[DB] 오라클 프로시져 예외처리(Exception) :: 리뎁 (0) | 2019.12.13 |
---|---|
[DB] 오라클 힌트(HINT) ::리뎁 (0) | 2019.12.13 |
[SQL] SQL 작성이 어려운 이유 ::리뎁 (0) | 2019.12.01 |
[프로그램 설계] 설계자의 마음가짐 (0) | 2019.11.24 |
[SQL] SQL 작성순서? (0) | 2019.11.17 |