DDL은 Data Definition Language의 약자로, 데이터 정의 언어를 의미합니다. DDL은 데이터베이스 스키마를 정의하거나 변경하기 위해 사용되는 SQL(Structured Query Language)의 한 부분입니다. DDL 명령어를 사용하여 데이터베이스, 테이블, 인덱스 등의 구조를 생성, 변경, 삭제할 수 있습니다. DDL은 데이터베이스의 구조를 다루는 데 초점을 맞추고 있으며, 실제 데이터의 추가, 수정, 삭제 등은 데이터 조작 언어(DML) 명령어를 통해 수행됩니다.
DDL의 주요 명령어에는 다음과 같은 것들이 있습니다:
- CREATE: 데이터베이스, 테이블, 인덱스 등의 새로운 구조를 생성합니다.
- ALTER: 기존의 데이터베이스 구조를 수정합니다.
- DROP: 데이터베이스, 테이블, 인덱스 등을 삭제합니다.
- TRUNCATE: 테이블의 모든 데이터를 삭제하지만, 테이블 구조는 유지합니다.
DDL 명령어는 데이터베이스의 메타데이터를 정의하거나 변경하기 위해 사용되며, 이러한 변경은 데이터베이스의 구조적인 측면에 영향을 미칩니다. DDL을 사용할 때는 데이터베이스의 설계나 구조 변경과 관련된 작업을 수행하게 됩니다.
는 MySQL 데이터베이스 서버에서 사용하는 설정 중 하나로, 데이터의 실수로 인한 잘못된 변경을 방지하기 위해 사용됩니다.
SQL_SAFE_UPDATESSQL_SAFE_UPDATES
가 활성화(값이 1로 설정)되어 있으면, UPDATE
나 DELETE
명령을 사용할 때 WHERE
절 없이 이러한 명령을 실행하는 것이 차단됩니다. 즉, 사용자가 특정 조건 없이 전체 테이블의 데이터를 변경하거나 삭제하는 것을 방지합니다.
SQL_SAFE_UPDATES
의 기본값은 0입니다. 이는 기본적으로 SQL_SAFE_UPDATES
가 비활성화되어 있음을 의미하며, 사용자가 명시적으로 조건 없이 UPDATE
나 DELETE
명령을 실행할 수 있습니다. 그러나 보안과 실수 방지를 위해 개발 환경이나 프로덕션 환경에서 이 옵션을 1로 설정하여 활성화할 수 있습니다. 활성화되면, WHERE
절을 사용하여 명시적으로 어떤 레코드를 업데이트하거나 삭제할지 지정해야 합니다.
MySQL Workbench 같은 도구를 사용할 경우, 이 설정은 기본적으로 활성화되어 있을 수 있으므로, UPDATE
나 DELETE
명령을 실행하기 전에 확인하는 것이 좋습니다. 설정을 변경하려면 다음 SQL 명령을 사용할 수 있습니다:
SET SQL_SAFE_UPDATES = 0; -- 비활성화
SET SQL_SAFE_UPDATES = 1; -- 활성화
이 설정은 데이터베이스 사용자가 실수로 대량의 데이터를 잘못 변경하거나 삭제하는 것을 방지하는 데 도움이 됩니다.
답글 남기기 응답 취소