티스토리 뷰


1.  DELETE - 역할

테이블에 데이터를 삭제하는 역할


◈ 구문형식


DELETE FROM 테이블명 WHERE 조건 컬럼= 조건 값


SELECT문을 이용


DELETE FROM 테이블명 

WHERE 조건 컬럼 = (SELECT 컬럼명 FROM 테이블명 WHERE 조건 컬럼 = 조건 값)




2. DELETE - 기본 테이블


◈ TEST_TABLE_ONE


 IDX

ID

NAME

AMT

1

test1

테스트1

1000

2

test2

테스트2

2000

3

test3

테스트3

3000



◈ TEST_TABLE_TWO


 IDX

ID

NAME

AMT

 CHECK_YN

1

test1

테스트1

1000

 

2

test2

테스트2

2000

 Y

3

test3

테스트3

3000

 Y




3. DELETE - SQL 문장


1. DELETE - 일반 문장


◈ SQL 문장

1
DELETE FROM TEST_TABLE_ONE WHERE ID='test1'



◈ 결과 테이블


ID

NAME

AMT

test2

테스트2

2000

test3

테스트3

3000


◈ 설명


일반적인 DELETE 문장은 위와 같은 조건절을 이용해서 삭제할 수 있습니다.



2. SELECT를 이용한 수정


◈ SQL 문장 

1
2
DELETE FROM TEST_TABLE_ONE
WHERE ID IN (SELECT ID FROM TEST_TABLE_TWO WHERE CHECK_YN='Y')



◈ 결과 테이블   


ID

NAME

AMT

test1

테스트1

1000


◈ 설명


이 문장을 보면 TEST_TABLE_TWO에 있는 체크컬럼에 값이 Y인 ID를 가져와서 TEST_TABLE_ONE에 있는 것들을 삭제하고 있습니다.

주의할 점은 여기서는 CHECK_YN에 체크된 값이 2개 이상이기 때문에 DELETE 조건절 문장에서 =이 아닌 IN을 넣었습니다.

만약 2개 이상의 값이 나온 SELECT문장을 가지고 삭제할 경우는 single-row 에러 라는 문구가 나올 것입니다.

이럴 때는 가능한 IN 이나 NOT IN 을 사용해 한 행을 포함한 여러 개의 행을 불러와도 작업을 수행할 수 있도록 하는 것이 좋습니다.




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday