본문 바로가기
DEV

[ORALCE] DDL, DML, DCL, TCL 이란?

by 아노앤유노 2023. 6. 19.
반응형

ORACLE
DDL
DML
DCL
TCL
DATABASE
CREATE
ALTER
DROP
INSERT
SELECT
UPDATE
DELETE
GRANT
REVOKE
COMMIT
ROLLBACK

 

업무에 참고하시기 바랍니다.!

 

1. DDL (Data Definition Language) - 데이터 정의 언어: DDL은 데이터베이스의 구조와 관련된 작업을 수행하는 데 사용됩니다. 테이블, 인덱스, 제약 조건 등을 생성, 수정 또는 삭제하는 데 사용됩니다.
-CREAT, ALTER, DROP 등

 

-예제

--테이블 생성
CREATE TABLE Employees (
    ID INT,
    Name VARCHAR(100),
    Age INT,
    PRIMARY KEY (ID)
);

--테이블 컬럼 추가
ALTER TABLE Employees ADD Salary INT;

--테이블 삭제
DROP TABLE Employees;

 

2. DCL (Data Control Language) - 데이터 제어 언어:
DCL은 데이터베이스의 보안 및 권한 관리와 관련된 작업을 수행하는 데 사용됩니다. 사용자에게 권한을 부여하거나 취소하고, 트랜잭션의 커밋 또는 롤백 등을 관리하는 데 사용됩니다.
-GRANT, REVOKE 등

반응형

-예제

--사용자 권한 부여
GRANT SELECT, INSERT, UPDATE, DELETE ON Employees TO user1;

--사용자 권한 취소
REVOKE SELECT ON Employees FROM user1;

 

3.DML (Data Manipulation Language) - 데이터 조작 언어:
DML은 데이터를 조회, 삽입, 수정 또는 삭제하는 데 사용됩니다. DML은 데이터베이스 내의 테이블에서 실제 데이터를 조작하는 데 사용됩니다.
-INSERT, SELECT, UPDATE, DELETE 등

 

-예제

--데이터 삽입
INSERT INTO Employees (ID, Name, Age) VALUES (1, 'John', 25)

--데이터 조회
SELECT * FROM Employees WHERE Age > 30;

--데이터 수정
UPDATE Employees SET Age = 35 WHERE Name = 'John';

--데이터 삭제
DELETE FROM Employees WHERE ID = 1;

 

4. TCL (Transaction Control Language)은 트랜잭션의 커밋(commit) 또는 롤백(rollback)을 제어하는 데 사용됩니다. TCL을 사용하여 데이터베이스 트랜잭션의 일관성과 안정성을 관리할 수 있습니다.

TCL 문법은 트랜잭션의 제어와 관리에 중요한 역할을 합니다. 이를 통해 데이터 일관성과 안전성을 유지하고, 장애 또는 오류 발생 시 이전 상태로 롤백할 수 있습니다.
 -COMMIT, ROLLBACK 등

 

4-1 COMMIT
COMMIT은 현재 트랜잭션의 변경 사항을 영구적으로 저장하고 데이터베이스에 적용하는 데 사용됩니다.

--예제에서는 'Finance' 부서에 속한 직원들의 급여를 1000 달러 인상시키고, 이 작업을 변경 로그(AuditLogs)에 
--기록한 후에 COMMIT을 사용하여 변경 사항을 영구적으로 저장합니다.

BEGIN
    UPDATE Employees SET Salary = Salary + 1000 WHERE Department = 'Finance';
    INSERT INTO AuditLogs (LogMessage) VALUES ('Salary increased for Finance department');
    COMMIT;
END;

 

4-2 ROLLBACK

ROLLBACK은 현재 트랜잭션의 변경 사항을 모두 취소하고 이전 상태로 되돌리는 데 사용됩니다. 이는 트랜잭션 중에 오류가 발생했을 때 사용할 수 있습니다.

--예제에서는 'Finance' 부서에 속한 직원들의 급여를 1000 달러 인상시키고, 이 작업을 변경 로그(AuditLogs)에 기록한 후에 ROLLBACK을 사용하여 변경 사항을 취소합니다.
--따라서 모든 변경 사항이 취소되고 이전 상태로 돌아갑니다.
BEGIN
    UPDATE Employees SET Salary = Salary + 1000 WHERE Department = 'Finance';
    INSERT INTO AuditLogs (LogMessage) VALUES ('Salary increased for Finance department');
    ROLLBACK;
END;
반응형

'DEV' 카테고리의 다른 글

[C++] STL 이란? + 예시  (0) 2023.06.30
[ORACLE] LOCK 확인 및 해제  (0) 2023.06.19
[HTML] disabled 정의 / 활용  (0) 2023.05.17
[CSS] display 속성 block/none  (0) 2023.05.17
[기타] JAVA vs C++ TCP 통신 차이  (0) 2023.05.12