이글은 MySQL의 DELETE와 UPDATE 명령어의 사용 방법을 아신 다음에 보는것을 추천합니다.
데이터베이스에서 데이터를 삭제하는 방법에는 물리삭제
와 논리삭제
가 있으며 그중 하나를 선택하여 사용합니다.
물리삭제는 SQL의 DELETE 명령어를 사용하여 직접 데이터를 삭제하는 방법입니다.
삭제 대상인 데이터가 필요없을때 (추후에 조회할 필요가 없을때) 사용합니다.
논리삭제는 SQL의 UPDATE 명령어를 사용하여 삭제 여부를 알수 있는 컬럼에 데이터가 삭제되었다는 값을 넣어서 표현합니다.
삭제를 해도 삭제하기전의 데이터를 보관해야 할 경우에 논리삭제를 사용합니다.
배송지 정보가 다음과 같이 3개가 있다고 하면
# id | 회원 id | 수령인 이름 | 수령인 연락처 | 기본 배송지 여부 | 우편번호 | 주소 | 상세주소 | 삭제여부 |
---|---|---|---|---|---|---|---|---|
1 | 1 | 김태하 | 010-1234-5678 | 1 | 01234 | 서울특별시 동작구 어딘가 | 101호 | 0 |
2 | 1 | 김태하 | 010-1234-5678 | 0 | 02345 | 서울특별시 광진구 어딘가 | 201호 | 0 |
3 | 1 | 김태하 | 010-1234-5678 | 0 | 03456 | 경기도 어딘가 | 301호 | 0 |
2번행을 논리 삭제해보겠습니다.
SQL의 UPDATE 명령어를 이용하여 삭제여부 컬럼의 값을 True로 바꾸어 줍니다.
실제 서비스에서 배송지 정보를 클라이언트에게 보낼때는 삭제여부
값이 0인 행만 보내주면 됩니다.
논리삭제의 경우 실제 데이터는 데이터베이스에 남아있고 사용자(클라이언트)에게 배송지 정보가 삭제된거 처럼 보여주는 방법입니다.
# id | 회원 id | 수령인 이름 | 수령인 연락처 | 기본 배송지 여부 | 우편번호 | 주소 | 상세주소 | 삭제여부 |
---|---|---|---|---|---|---|---|---|
1 | 1 | 김태하 | 010-1234-5678 | 1 | 01234 | 서울특별시 동작구 어딘가 | 101호 | 0 |
2 | 1 | 김태하 | 010-1234-5678 | 0 | 02345 | 서울특별시 광진구 어딘가 | 201호 | 1 |
3 | 1 | 김태하 | 010-1234-5678 | 0 | 03456 | 경기도 어딘가 | 301호 | 0 |
3번 행을 물리 삭제해보겠습니다.
SQL의 DELETE 명령어를 이용하여 데이터베이스의 3번째 행을 삭제합니다.
논리 삭제와는 다르게 물리 삭제는 실제로 데이터베이스에서 행 자체를 삭제합니다.
# id | 회원 id | 수령인 이름 | 수령인 연락처 | 기본 배송지 여부 | 우편번호 | 주소 | 상세주소 | 삭제여부 |
---|---|---|---|---|---|---|---|---|
1 | 1 | 김태하 | 010-1234-5678 | 1 | 01234 | 서울특별시 동작구 어딘가 | 101호 | 0 |
2 | 1 | 김태하 | 010-1234-5678 | 0 | 02345 | 서울특별시 광진구 어딘가 | 201호 | 1 |