SharedIT | 묻고 답하기(AMP)

SQL 쿼리 질문!!

안녕하세요.

테이블 컬럼을 지울게 생겼는데.. SQL 쿼리문 잘못날렸다 데이터 날아갈까봐 문의글 올립니다.

일단 테이블명은 vola 이고, 해당 테이블의 컬럼이 a,b,c,d 가 있습니다.


date는 날짜고 , a,b,c,d 는 데이터입니다.

여기서 vola 테이블의 date값이 2023-10-23 이전이면서 a값이 100인 c의 모든 데이터 값을 지우고 싶습니다.

이럴경우 쿼리문을 어떻게 해야될까요?

그리고 추가로 a값이 100인 데이터를 모두 지우려면 쿼리문을 어떻게 해야되는지도 부탁드립니다.



8개의 답변이 있습니다.

쿨가이
  0 추천 | 6달 전

UPDATE나 DELETE는 실수하면 굉장히 곤란한 경우가 발생하죠.

이미 여러분이 언급하셨지만 이작업할때 백업은 꼭 필수로 하시고 하세요.

특히 쿼리문이 생소하거나 복잡하면 예상하지 못하는 결과가 발생할 수 있습니다.

Simon.Park
  0 추천 | 6달 전

역시 고수분들이 많으셔서 금방 답변이 올라오네요 ㅎㅎ

혹시 모르니 테이블 복사해 두시고 작업하셔요~~~~ ^^

명동쓰레빠
  0 추천 | 6달 전

이미 답이 나와 있네요.

DELETE FROM VOLA WHERE A=100 AND DATE  조건이 붙는다면 추가 해야 겠죠

앵그리파파
  0 추천 | 6달 전

다들 빠르시네요. 그나마 간단한 쿼리문이라 문의글 보자마자 답도 달아주시고, 소통이 잘 되는 것 같아 많은 도움이 되는것 같습니다. 

에이스퐝 | 6달 전

네. 저도 덕분에 빨리 처리할수 있었습니다. 역시 쉐어드!!

wansoo
  0 추천 | 6달 전

update와 delete 하기 전에 

select 문으로 적용 대상 리스트를 먼저 확인하고 작업을 하면 안심이 될 수 있죠.

select * 

 from vola 

 where date <= '20231023' 

    and a = 100



처럼 작성해서 

대상자를 먼저 확인해 본후에 

필요하다면 해당 대상 리스트를 따로 복사해서 보관해두는 것도 만약을 위한 방법이   있겠고요.

그리고, 아래와 같이 select *  delete로 변경해서 명령을 수행 시키면 안심이 되죠.


delete 

 from vola

  where date <= '20231023' 

    and a = 100 



에이스퐝 | 6달 전

네. 일단 select 먼저 해보고 update해보니 빈공란으로 잘 적용되었습니다.

마지막에 commit 까지 완료하였습니다.

다들 감사합니다!!

차니 | 6달 전

저도 select 문으로 먼저 조건 맞는지 확인합니다^^


commit 하기전에도

에이스퐝
  0 추천 | 6달 전

쿼리 너무 무서워서.. 다들 빠른답변감사합니다!!!

minp3
  0 추천 | 6달 전

업데이트나 딜리트전 테이블을 백업하세요.(테이블 통백업 추천)

데이터 타입들이 명확하지 않으니 기본 쿼리만 알려드리면 미리 select 해보시어 컬럼 데이터 타입에 맞게 수정하시어 쓰세요.


1. vola 테이블의 date값이 2023-10-23 이전이면서 a값이 100인 c의 모든 데이터 값을 지우고 싶다는것이 row를 지우는게 아니라 c를 공백이나 null로 치고싶다면 아래와같이 하세요.

update vola set c=''

where date <= '20231023'

and a = 100


2.  a값이 100인 데이터를 모두 지우려면  아래와 같이 하세요.

delete from vola where a=100

에이스퐝 | 6달 전

감사합니다.

topkslee
  0 추천 | 6달 전

크게 어려진 않은데요. 다만 db 작업이 익숙하지 않으시면

작업 전에 백업을 받으시고 하시면 그나마 마음이 덜 쪼립니다. ㅎㅎ


1. date 20231023이전 데이터 중 a='100'인 c='' update 구문

update vola

set c = ''

where date < '20231023'

 and a = '100';


2. date 20231023이전 데이터 중 a='100'인 모든 데이터 지우기 delete 구문


delete from vola

where date < '20231023'

 and a = '100';


참고하세요

에이스퐝 | 6달 전

감사합니다.!!

topkslee | 6달 전

데이터 타입에 대한 정보는 없어

문자 타입으로 했습니다. date타입이나 number 타입이면

그에 맞게 약간 수정하시면 될것 같아요