Pythonでsinglestoredbを用いてデータベースのテーブル内のデータを取得する

スポンサーリンク

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を用いて指定したデータベースのテーブル内のデータを取得し出力させることができました。

コメント

タイトルとURLをコピーしました