이미 알고 있다고 생각하지만 처음 배운다고 생각하고 천천히 해보자
DDL, DML, DCL을 알아보기 전에 SQL이란 것을 먼저 알아보자
SQL
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
- 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터 베이스
객체 접근 조정 관리를 위해 고안되었다.
SQL문 실행 순서 예제
다음은 기본적인 SQL문의 순서를 나타낸 것이다.
⑤ SELECT
① FROM
② WHERE
③ GROUP BY
④ HAVING
⑥ ORDER BY
DDL(Data Definition Language) : 데이터 정의 언어 (DBA)
정의 : 테이블과 컬럼을 정의하는 명령어로 생성, 수정, 삭제 등의 데이터 전체 골격을 결정하는 역할을 담당한다.
- DDL은 명령어를 입력하는 순간 작업이 즉시 반영(Auto Commit)이 되기 때문에 사용할 때 주의해야 한다.
DDL 종류
● CREATE - 테이블을 생성하는 역할
● ALTER - 테이블의 구조를 수정하는 역할
● DROP - 테이블을 삭제하는 역할
● RENAME - 테이블을 생성하는 역할
● TRUNCATE - 테이블을 초기화하는 역할
→ DML에서 Delete한 후에 Commit과 결과적으로는 똑같다. 그러나 DELETE의 경우는
ROLLBACK 을 위해서 저장소를 더 차지하게 되므로 완전히 지울 것이라면 TRUNCATE가
좋다.
DML(Data Manipulation Language) : 데이터 조작 언어(개발자가 주로 쓰는 것)
정의 : 데이터베이스의 내부 데이터를 관리하기 위한 언어이다. 데이터를 조회, 추가, 변경, 삭제 등의 작업을
수행하기 위해 사용된다.
- DDL과 달리 즉시 반영(Auto Commit)이 되지 않는다. 영구적으로 변경을 원하면 COMMIT, 이전 상태로 다시
되돌리기 위해서 ROLLBACK할 수 있다.
DML 종류
● SELECT - 데이터베이스에서 데이터를 검색하는 역할
● INSERT - 테이블에 데이터를 추가하는 역할
● UPDATE - 테이블 내에 존재하는 데이터를 수정하는 역할
● DELETE - 테이블에서 데이터를 삭제하는 역할
DCL(Data Control Language) : 데이터 제어 언어 (DBA)
정의 : 데이터를 관리 목적으로 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용한다.
- DCL을 사용하면 데이터베이스에 접근하여 읽거나 쓰는 것을 제한할 수 있는 권할을 부여하거나 박탈할 수 있고
트랜잭션을 명시하거나 조작할 수 있다.
- 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안의 역할을 수행하며, 데이터의 저확을 위한 무결성을
유지하기도 한다. 마지막으로 시스템 장애에 대비한 회복과 병행수행을 제어한다.
DCL 종류
● GRANT - 권한을 정의할 때 사용하는 명령어
● REVOKE - 권한을 삭제할 때 사용하는 명령어
TCL(Transaction Control Language) : 트랜잭션 제어 언어
정의 : DCL과 비슷한 맥락이지만 데이터를 제어하는 언어가 아닌 트랜잭션을 제어할 때 사용한다.
TCL 종류
● COMMIT : 모든 작업을 정상적으로 처리하겠다는 명령어
● ROLLBACK : 모든 작업을 다시 돌려 놓겠다는 명령어
● SAVEPOINT : Commit전에 특정 시점까지만 반영하거나 Rollback하겠다는 명령어
'DB > 이론' 카테고리의 다른 글
Oracle - INDEX (0) | 2024.06.22 |
---|---|
인덱스(Index) Re (0) | 2024.06.21 |
VARCHAR, CHAR (0) | 2024.06.21 |
[ Full Table Scan ] vs [ Index Scan ] (0) | 2024.06.18 |
GROUP BY, DISTINCT (2) | 2024.06.18 |