Python에서 데이터베이스로 쿼리 보내기
데이터베이스에 연결한 후에는
쿼리를 보낼 수 있습니다. 이는
users 테이블에서 모든 데이터를
출력하는 SQL 쿼리가 작성된
query 변수를 사용하여 수행됩니다. 이
변수는 connection 변수가 있는
블록 안에 작성해야 합니다:
try:
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 메서드를 적용합니다:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
다음으로 fetchall 메서드를 사용하여
모든 데이터를 추출하고
result 변수에 저장해야 합니다.
그리고 얻은 데이터를 출력하려면
for 루프를 통해 처리해야 합니다:
try:
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)
전체 코드는 다음과 같을 것입니다:
try:
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)
코드 실행 후 모든 레코드가 튜플 형태로 콘솔에 출력됩니다:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
users 테이블에서 모든 데이터를 출력하세요.