DDL(Data Definition Language)은 데이터베이스의 구조를 정의하거나 변경하는 데 사용되는 SQL 언어의 일종입니다. DDL 명령어는 테이블, 인덱스, 스키마 등을 생성하거나 수정, 삭제하는 작업을 수행합니다. ### 주요 DDL 명령어와 예시 1. **CREATE** - 새로운 데이터베이스 객체(예: 테이블, 인덱스 등)를 생성하는 명령어입니다. **예시:** ```sql CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, Name VARCHAR(100), Position VARCHAR(50), Salary DECIMAL(10, 2) ); ``` - **설명**: `Employees`라는 테이블을 생성하고, 이 테이블에는 `EmployeeID`, `Name`, `Position`, `Salary`라는 칼럼이 있습니다. `EmployeeID`는 기본 키로 설정되었습니다. 2. **ALTER** - 기존 데이터베이스 객체의 구조를 수정하는 명령어입니다. 칼럼을 추가, 삭제하거나 데이터 타입을 변경할 때 사용됩니다. **예시:** ```sql ALTER TABLE Employees ADD COLUMN HireDate DATE; ``` - **설명**: `Employees` 테이블에 `HireDate`라는 칼럼을 추가합니다. 이 칼럼의 데이터 타입은 `DATE`입니다. 3. **DROP** - 데이터베이스 객체를 삭제하는 명령어입니다. 테이블, 인덱스, 스키마 등을 삭제할 때 사용됩니다. **예시:** ```sql DROP TABLE Employees; ``` - **설명**: `Employees` 테이블을 삭제합니다. 이 명령어를 실행하면 테이블과 그 안의 모든 데이터가 삭제됩니다. 4. **RENAME** - 데이터베이스 객체의 이름을 변경하는 명령어입니다. **예시:** ```sql ALTER TABLE Employees RENAME TO Staff; ``` - **설명**: `Employees` 테이블의 이름을 `Staff`로 변경합니다. ### DDL과 그 외의 SQL 언어 - **DDL (Data Definition Language)**: 테이블 및 데이터베이스 구조를 정의합니다. `CREATE`, `ALTER`, `DROP`, `RENAME` 등이 포함됩니다. - **DML (Data Manipulation Language)**: 데이터를 조회하거나 조작하는 데 사용됩니다. `SELECT`, `INSERT`, `UPDATE`, `DELETE` 등이 포함됩니다. - **TCL (Transaction Control Language)**: 트랜잭션의 시작과 종료를 제어하는 명령어입니다. `COMMIT`, `ROLLBACK` 등이 포함됩니다. - **DCL (Data Control Language)**: 데이터베이스에 대한 접근 권한을 관리합니다. `GRANT`, `REVOKE` 등이 포함됩니다. ### 예시 문제 분석 문제에서 "DDL 문이 아닌 것"을 묻고 있습니다. 이중 `COMMIT`은 TCL(Transaction Control Language)에 속하는 명령어로, 트랜잭션의 결과를 데이터베이스에 영구적으로 반영할 때 사용됩니다. 따라서 `COMMIT`은 DDL 문에 해당하지 않으며, 나머지 `CREATE`, `ALTER`, `RENAME`는 모두 DDL 명령어입니다. ### 요약 - **CREATE**: 데이터베이스 객체를 생성. - **ALTER**: 데이터베이스 객체를 수정. - **DROP**: 데이터베이스 객체를 삭제. - **RENAME**: 데이터베이스 객체의 이름을 변경. DDL 명령어는 데이터베이스의 구조를 정의하거나 변경하는 작업을 수행하며, 이 과정에서 데이터베이스가 어떻게 저장되고 관리될지를 결정합니다. ![[Screenshot 2024-08-17 at 11.04.01 AM.png]]