프로그래밍/MYSQL

mysql 데이터 변경 DML UPDATE ~ SET

타코코딩 2023. 10. 19. 16:51
데이터 변경 UPDATE ~ SET
UPDATE명령문은 테이블의 기존 레코드를 수정하는 데 사용됩니다. SET명령문 내의 절을 사용하여 UPDATE업데이트해야 할 열과 업데이트해야 할 값을 지정할 수 있습니다

 

* DML : Database Manplation Language

* - 데이터 생성, 변경, 삭제

* 데이터 생성 : insert into

* 데이터 변경 : update

* 데이터 삭제 : delete

* 데이터 조회 : select

 

데이터 수정 : UPDATE ~ SET

*형식 : UPDATE [테이블명] SET [칼럼명=새로운 데이터], [칼럼명=새로운 데이터]...

 WHERE [UPDATE 조건절]

WHERE 절이 생략되면 전체 테이블에 업데이트 적용

 

 

예제

-- 홍길동의 연봉을 8700으로 인상

UPDATE employee_copy SET salary=8700 WHERE emp_name = '홍길동';

 

 

-- employee_copy 테이블의 전체사원들의 연봉을 10% 인상

UPDATE employee_copy SET salary = salary*1.1;

 

-- 김삼순 사원의 사원명을 '김희진'으로 수정

UPDATE employee_copy SET emp_name = '김희진' WHERE emp_name = '김삼순';

설명

`

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

 

1: 단일 행 업데이트

students다음 데이터로 이름이 지정된 테이블이 있다고 가정합니다..

student_id first_name last_name age
1 John Doe 20
2 Jane Smith 22
3 Alice Johnson 21

John Doe의 나이를 21세로 업데이트하려고 합니다. 다음 SQL 쿼리를 사용할 수 있습니다.

UPDATE students
SET age =21
WHERE first_name ='John'AND last_name ='Doe';

 

age이 쿼리는 이름이 'John'이고 성이 'Doe'인 행의 열을 21로 업데이트합니다..

2: 여러 행 업데이트

students테이블에 있는 모든 학생의 나이를 1년씩 늘리고 싶다고 가정해 보겠습니다.. 다음 쿼리를 사용할 수 있습니다.

UPDATE students
SET age = age +1;

 

students이 쿼리는 열의 현재 값에 1을 더하여 테이블의 모든 행을 업데이트합니다 age.

3: 모든 행 업데이트

조건 없이 테이블의 모든 행을 업데이트하려면 다음 절을 생략할 수 있습니다 WHERE.

UPDATE table_name		
SET column1 = new_value1, column2 = new_value2, ...;

 

UPDATE절 없이 명령문을 사용할 때는 주의하십시오 WHERE. 이는 테이블의 모든 행에 영향을 미치기 때문입니다.

4: 표현식을 사용하여 업데이트

절에 표현식을 사용할 수도 있습니다 SET. 예를 들어 다음을 full_name결합하여 열을 설정하려면 다음을 수행합니다

UPDATE students
SET full_name = CONCAT(first_name, ' ', last_name);

이렇게 하면 first_name 및last_name값이 공백으로 연결되고 full_name열이 업데이트됩니다.

UPDATE 특히. 필요한 경우 데이터를 백업하거나 변경 사항을 롤백할 수 있는 방법이 있는지 확인하세요.