Python에서 데이터베이스로 쿼리 보내기

데이터베이스에 연결한 후에는 쿼리를 보낼 수 있습니다. 이는 users 테이블에서 모든 데이터를 출력하는 SQL 쿼리가 작성된 query 변수를 사용하여 수행됩니다. 이 변수는 connection 변수가 있는 블록 안에 작성해야 합니다:

pythontry:
  with connect(
      host='localhost',
      user='root',
      password='',
      database='test',
  ) as connection:
    query = "SELECT * FROM users"
    
  except Error as e:
  print(e)

다음으로 connection 변수에 저장된 MySQLConnection-객체와 작업하기 위해 또 다른 with 구문을 작성합니다. 이 객체에는 특별한 메서드들을 순차적으로 적용해야 합니다. 그 중 첫 번째는 MySQLConnection-객체에서 CMySQLCursor-객체를 생성하는 cursor 메서드입니다. 이어서 매개변수로 전달된 SQL 쿼리를 실행하는 execute 메서드를 적용합니다:

pythontry:
  with connect(
    ...
  ) as connection:
    query = "SELECT * FROM users"
    with connection.cursor() as cursor:
      cursor.execute(query)

다음으로 fetchall 메서드를 사용하여 모든 데이터를 추출하고 result 변수에 저장해야 합니다. 그리고 얻은 데이터를 출력하려면 for 루프를 통해 처리해야 합니다:

pythontry:
  with connect(
    ...
  ) as connection:
    query = "SELECT * FROM users"
    with connection.cursor() as cursor:
      cursor.execute(query)
      result = cursor.fetchall()
      
      for row in result:
        print(row)

전체 코드는 다음과 같을 것입니다:

pythontry:
with connect(
    host='localhost',
    user='root',
    password='',
    database='test',
) as connection:
  query = "SELECT * FROM users"
  with connection.cursor() as cursor:
    print(cursor)
    cursor.execute(query)
    result = cursor.fetchall()
    
    for row in result:
      print(row)
      
except Error as e:
print(e)

코드 실행 후 모든 레코드가 튜플 형태로 콘솔에 출력됩니다:

python(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Задание 1

users 테이블에서 모든 데이터를 출력하세요.