Pythonでduckdbを用いてインメモリデータベースでテーブルを作成する

スポンサーリンク

Pythonでduckdbを用いてインメモリデータベースでテーブルを作成してみます。

今回はduckdbを用いています。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■duckdbを用いてインメモリデータベースでテーブルを作成する

では、早速duckdbを用いてインメモリデータベースでテーブルを作成するスクリプトを書いていきます。

■コード

import duckdb

con = duckdb.connect(database=':memory:')

con.execute("CREATE TABLE test_01(id integer, name text, address text)")

con.execute("SHOW TABLES;")

print(con.fetchall())

今回はduckdbモジュールをimportで呼び出します。その後、conという変数を定義し、その中でduckdb.connect()を用います。これでデータベースを表すオブジェクトを作成しますので、今回は、インメモリデータベースを用いてオブジェクトを作成しますので、括弧内に引数,パラメータ(database=)として、特別な値である「:memory:」を渡します。これで接続オブジェクトが作成されました。

作成後、con変数に対してexecute()を用います。これでDuckDBにSQLクエリを送信し、実行させますので、括弧内に引数,パラメータとしてSQL文を渡します。今回のSQL クエリはCREATE TABLE文を用いて「test_01」というテーブルを作成します。テーブル内には、カラムとして「id」、「name」、「address」を作成します。

作成後、さらにexecute()を用いて、SQLクエリを送信します。このSQLクエリは「SHOW TABLES;」で、データベース内のテーブルを一覧表示させます。

最後に、con変数に対してfetchall()を用います。これでSQLクエリを送信し実行させた後の全てのデータを受け取ることができます。受け取ったデータをprint()で出力させます。

■実行・検証

このスクリプトを「in_db_table.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、duckdbを用いてインメモリデータベースを用意し、用意したデータベース内に指定した「test_01」というテーブルを作成。作成後、テーブルを出力させることができました。

なお、今回はインメモリデータベースを用意しましたが、インメモリデータベースは、データはディスクに永続化されませんので、Python プロセスを終了すると、すべてのデータが失われます。

コメント

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