Python - MySQL 데이터 찾기(SELECT), 정렬

By JS | Last updated: September 23, 2021

파이썬에서 pymysql을 이용하여 MySQL의 테이블에서 데이터를 찾는 방법을 소개합니다.

1. pymysql 설치

pymysql는 파이썬의 MySQL 라이브러리입니다. pip 명령어로 설치할 수 있습니다.

$ python3 -m pip install PyMySQL

2. 모든 데이터 조회(SELECT)

아래 코드는 테이블에 있는 모든 데이터를 가져오는 예제입니다.

MySQL 서버가 설치되어있고, 계정이 모두 생성된 상태에서 connect()로 서버에 접속합니다. cursor를 통해 SQL을 실행하여 데이터를 가져올 수 있습니다. with 구문을 사용하기 때문에 cursor, conn의 close()를 호출할 필요가 없습니다. with 구문 종료 시점에 자동으로 호출됩니다.

ORDER BY name는 name으로 오름차순 정렬하라는 의미입니다.

import pymysql

conn = pymysql.connect(host='localhost',
                       user='testuser',
                       password='Fktm068**',
                       db='testdb',
                       charset='utf8')

sql = "SELECT * FROM user ORDER BY name"

with conn:
    with conn.cursor() as cur:
        cur.execute(sql)
        result = cur.fetchall()
        for data in result:
            print(data)

Output:

(1, 'Jaehee', 'jaehee@example.com')
(2, 'Jeongeun', 'jeongeun@example.com')

3. 특정 데이터 찾기(SELECT)

특정 데이터를 찾으려면 SQL에 WHERE를 이용하여 조건을 명시해줘야 합니다.

아래 코드는 name이 Jaehee인 데이터를 찾는 예제입니다.

import pymysql

conn = pymysql.connect(host='localhost',
                       user='testuser',
                       password='Fktm068**',
                       db='testdb',
                       charset='utf8')

sql = "SELECT * FROM user where name = %s"

with conn:
    with conn.cursor() as cur:
        cur.execute(sql, ('Jaehee'))
        result = cur.fetchall()
        for data in result:
            print(data)

Output:

(1, 'Jaehee', 'jaehee@test.com')

4. 정렬

정렬은 위에서 모든 데이터를 가져오는 방법을 설명할 때 소개하였습니다.

ORDER BY name는 name으로 오름차순 정렬하라는 의미입니다. 내림차순으로 정렬하고 싶을 때는 SQL에 DESC를 추가하면 됩니다.

sql = "SELECT * FROM user ORDER BY name"

sql = "SELECT * FROM user ORDER BY name DESC"

Related Posts

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha