레코드 변경 삭제

앞에서 이이서 study_db에서 진행하므로 중간에 오신분은 USE study_db를 입력합니다.

USE study_db;

레코드의 변경 명렁문은 다음과같다.

UPDATE 테이블명
SET 필드명 = 변경할 조건
WHERE 필드명 = 기존 속성값;

단일 레코드 변경

WHERE 절에 단일 필드만 검색하는 조건이 있는 경우 한 개의 레코드에 대해서만 변경이 발생하는 질의문이다.

이전에 사용했던 student 테이블을 사용해본다

UPDATE 명령문을 이용하여 mickey의 rank 값을 4만큼 더 높여보도록 하자.

그럼 student_db데이터베이스를 선택하고

다음과 같이 입력한다.

UPDATE student SET rank = rank + 4 WHERE name = 'mickey';

이렇게 하면 이름이 mickey인 레코드들 중 rank를 숫자 4를 더하게 된다.

그럼 결과는 아래와 같이 변경된다.

mickey의 랭킹이 9에서 4가 더해져 11이 되었다.

이렇게 하나씩 변경하는 것을 단일 레코드 변경이라 한다.

그럼 이번엔 전체 레코드 변경

전체의 rank를 한꺼변에 변경해본다. +3을 적용하고 조건을 없애면 된다.

UPDATE student SET rank = rank +3;

을 입력하면 아래와 같이 모든 rank에 3이 플러스 되었다. 위와 같이 조건없이 update문을 실행할 때는 다시한번 더 생각하고 또 생각하며 실행하시기 바랍니다.
저게 단순 데이터가 아닌 실제 서비스 되고 있는 서비스의 회원정보 일 수 있습니다.

여러분이 나중에 취업하고 프로그래머가 되어 실제 서비스의 모든 고객의 이름을 mickey로 바꾼다던지 할 수 있습니다.
그러니 실제 서비스에서는 혹시 모르니 실행할 때 백업을 미리 해두시거나 서버관리자에게 db백업을 몇시간마다 하는지 등 체크하시기 바랍니다.
그리고 혹시라도 실수해서 일부 레코드만 변경해야 하는데 모든 레코드의 값을 변경했거나 한다면 숨기지 말고 즉각 보고 하시기 바랍니다.
실수는 그럴수 있다 라고 넘어가고 바로 수습하면 되지만 숨기고 시간이 지나버리면 데이터가 꼬여버려서 여러분의 팀원 또는 회사원 전체가 야근과 주말 출근을 해야할 수 있습니다.

쿼리문 실행 전과 후의 차이

그럼 이번엔 레코드를 삭제해 보자.

DELETE FROM 테이블명 WHERE = 조건;

그럼 단일레코드 삭제부터

한개의 레코드만 삭제를 하는거다.

mike wazowski를 지워보자

DELETE FROM student WHERE name = 'mike wazowski';
SELECT * FROM student;

mike wazowski가 삭제되었다.

다시 한번 말하지만
여러분이 나중에 취업하고 프로그래머가 되어 실제 서비스의 특정 누군가를 삭제해야 하는 상황이 옵니다.
그러니 실제 서비스에서는 혹시 모르니 실행할 때 백업을 미리 해두시거나 서버관리자에게 db백업을 몇시간마다 하는지 등 체크하시기 바랍니다.
그리고 혹시라도 실수해서 특정 누군가의 레코드만 삭제해야 하는데 조건문을 쓰지않아 모든 레코드를 삭제했다면 즉각 보고 하시기 바랍니다.
실수는 그럴수 있다 라고 넘어가고 바로 수습하면 되지만 숨기고 시간이 지나버리면 데이터가 꼬여버려서 여러분의 팀원 또는 회사원 전체가 야근과 주말 출근을 해야할 수 있습니다.
최악의 경우 손해배상을 해야할 수 있습니다.

그럼 이번엔 rank가 8부터 14 사이인 사람들을 삭제해보자.

WHERE 에서 조건만 갖춰주면 된다. 간단하다!

DELETE FROM student WHERE rank >= 8 AND rank <= 14;

조건에 만족하는 사람들이 다 삭제 되었다. 그럼 전체 레코드 삭제는 어떻게 할까;

가장 간단하다

DELETE FROM 테이블명;

아래와 같다.

DELETE FROM student;

진짜 마지막으로 다시 한번 말한다. 정말 마지막입니다.
여러분이 나중에 취업하고 프로그래머가 되어 실제 서비스의 특정 누군가를 삭제해야 하는 상황이 옵니다.
그러니 실제 서비스에서는 혹시 모르니 실행할 때 백업을 미리 해두시거나 서버관리자에게 db백업을 몇시간마다 하는지 등 체크하시기 바랍니다.
그리고 혹시라도 실수해서 특정 누군가의 레코드만 삭제해야 하는데 조건문을 쓰지않아 모든 레코드를 삭제했다면 즉각 보고 하시기 바랍니다.
실수는 그럴수 있다 라고 넘어가고 바로 수습하면 되지만 숨기고 시간이 지나버리면 데이터가 꼬여버려서 여러분의 팀원 또는 회사원 전체가 야근과 주말 출근을 해야할 수 있습니다.
최악의 경우 손해배상을 해야할 수 있습니다.

모두 삭제되었다.

다음 강좌에서는 데이터베이스 백업 및 복원에 대해서 알아보자!!

현재까지의 db 백업 (아래는 현재까지의 작업을 백업한거라서 중도에 들어오신분들을 위한거에요.)

david_db smart study_db