Pythonでsinglestoredbを用いてデータベースのテーブル内のデータを取得してみます。
この記事は「Pythonでsinglestoredbを用いてデータベース内のテーブルにデータを登録する」という記事の続きとなります。
なお、今回singlestoredbを用います。このライブラリ・モジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■SingleStore Customer Portalからデータベースのテーブル内に登録したデータを確認する
singlestoredbを用いてデータベースのテーブル内のデータを取得してみますが、その前にSingleStore Customer Portalからデータベースのテーブル内に登録したデータを確認してみます。まずは、SingleStore Customer Portal(https://portal.singlestore.com/)に、お持ちのアカウントでログインを行います。
ログイン後、SingleStore Customer Portalの左側のメニューから「QUERY」の「SQL Editor」を選択します。
選択すると、SQL Editorが起動します。起動後、上部のパンくずリストをクリックすると、プルダウンメニューが表示されますので、「Database」から「test_db」を選択します。
選択後、SELECT文を用いてテーブル内のデータを出力してみます。出力すると、今回追加したデータが登録されていることが確認できました。
■singlestoredbを用いてデータベースのテーブル内のデータを取得する
確認後、singlestoredbを用いてデータベースのテーブル内のデータを取得するスクリプトを書いていきます。
■コード
import singlestoredb as s2 conn = s2.connect(host='svc-******.aws-virginia-4.svc.singlestore.com', port='3306', user='admin', password='ユーザー名(管理者)のパスワード', database='test_db') with conn.cursor() as cur: query = """select * from person""" cur.execute(query) for item in cur: print(item)
今回はsinglestoredbモジュールをimportで呼び出します。さらにsinglestoredbをs2として用います。
呼び出した後に、connという変数を定義し、その中でs2.connect()を用います。括弧内には、引数,パラメータとして「host=(接続ホスト名)」、「port=(データベースのポート)」、「user=(データベースのユーザー名)」、「password=(データベース ユーザーのパスワード)」、「database=(データベース名)」を渡します。
引数,パラメータを渡した後に、conn.cursor()でカーソルオブジェクトを作成し、データベースに対してクエリを実行させるようにします。また、with構文を用いてconn.cursor()をcurとして利用します。
conn.cursor()をcurとして利用できるようにした後は、queryという変数を定義し、その中に、execute()を用いて実行するMySQLクエリを格納します。今回のクエリは、SELECT文を用いて、作成したテーブルである「person」を指定、さらにアスタリスク”*”を使い、テーブル内の全てのデータ(レコード)を取得します。
その後、for文を用いてcur内のデータを順番に1ずつ取り出しitem変数内に格納します。そして、print()でitem変数内の情報を出力します。
■実行・検証
このスクリプトを「sql_t_data_fetch.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、singlestoredbを用いて指定したデータベースのテーブル内のデータを取得し出力させることができました。
コメント