mysql 데이터 변경 DML UPDATE ~ SET
데이터 변경 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 특히. 필요한 경우 데이터를 백업하거나 변경 사항을 롤백할 수 있는 방법이 있는지 확인하세요.