본문 바로가기

데이터베이스(DB)

[DB/SQL] 5. DML(Data Manipulation Language) - UPDATE, DELETE

반응형

[목차]

 

1. UPDATE

 

2. DELETE

 

 

  1. UPDATE

 

UPDATE 명령문은 데이터베이스의 테이블에서 데이터를 갱신하는 기능을 한다.

셀 단위로 데이터를 갱신할 수 있고, 만약 테이블에 존재하지 않는 열을 지정하면 에러가 발생한다. 

UPDATE의 단순한 문법은 다음과 같다.

 

UPDATE table_name SET column1='data1', column2='data2', ...  [WHERE condition]

 

column에는 열 이름을, data에는 넣고 싶은 내용을 넣는다. 

[WHERE condition]은 생략하면 행 전체에, 특정 행을 업데이트시키고 싶다면 WHERE를 이용하면 된다. 

 

여러 열을 동시에 변경하고 싶다면 SET 다음에 콤마(,)로 연결해서 작성해주면 된다. MySQL에서는 작성한 순서에 따라서 갱신 처리가 일어난다. (Oracle에서는 순서가 처리에 영향을 주지 않는다)

그러면 예시를 통해서 UPDATE를 자세히 알아보자. 다음과 같은 상태의 테이블이 주어져있다.

 

 

먼저, Kim의 직업을 변경시켜보자. 

mysql> UPDATE tb SET Job='Artist' WHERE Name = 'Kim';

 

WHERE를 생략하면 아래와 같이 모두 변경된다. 그러므로 UPDATE를 사용할 때 원하지 않는 변경이 일어나지 않도록 항상 주의해야 한다. 

 

 

SET 뒤에는 계산식이 들어갈 수도 있다. 예를 들어 1년이 지나 모든 구성원들의 나이를 1씩 증가시켜주어야 한다면 다음과 같이 작성하면 된다. 

 

mysql> UPDATE tb SET Age = Age+1;

 

 

  2. DELETE

 

DELETE는 테이블에서 조건을 만족하는 행을 지우고 싶을 때 사용한다. 

 

DELETE의 단순한 문법은 다음과 같다. 

mysql> DELETE FROM table_name [WHERE condition];

 

만약 WHERE를 사용하지 않는다면 테이블 전체가 지워지므로 항상 주의하자. 

John이라는 이름을 가진 행을 지우고 싶다면 다음과 같이 작성한다. 

 

mysql> DELETE FROM tb WHERE Name = 'John';

 

2번째 행이 올바르게 삭제된 것을 알 수 있다. 

그렇다면 만약 Job이 Artist인 행을 지운다면 어떻게 될까?

 

 

모든 행의 Job이 Artist이므로 테이블 전체가 삭제되는 것을 알 수 있다. 이때, 테이블 자체는 삭제되지 않는다. 

테이블 자체를 삭제하고 싶다면 DROP이라는 명령어를 사용한다. 

 

 

반응형