1
5

More than 3 years have passed since last update.

SQLiteでファイルを使用してテーブル作成する方法(ターミナル/Python)

Posted at

Pythonの標準ライブラリにはSQLiteと呼ばれるデータベースが付属しており、別途データベースを用意しなくとも簡単にプロトタイプなどを作成することができます。

環境

  • Mac OS Big Sur 11.2.1
  • Python 3.9.1
  • SQLite 3.32.3

使い方

SQLiteはPythonの標準ライブラリに含まれているため、Pythonが使用できる状態であればすぐに使用することができます。

$ sqlite3 <DATABASE_FILE>
sqlite>

ターミナルでファイルを使用する

仮に単語カードのデータを保存するようなテーブルを考えます。必要なのはIDと質問、答えだと思いますので以下のようなSQLを用意します。

schema.sql
DROP TABLE IF EXISTS card;

CREATE TABLE card (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  question TEXT,
  answer TEXT
);

これを直接実行する場合、sqliteに接続した上で.readコマンドを実行します。

sqlite> .read schema.sql

Pythonでファイルを使用する

上記ターミナルと同じファイルを使用する場合、以下のようにファイルを読み込んだ上でexecutescriptを実行します。

import sqlite3

conn = sqlite3.connect('<DATABASE_FILE>')
cursor = conn.cursor()

with open('./schema.sql') as f:
    cursor.executescript(f.read())

テーブル確認

テーブルの情報はsqlite_masterテーブルに保存されています。よって正常に実行できていれば、以下の通り先ほどのテーブル情報が表示されるはずです。

$ sqlite3 <DATABASE_FILE>
sqlite> select * from sqlite_master;
table|card|card|2|CREATE TABLE card (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  question TEXT,
  answer TEXT
)
table|sqlite_sequence|sqlite_sequence|3|CREATE TABLE sqlite_sequence(name,seq)
1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5