본문 바로가기

Database/sql 강의

mysql update sql 독학 강의#18편 -sTricky

mysql update sql 독학 강의#18편 -sTricky

 

콘텐츠 index

0. update란 무엇인가?

1. 기본 update문 사용방법
2. 2개 이상의 칼럼 값을 변경하는 update문 사용방법

## 전편 강의 보러 가기 ##

2020/05/15 - [Database/sql 강의] - sql 독학 강의 # mysql insert 사용 방법 17편 -sTricky

 

sql 독학 강의 # mysql insert 사용 방법 17편 -sTricky

sql 독학 강의 # mysql insert 사용 방법 17편 -sTricky 콘텐츠 index 0. insert란 무엇인가? 1. insert를 하는 다양한 방법 ## 전편 강의 보러 가기 ## 2020/05/11 - [Database/sql 강의] - sql 독학 강의 # sub..

stricky.tistory.com

 

 

안녕하세요.

 

오늘은 mysql에서 update 문을 사용하는 방법에 대해서 강의를 진행하겠습니다.

 

코로나가 잠잠해지다가 다시금 돌아다니는 것 같은데, 여러분들도 생활 속 거리두기에 만전을 기해주시길 바랍니다.

 

그럼 오늘 mysql update 강의 포스팅 시작하겠습니다~!!

 

0. update란 무엇인가?

insert는 DB에 row를 삽입, 즉 새로운 값을 넣는 행위를 말합니다. 어떤 테이블에 데이터가 22건이었다면 insert로 1 row를 추가한다면 그 테이블의 데이터가 23건이 됩니다.

 

위 그림을 보시면 1번 테이블은 22건이지만, 2번 테이블을 보면 23건, 가장 아래 빨간 박스 안의 데이터가 추가된 것을 보실 수 있습니다. 이게 insert입니다.

 

그렇다면 오늘 배워볼 update는 뭘까요? update란 기존 데이터의 row 수는 변하지 않지만 row 내 특정 칼럼의 값이 바뀌는 작업을 말하는 겁니다.

 

위 그림을 다시 보시면 2번 테이블 그림의 빨간 박스 안의 내용 중 name 칼럼에 "홍길동"이라는 값이 있습니다. 이 값을 "손흥민"으로 변경시켜 보겠습니다. 이렇게 값을 변경하는 행위, 명령을 update라고 합니다.

 

1. 기본 update문 사용방법

위에서 말한 대로 2번 테이블 그림의 빨간 박스 안의 내용 중 name 칼럼 값을 "홍길동"에서 "손흥민"으로 변경해보도록 하겠습니다.

update class.insert_test set name = '손흥민' where seq = 26;

update 명령어는 위와 같이 입력을 하시면 됩니다.

 

그럼 잘 변경이 되었는지 확인해 보겠습니다.

빨간 박스 안 row의 name 칼럼 값이 "손흥민"으로 변경이 된 것을 확인할 수 있습니다.

위 update 커맨드 설명해드리겠습니다.

update class.insert_test set name = '손흥민' where seq = 26;
update <테이블명> set <컬럼명> = '손흥민' where <키값> = 26;

위 update 명령어를 보면 update 뒤에 업데이트 대상 <테이블명>을 쓰고, set이라는 명령어를 쓴 뒤에 변경할 <칼럼명>을 입력하고, = "변경할 값"을 입력해줍니다. 위 명령에서는 '손흥민'이라고 입력을 했습니다.

 

그리고 where절이 조건절인데, 어느 행의 name값을 바꿀 건지를 입력하는 것입니다. 위 테이블의 Primary key 값이 들어 있는 칼럼은 seq 이기 때문에 seq가 26인 row의 name값을 '손흥민'으로 변경하라는 명령어가 완성되는 것입니다.

 

그럼 만약에 where 절을 넣지 않는다면 어떻게 될까요?

update class.insert_test set name = '손흥민';

이렇게 명령을 실행한다면 어떻게 되는 걸까요? 

자, where 절을 빼고 update 문을 실행했더니 위 그림처럼 모든 name 칼럼 값이 "손흥민"으로 변경이 된 것을 확인할 수 있습니다.

 

이 where 절에 조건은 select문에서 배웠던 것처럼 "=" 조건뿐 아니라, in절 또는, like 등의 비교 연산자도 들어갈 수 있습니다. 하나만 예로 들어보겠습니다.

update class.insert_test set name = '박찬호' where seq in (11,12,13,14,15);

위 update 문은 seq가 11,12,13,14,15에 해당하는 row의 name 칼럼 값을 "박찬호"라고 변경하라는 의미입니다.

데이터를 확인해보겠습니다.

네, 우리가 원하는 데로 잘 변경이 된 것을 확인할 수 있습니다.

자, 그럼 이렇게 하나의 칼럼만 변경하는 update문 말고, 2개 이상의 컬럼 값을 변경할 때는 어떻게 해야 할까요?

 

2. 2개 이상의 칼럼 값을 변경하는 update문 사용방법

이번에는 같은 테이블의 cont와 name을 한꺼번에 update, 즉 변경하는 방법을 알아보겠습니다.

update class.insert_test set name = '전우치', cont = '여러분들 덕분입니다!' where seq in (11,12,13,14,15);

사용법은 하나를 update 할 때와 거의 같습니다. 다만 set 이후에 <칼럼 = '변경할 값'> 이라고 썼었다면 <컬럼 = '변경할 값', 컬럼 = '변경할 값'....> 이런 식으로 ", " 콤마로 구분해서 나열해주시기만 하면 됩니다. 이렇게 하면 하나, 둘, 셋, 넷.. 여러 칼럼의 한 번에 병경 할 수 있게 됩니다.

 

위 명령으로 변경된 데이터를 확인해보겠습니다.

의도한 대로 잘 변경이 된 것을 확인할 수 있습니다.

 


## 다음 강의 보러 가기 ##

2020/05/26 - [Database/sql 강의] - mysql delete sql 독학 강의#19편 -sTricky

 

mysql delete sql 독학 강의#19편 -sTricky

mysql delete sql 독학 강의#19편 -sTricky 콘텐츠 index 0. delete란 무엇인가? 1. 기본 delete문 사용방법 2. 테이블 내 모든 데이터를 삭제하는 delete 문 3. select한 결과로 delete 하는 방법 ## 전편 강의..

stricky.tistory.com

 

 

update문 어떤가요? 간단하죠? 여기에다가 다른 테이블을 join 하여 select 한 결과를 update 할 수도 있습니다.

그런 방법은 아직 기초단계에서 다루기에 조금 복잡하게 느끼실 수 있으니, 추후에 기회가 되면 관련 포스팅을 만들어 보겠습니다.

 

오늘 포스팅해드린 update문 내용이 여러분들께 잘 전달되어 이해하기 쉬우셨으면 좋겠습니다.

 

오늘 update문 강의 포스팅을 여기서 줄이겠습니다

 

감사합니다!!!

 

 

by.sTricky