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

Python으로 MySQL SELECT DISTINCT 문 활용하기 – 중복 데이터 제거 및 고유값 조회 방법

SQL 테이블에서는 컬럼에 중복된 값이 포함되는 경우가 매우 많습니다. 때로는 테이블의 특정 컬럼에 존재하는 고유한(distinct) 값만 추출해야 할 필요가 있는데, 중복 값이 많으면 쿼리 결과를 분석하기가 어려워지기 때문입니다.

SELECT DISTINCT가 필요한 이유

예시:

고객의 이름, 나이, 국가 등 세부 정보를 담고 있는 'Customers'라는 테이블이 있다고 가정해 보겠습니다. 고객들이 어느 나라 출신인지 파악하고 싶은 상황이라면, 인도 출신 10명, 미국 출신 15명 등 다양한 경우가 있을 수 있습니다. 이때 단순히 country 컬럼을 조회하면 수많은 중복 값이 그대로 포함된 전체 컬럼이 반환되어 결과 분석이 매우 어려워집니다. 우리가 실제로 필요한 것은 중복 없이 정리된 고유한 국가 목록입니다.

바로 이런 상황에서 MySQL의 SELECT DISTINCT 문을 사용합니다.

문법(Syntax)

SELECT DISTINCT column_name FROM table_name

Python에서 MySQL로 고유값을 조회하는 주요 단계

  • mysql.connector 모듈 임포트

  • connect() 메서드를 사용해 데이터베이스 연결 설정

  • cursor() 메서드로 커서 객체 생성

  • 적절한 MySQL 문법으로 쿼리 작성

  • execute() 메서드로 SQL 쿼리 실행

  • 작업 완료 후 연결 종료

다음과 같은 'Customers' 테이블이 있다고 가정해 보겠습니다.

+----------+---------+
| name     | country |
+----------+---------+
|    John  | America |
|  Peter   | England |
|  Karan   | India   |
|  Rohit   | India   |
|  Rohan   | America |
|    Arsh  | France  |
|  Aryan   | England |
+----------+---------+

예제 코드

이 테이블에서 중복을 제거한 고유한 국가 이름만 조회해야 합니다.

import mysql.connector
db=mysql.connector.connect(host="your host", user="your username", password="your
password",database="database_name")

cursor=db.cursor()

query="SELECT DISTINCT country FROM Customers "
cursor.execute(query)
for names in cursor:
    print(names)
db.close()

위 코드를 실행하면 중복이 제거된 고유한 국가 이름들이 반환됩니다.

실행 결과

America
England
India
France

참고: DISTINCT는 하나의 컬럼뿐 아니라 여러 컬럼에도 적용할 수 있습니다. 이 경우 지정된 모든 컬럼 값의 조합을 기준으로 중복이 제거되므로, 복수 컬럼 조회 시에도 유용하게 활용할 수 있습니다.