본문 바로가기
DB/Mysql

오라클 DB DELETE문 기초와 작성 방법: 예제 포함

by 도도팩토리 2024. 7. 2.
반응형

오라클 DB DELETE문 기초와 작성 방법: 예제 포함

안녕하세요, 여러분! 도도입니다! 오늘은 오라클 데이터베이스에서 데이터를 삭제할 때 사용하는 DELETE문에 대해 알아보겠습니다. DELETE문은 특정 조건에 맞는 데이터를 테이블에서 삭제할 때 사용됩니다. DELETE문의 기본 구조와 다양한 예제 쿼리를 통해 DELETE문을 효과적으로 사용하는 방법을 살펴보겠습니다.

DELETE문의 기본 구조

DELETE문의 기본 구조는 다음과 같습니다:

DELETE FROM table_name WHERE condition;​

각 부분의 의미는 다음과 같습니다:

  • DELETE FROM: 데이터를 삭제할 테이블을 지정합니다.
  • WHERE: 삭제할 데이터의 조건을 지정합니다. 조건을 생략하면 테이블의 모든 데이터가 삭제되므로 주의해야 합니다.

기본 예제

  1. 특정 행 삭제

특정 조건에 맞는 행을 삭제하려면 WHERE 절을 사용합니다.

DELETE FROM employees WHERE employee_id = 101;​

이 쿼리는 employees 테이블에서 employee_id가 101인 행을 삭제합니다.

  1. 여러 조건을 사용한 삭제

AND 연산자를 사용해 여러 조건을 결합할 수 있습니다.

DELETE FROM employees WHERE department_id = 10 AND job_id = 'SA_REP';​

이 쿼리는 employees 테이블에서 department_id가 10이고 job_id가 'SA_REP'인 행을 삭제합니다.

  1. 조건 없이 모든 행 삭제

조건 없이 모든 행을 삭제하려면 WHERE 절을 생략할 수 있습니다. 그러나 이 작업은 매우 주의해야 합니다.

DELETE FROM employees;​

이 쿼리는 employees 테이블의 모든 행을 삭제합니다. 데이터 손실을 방지하려면 반드시 필요한 경우에만 사용하세요.

  1. LIKE 연산자를 사용한 삭제

LIKE 연산자를 사용해 특정 패턴과 일치하는 데이터를 삭제할 수 있습니다.

DELETE FROM employees WHERE email LIKE '%@example.com';​

이 쿼리는 employees 테이블에서 이메일이 @example.com으로 끝나는 모든 행을 삭제합니다.

  1. IN 연산자를 사용한 삭제

IN 연산자를 사용해 여러 값을 조건으로 지정할 수 있습니다.

DELETE FROM employees WHERE department_id IN (10, 20, 30);​

이 쿼리는 employees 테이블에서 department_id가 10, 20, 30인 행을 모두 삭제합니다.

  1. 서브쿼리를 사용한 삭제

서브쿼리를 사용해 다른 테이블의 데이터를 기반으로 삭제할 수 있습니다.

DELETE FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'Sales');​

이 쿼리는 employees 테이블에서 department_name이 'Sales'인 부서의 department_id를 가진 행을 삭제합니다.

트랜잭션 관리

DELETE문을 사용할 때 트랜잭션을 관리하는 것이 중요합니다. COMMIT과 ROLLBACK을 사용해 데이터베이스 상태를 제어할 수 있습니다.

  1. DELETE와 COMMIT

데이터 삭제 후 COMMIT을 사용해 변경 사항을 확정합니다.

DELETE FROM employees WHERE employee_id = 102; COMMIT;​
  1. DELETE와 ROLLBACK

데이터 삭제 후 ROLLBACK을 사용해 변경 사항을 취소할 수 있습니다.

DELETE FROM employees WHERE employee_id = 103; ROLLBACK;​

DELETE와 관련된 제약 조건

데이터를 삭제할 때 참조 무결성을 유지하기 위해 제약 조건을 고려해야 합니다. 외래 키(Foreign Key) 제약 조건이 설정된 경우 관련된 데이터를 먼저 삭제하거나, ON DELETE CASCADE 옵션을 사용해 종속 데이터를 자동으로 삭제할 수 있습니다.

ALTER TABLE orders ADD CONSTRAINT fk_employee FOREIGN KEY (employee_id) REFERENCES employees(employee_id) ON DELETE CASCADE;​

이 예제에서는 orders 테이블에 employee_id 외래 키 제약 조건을 추가하고, employees 테이블에서 employee_id가 삭제될 때 관련된 orders 데이터도 자동으로 삭제되도록 설정합니다.

결론

오라클 DB의 DELETE문은 데이터를 삭제하는 데 필수적인 SQL 문입니다. DELETE문의 기본 구조와 다양한 예제 쿼리를 통해 데이터를 효율적으로 삭제하는 방법을 배웠습니다. DELETE문을 사용할 때는 항상 조건을 명확히 지정하고, 트랜잭션 관리와 제약 조건을 고려해 데이터 무결성을 유지하세요.

여러분의 데이터베이스 관리에 많은 도움이 되길 바라며, 다음에도 유익한 정보로 찾아뵙겠습니다. 감사합니다!


해시태그

#오라클DB #OracleDB #SQL #DELETE문 #데이터베이스 #DBMS #데이터삭제 #SQL기초 #데이터베이스기초 #IT기초 #프로그래밍 #데이터관리 #트랜잭션관리 #참조무결성

반응형