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 プロセスを終了すると、すべてのデータが失われます。
コメント