UPDATE 테이블명
SET 컬럼1 = 값, 컬럼2 = 값
WHERE 조건식
SET 뒤엔 컬럼마다 어떤 값으로 수정할지 선택하고
WHERE 뒤엔 어떤 행을 업데이트할 것인지 조건식을 넣어준다.
UPDATE product
SET 가격 = 5000, 상품명 = '단무지'
WHERE id = 1
UPDATE product
SET 가격 = 가격 + 100, 상품명 = '단무지'
WHERE id = 1
값을 완전히 대체하는 것이 아닌 기존 값에 사칙연산을 할 수 있다.
DELETE FROM 테이블명
WHERE 조건식
그럼 조건식에 맞는 모든 행을 삭제해준다.
DELETE FROM product WHERE id = 4
DELETE FROM product ORDER BY id DESC LIMIT 1
// 마지막 행을 삭제하라는 코드
// limit은 위에서 X개만 선택하라는 명령어이다.
(참고)
JOIN한 테이블에도 수정명령을 내릴 수 있다.
UPDATE A INNER JOIN B ON 조인조건
SET 수정할 내용
WHERE 조건식
MySQL은 UPDATE 뒤에 JOIN 해놓은 테이블을 입력할 수 있다.
그러면 SET, WHERE 문법으로 JOIN된 테이블의 모든 컬럼을 마음대로 수정할 수 있다.
DELETE A
FROM A INNER JOIN B
ON 조인조건
WHERE 조건식
MySQL은 DELETE FROM 뒤에 JOIN 해놓은 테이블을 입력할 수 있다. 그럼 JOIN한 테이블에서 WHERE 조건식에 해당하는 행을 찾아서 지워준다.
근데 A 테이블과 B 테이블 중 어떤 테이블의 행을 지울지는 DELETE 우측에 적어줘야한다.
DELETE A -> 조건식에 맞는 행이 A테이블에서 삭제
DELETE B -> 조건식에 맞는 행이 B테이블에서 삭제
DELETE A,B -> 조건식에 맞는 행이 A,B테이블에서 전부 삭제
Q3. 이메일이 공백인 곳에 일괄적으로 test@test.com 기입.
단, first_name이 Solly인 사람은 admin@test.com으로 기입.
일단 두 조건을 만족할 수 있는 하나의 코드를 생각해내지 못하고 결과적으로 맞는 답을 내기 위해서 update 문법을 두개 실행하였다.
update user_sales
set email = 'test@test.com'
where email = ""
update user_sales
set email = 'admin@test.com'
where first_name= 'Solly'
공식답:
update user_sales
set email = if(first_name=Solly,'test@test.com','admin@test.com')
where email = ""
if문을 사용해서 Solly일땐 test~ 아닐 땐 admin~
이렇게 해서 하나의 코드로 정답을 도출해낼 수 있다는 것을 배웠다.
잊은 개념 : IF(조건식,참일 때,거짓일 때)