반응형
Notice
Recent Posts
Recent Comments
Link
개발은 처음이라 개발새발
UPDATE 와 CASE를 활용한 퀴즈[LeetCode] 본문
반응형
https://leetcode.com/problems/swap-salary/
이번 시간에는 DML 명령어 중 UPDATE를 활용한 퀴즈를 풀어보려고합니다. 문제를 보겠습니다.
Input:
Salary table:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |
+----+------+-----+--------+
Output:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
+----+------+-----+--------+
Salary 테이블이 있고 sex 컬럼의 성별을 바꾸라는 문제입니다.
1. 기본
UPDATE 테이블명 SET 컬럼 = 값;
__________________________________
EX)
UPDATE Salary SET Salary = Salary + 100;
2. 지정 행 UPDATE
UPDATE 테이블명 SET 컬럼 = 값 WHERE 조건;
_____________________________________________
EX)
UPDATE Salary SET Salary = Salary + 100 WHERE id =2;
이경우에는 첫번째 기본 UPDATE 구문을 활용해야 합니다. 하지만 이번 퀴즈는 두개 이상의 컬럼을 한꺼번에 바꿔야 하는데요. 이렇게 바꾸기 위해서는 '값' 부분에서 CASE...WHEN...THEN 구문을 활용해보면 좋을 거 같습니다.
UPDATE 테이블명 SET 컬럼 = 값;
________________________________________________________
UPDATE Salary SET SEX = CASE
WHEN SEX = 'f' THEN 'm'
WHEN SEX = 'm' THEN 'f' END
________________________________________________________
output:
| id | name | sex | salary |
| -- | ---- | --- | ------ |
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
네 이렇게 퀴즈를 풀어봤습니다. 처음에는 어떻게 한꺼번에 바꾸라는 건지 앞이 막막했는데 문득 CASE구문이 생각나 적용해봤습니다. 개인적으로 SQL 퀴즈를 풀면서 여러구문을 혼합해서 사용할 수 있는 방법을 알아가고 있습니다. 실무에도 충분히 적용할 수 있는 것들이라 퀴즈를 꾸준히 풀어보는 걸 추천드립니다.
반응형
'mysql' 카테고리의 다른 글
서브쿼리 간단정리 (0) | 2023.05.31 |
---|---|
서브쿼리를 활용한 DELETE [LeetCode] (0) | 2023.05.30 |
INSERT, UPDATE, DELETE 간단 정리 (0) | 2023.05.27 |
MySQL Union 퀴즈 [해커랭크] (0) | 2023.05.21 |
MySQL DATE_ADD & Self Join 퀴즈2 [LeetCode] (0) | 2023.05.09 |