
업무에 참고하시기 바랍니다.!
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 |