Pythonでのデータベースへのクエリ送信
データベースへの接続後、クエリを送信できます。
これは、変数queryを使用して行います。
この変数には、テーブルusersからすべてのデータを取得するためのSQLクエリが記述されます。
この変数は、変数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オブジェクトを操作するための、もう1つのwith構文を記述します。
このオブジェクトには、順番に特別なメソッドを適用する必要があります。
その最初のメソッドがcursorメソッドで、MySQLConnectionオブジェクトからCMySQLCursorオブジェクトを作成します。
次に、これにexecuteメソッドを適用します。このメソッドは、パラメータとして渡されたSQLクエリの実行を保証します:
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からすべてのデータを出力してください。