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

Python에서 MySQL로 두 테이블 INNER JOIN(내부 조인) 수행하는 방법

SQL에서는 두 테이블을 공통 컬럼을 기준으로 하거나, 지정한 특정 조건에 따라 조인(JOIN)할 수 있습니다. SQL 테이블을 결합하는 데 사용되는 JOIN에는 여러 종류가 있으며, 그중 이 글에서는 INNER JOIN(내부 조인)에 대해 자세히 알아보겠습니다.

JOIN과 INNER JOIN은 동일하게 작동합니다. INNER JOIN은 한 테이블의 각 행을 다른 테이블의 모든 행과 비교하여, 공통 컬럼을 가지고 있거나 지정된 조건을 만족하는 행들만 결합해 결과로 반환합니다.

두 테이블을 조인할 때는 반드시 어떤 기준으로 테이블을 연결할지 조건을 명시해야 합니다.

구문

SELECT column1, column2...
FROM table_1
INNER JOIN table_2 ON condition;

예시 테이블

설명을 위해 'Students'(학생) 테이블과 'Department'(학과) 테이블이 다음과 같이 있다고 가정하겠습니다.

Students 테이블

+----------+--------------+-----------+
|    id    | Student_name |  Dept_id  |
+----------+--------------+-----------+
|    1     |    Rahul     |    120    |
|    2     |    Rohit     |    121    |
|    3     |    Kirat     |    122    |
|    4     |    Inder     |    125    |
+----------+--------------+-----------+

Department 테이블

+----------+-----------------+
| Dept_id  | Department_name |
+----------+-----------------+
|   120    |      CSE        |
|   121    |   Mathematics   |
|   122    |     Physics     |
+----------+-----------------+

두 테이블 모두 존재하는 공통 컬럼인 Dept_id를 기준으로 조인을 수행해 보겠습니다.

Python에서 MySQL로 두 테이블을 조인하는 단계

  • MySQL 커넥터를 임포트(import)합니다.

  • connect() 메서드를 사용해 데이터베이스와 연결을 설정합니다.

  • cursor() 메서드로 커서 객체를 생성합니다.

  • 적절한 MySQL 문법으로 조인 쿼리를 작성합니다.

  • execute() 메서드로 SQL 쿼리를 실행합니다.

  • 작업이 끝나면 연결을 종료합니다.

예제 코드

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

cursor=db.cursor()

query="SELECT Students.Id,Students.Student_name,Department.Department_name
FROM Students INNER JOIN Department ON Students.Dept_Id=Department.Dept_Id"
cursor.execute(query)
rows=cursor.fetchall()
for x in rows:
    print(x)

db.close()

실행 결과

(1, 'Rahul', 'CSE')
(2, 'Rohit', 'Mathematics')
(3, 'Kirat', 'Physics')

결과 분석

위 실행 결과에서 주목할 점은 Students 테이블의 4번째 행(id=4, Inder)이 결과에 포함되지 않았다는 것입니다. 그 이유는 Department 테이블에 Dept_id가 125인 레코드가 존재하지 않아, INNER JOIN 조건을 만족하지 못했기 때문입니다. 즉, INNER JOIN은 양쪽 테이블 모두에 일치하는 데이터만 반환한다는 특징이 있습니다.