mysql update sql 독학 강의#18편 -sTricky
콘텐츠 index 0. update란 무엇인가? 1. 기본 update문 사용방법 |
## 전편 강의 보러 가기 ##
2020/05/15 - [Database/sql 강의] - sql 독학 강의 # mysql insert 사용 방법 17편 -sTricky
안녕하세요.
오늘은 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
update문 어떤가요? 간단하죠? 여기에다가 다른 테이블을 join 하여 select 한 결과를 update 할 수도 있습니다.
그런 방법은 아직 기초단계에서 다루기에 조금 복잡하게 느끼실 수 있으니, 추후에 기회가 되면 관련 포스팅을 만들어 보겠습니다.
오늘 포스팅해드린 update문 내용이 여러분들께 잘 전달되어 이해하기 쉬우셨으면 좋겠습니다.
오늘 update문 강의 포스팅을 여기서 줄이겠습니다
감사합니다!!!
by.sTricky
'Database > sql 강의' 카테고리의 다른 글
insert into on duplicate key MySQL merge SQL 독학 강의#20편 -sTricky (3) | 2020.06.02 |
---|---|
mysql delete sql 독학 강의#19편 -sTricky (0) | 2020.05.26 |
sql 독학 강의 # mysql insert 사용 방법 17편 -sTricky (0) | 2020.05.15 |
sql 독학 강의 # sub query 서브쿼리 16편 -sTricky (5) | 2020.05.11 |
sql 독학 강의 # outer join SQL 15편 -sTricky (3) | 2020.05.06 |