데이터베이스에 저장된 데이터는 시간이 지나면서 오래되거나 변경될 필요가 생깁니다. 예를 들어 학생 정보를 관리하는 테이블에서 한 학생이 거주지를 옮겼다면, 잘못된 데이터로 인한 문제를 방지하기 위해 해당 학생의 주소를 최신 정보로 수정해야 합니다.
MySQL에서는 UPDATE 문을 사용하여 테이블의 특정 값을 수정할 수 있습니다. SET 절은 컬럼에 새로운 값을 지정하는 역할을 하고, WHERE 절은 테이블의 어느 행(row)을 업데이트할지 조건을 지정하는 역할을 합니다.
기본 문법
UPDATE table_name SET column=new_value WHERE column=old_value
Python에서 MySQL 테이블 데이터를 업데이트하는 단계
MySQL 커넥터(mysql.connector) 모듈을 임포트합니다.
connect() 메서드를 사용하여 데이터베이스와 연결을 설정합니다.
cursor() 메서드로 커서 객체를 생성합니다.
적절한 MySQL 문법으로 쿼리를 작성합니다.
execute() 메서드를 사용하여 SQL 쿼리를 실행합니다.
commit() 메서드로 변경 사항을 데이터베이스에 확정(커밋)합니다.
작업이 끝나면 연결을 종료합니다.
예시를 위해 다음과 같은 "Students" 테이블이 있다고 가정해 보겠습니다.
+----------+---------+-----------+------------+ | Name | Class | City | Marks | +----------+---------+-----------+------------+ | Karan | 4 | Amritsar | 95 | | Sahil | 6 | Amritsar | 93 | | Kriti | 3 | Batala | 88 | | Khushi | 9 | Delhi | 90 | | Kirat | 5 | Delhi | 85 | +----------+---------+-----------+------------+
예제 코드
위 테이블에서 이름이 'Kriti'인 학생의 도시를 'Batala'에서 'Kolkata'로 변경하고 싶다고 가정해 보겠습니다. 다음 코드를 통해 이 작업을 수행할 수 있습니다.
import mysql.connector
db=mysql.connector.connect(host="your host", user="your username", password="your
password",database="database_name")
cursor=db.cursor()
query="UPDATE Students SET City='Kolkata' WHERE Name='Kriti'"
cursor.execute(query)
db.commit()
query="SELECT * FROM Students"
cursor.execute(query)
for row in cursor:
print(row)
db.close()위 코드는 WHERE 절의 조건(Name='Kriti')에 해당하는 행을 찾아 해당 학생의 도시 정보를 'Kolkata'로 업데이트한 뒤, 전체 테이블을 조회하여 결과를 출력합니다.
실행 결과
('Karan', 4 ,'Amritsar' , 95)
('Sahil' , 6 , 'Amritsar' ,93)
('Kriti' , 3 , 'Kolkata' ,88)
('Amit' , 9 , 'Delhi' , 90)
('Priya' , 5 , 'Delhi' ,85)주의사항
위 코드에서 db.commit() 부분은 매우 중요합니다. commit()은 테이블에 적용된 변경 사항을 실제 데이터베이스에 반영하는 역할을 합니다. 만약 commit()을 호출하지 않으면 UPDATE 쿼리가 실행되더라도 변경 사항이 저장되지 않으므로, 반드시 쿼리 실행 후 commit()을 호출해야 합니다.