DB

[MySQL] DROP 완벽 가이드 사용법(데이터베이스와 객체 삭제)

인생아 2024. 12. 22. 22:38
반응형

MySQL에서 DROP 명령어는 데이터베이스, 테이블, 뷰(View), 인덱스(Index) 등 다양한 객체를 완전히 삭제할 때 사용됩니다. 삭제된 데이터는 복구가 불가능하므로 사용 시 주의가 필요합니다.

DROP DATABASE: 데이터베이스 삭제

DROP DATABASE 명령어는 데이터베이스와 그 안에 포함된 모든 테이블, 데이터, 뷰 등을 완전히 삭제합니다.

문법

DROP DATABASE 데이터베이스명;

예제

-- test_db 데이터베이스 삭제
DROP DATABASE test_db;

-- 데이터베이스가 존재하는 경우만 삭제
DROP DATABASE IF EXISTS test_db;

Tip: 데이터베이스를 삭제하기 전에 중요한 데이터는 반드시 백업하세요. 삭제 후에는 복구가 불가능합니다.

반응형

DROP TABLE: 테이블 삭제

테이블을 삭제할 때 DROP TABLE 명령어를 사용합니다. 테이블과 함께 모든 데이터와 구조가 제거됩니다.

문법

DROP TABLE 테이블명;

예제

-- users 테이블 삭제
DROP TABLE users;

-- 테이블이 존재하는 경우만 삭제
DROP TABLE IF EXISTS users;

다중 테이블 삭제

여러 테이블을 한 번에 삭제할 수도 있습니다.

DROP TABLE orders, products, customers;

 

DROP COLUMN: 컬럼 삭제

테이블에서 특정 컬럼만 삭제하려면 ALTER TABLE 명령어와 함께 사용해야 합니다.

문법

ALTER TABLE 테이블명
DROP COLUMN 컬럼명;

예제

-- users 테이블에서 age 컬럼 삭제
ALTER TABLE users
DROP COLUMN age;

 

DROP INDEX: 인덱스 삭제

테이블의 인덱스를 삭제하려면 DROP INDEX 명령어를 사용합니다. 인덱스 삭제는 데이터 검색 속도에 영향을 미칠 수 있습니다.

문법

DROP INDEX 인덱스명 ON 테이블명;

예제

-- users 테이블의 idx_email 인덱스 삭제
DROP INDEX idx_email ON users;

 

반응형

DROP VIEW: 뷰 삭제

뷰(View)는 가상 테이블로, 이를 삭제할 때는 DROP VIEW 명령어를 사용합니다.

문법

DROP VIEW 뷰명;

예제

-- user_summary 뷰 삭제
DROP VIEW user_summary;

-- 뷰가 존재하는 경우만 삭제
DROP VIEW IF EXISTS user_summary;

 

DROP PROCEDURE: 저장 프로시저 삭제

저장 프로시저를 삭제할 때 DROP PROCEDURE 명령어를 사용합니다.

문법

DROP PROCEDURE 프로시저명;

예제

-- get_user 프로시저 삭제
DROP PROCEDURE get_user;

-- 프로시저가 존재하는 경우만 삭제
DROP PROCEDURE IF EXISTS get_user;

 

DROP TRIGGER: 트리거 삭제

테이블에 설정된 트리거를 삭제하려면 DROP TRIGGER 명령어를 사용합니다.

문법

DROP TRIGGER 트리거명;

예제

-- before_insert 트리거 삭제
DROP TRIGGER before_insert;

-- 트리거가 존재하는 경우만 삭제
DROP TRIGGER IF EXISTS before_insert;
 
반응형

종합 예제: 다양한 DROP 명령어 활용

아래는 MySQL DROP 명령어를 다양한 데이터베이스 객체에 적용한 종합 예제입니다.

-- 1. 데이터베이스 삭제
DROP DATABASE company_db;

-- 2. 테이블 삭제
DROP TABLE employees;

-- 3. 컬럼 삭제
ALTER TABLE employees
DROP COLUMN salary;

-- 4. 인덱스 삭제
DROP INDEX idx_name ON employees;

-- 5. 뷰 삭제
DROP VIEW employee_summary;

-- 6. 저장 프로시저 삭제
DROP PROCEDURE calculate_bonus;

-- 7. 트리거 삭제
DROP TRIGGER before_update_salary;
 

DROP 명령어 사용 시 주의사항

  1. 백업 필수: DROP 명령어로 삭제된 데이터는 복구가 불가능하므로 삭제 전에 데이터를 백업하세요.
  2. 종속성 확인: 테이블이나 뷰를 삭제할 경우, 다른 객체에 의존성이 있을 수 있으므로 확인이 필요합니다.
  3. IF EXISTS 활용: 삭제 대상이 존재하지 않는 경우 에러를 방지하려면 IF EXISTS를 사용하세요.

참고

MySQL 공식 문서: https://dev.mysql.com/doc/refman/8.0/en/

반응형