Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 MySQL 테이블의 특정 값 업데이트하기 – UPDATE 문 완벽 가이드

데이터베이스에 저장된 데이터는 시간이 지나면서 오래되거나 변경될 필요가 생깁니다. 예를 들어 학생 정보를 관리하는 테이블에서 한 학생이 거주지를 옮겼다면, 잘못된 데이터로 인한 문제를 방지하기 위해 해당 학생의 주소를 최신 정보로 수정해야 합니다.

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()을 호출해야 합니다.