Python スクリプトを使って SQLite クエリを実行する
ここでは、コマンドラインで SQLite クエリを実行して終了する方法を、3 つの方法に分けて解説します。
- 概要
sqlite3
コマンドは、SQLite データベースを操作するためのコマンドラインツールです。このコマンドを使用して、データベースを開き、クエリを実行し、結果を表示することができます。
- 手順
- ターミナルまたはコマンドプロンプトを開きます。
- 以下のコマンドを実行して、データベースを開きます。
sqlite3 database.sqlite3
SELECT * FROM table;
.exit
シェルスクリプトを使用して、複数のクエリをまとめて実行することができます。これは、複雑な操作を行う場合や、繰り返し同じ操作を行う場合に便利です。
- 以下の内容を
script.sh
という名前のファイルに保存します。
#!/bin/bash
sqlite3 database.sqlite3 <<EOF
SELECT * FROM table;
UPDATE table SET name = 'John Doe' WHERE id = 1;
.exit
EOF
bash script.sh
Python スクリプトを使用して、SQLite データベースを操作することができます。Python には sqlite3
モジュールが標準でインストールされているため、追加のライブラリをインストールする必要はありません。
import sqlite3
connection = sqlite3.connect('database.sqlite3')
cursor = connection.cursor()
cursor.execute('SELECT * FROM table')
for row in cursor.fetchall():
print(row)
cursor.execute('UPDATE table SET name = "John Doe" WHERE id = 1')
connection.commit()
connection.close()
python script.py
補足
- 上記の例では、
database.sqlite3
という名前のデータベースを使用しています。データベースの名前を変更する場合は、コマンドやスクリプト内の該当箇所を変更してください。 - クエリの内容を変更する場合は、
SELECT * FROM table
の部分を目的のクエリに書き換えてください。
sqlite3 コマンドを使用する
# データベースを開く
sqlite3 database.sqlite3
# クエリを実行する
SELECT * FROM table;
# データベースを閉じる
.exit
シェルスクリプトを使用する
#!/bin/bash
sqlite3 database.sqlite3 <<EOF
SELECT * FROM table;
UPDATE table SET name = 'John Doe' WHERE id = 1;
.exit
EOF
Python スクリプトを使用する
import sqlite3
connection = sqlite3.connect('database.sqlite3')
cursor = connection.cursor()
cursor.execute('SELECT * FROM table')
for row in cursor.fetchall():
print(row)
cursor.execute('UPDATE table SET name = "John Doe" WHERE id = 1')
connection.commit()
connection.close()
コマンドラインで SQLite クエリを実行して終了するその他の方法
DBeaver は、様々なデータベースを操作するためのオープンソースのツールです。GUI で操作できるため、コマンドラインに慣れていない人でも簡単にクエリを実行することができます。
Sequel Pro は、Mac OS X 用のオープンソースのデータベース管理ツールです。DBeaver と同様、GUI で操作できるため、コマンドラインに慣れていない人でも簡単にクエリを実行することができます。
Web ブラウザを使用する
SQLite データベースを Web ブラウザから操作できるツールもいくつかあります。これらのツールを使用すると、特別なソフトウェアをインストールすることなく、ブラウザ上でクエリを実行することができます。
上記の方法を使用する場合は、それぞれの使い方を事前に調べておく必要があります。
sqlite shell command-line