python

【python】SQLite3データベース操作の方法【→業務効率UP】

how to control sqlite3 database by python
プログラム学生
プログラム学生

プログラムが動いていない間も、データを保存しておきたい場合は、どうすればいいんですか?

その場合は、データベースにデータを保存すればいいよ。
今回はsqlite3のデータベースの操作方法を紹介するね。

Tommy
Tommy

pythonでSQLite3のデータベース操作の概要

summary of sqlite3 database

この記事では、pythonを使ったデータベース(SQLite)ファイルの作成方法と、データベースファイルへのデータ保存方法、データ参照を方法を説明します。

この記事を読むことによって、データベースの操作方法がわかり、pythonプログラムが動作していない間も、データを保存しておくことができます。

pythonでSQLite3のデータベース操作の前提の環境

environment of sqlite3 database

SQLiteのデータベースの操作の前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

【python】バージョン確認の方法【→プログラミング初心者向け】

レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

レンタルサーバでプログラミングする方法【→レンタルサーバでできる!】

pythonでSQLite3のデータベース操作のサンプルプログラム

sample program of sqlite3 database

ここでは、SQLite3ライブラリを使ったデータベースを操作するサンプルプログラムを説明します。

説明の順番は下記の通りです。

  1. テーブルの作成
  2. テーブルの削除
  3. テーブルデータの挿入
  4. テーブルデータの参照

「テーブル」とは、『データのどのような形でデータベースに入っているか』というデータの整理のしかたのことです。

例えば、お弁当をイメージすると分かりやすいと思います。

お弁当自体がデータベース、どこがご飯、どこがお惣菜というお弁当のの区分けがテーブル、そして、ご飯とお惣菜がデータです。

食材(データ)をお弁当(データベース)に並べるかということを示すのが、テーブルということになります。

SQLite3のデータベース操作:ライブラリのインポート

まず初めに、各種ライブラリをインポートします。

SQLiteの操作に必要なsqlite3、ファイル削除に必要なosライブラリをインポートしています。

import sqlite3
import os

SQLite3のデータベース操作:テーブルの作成

次は、データの保存に必要なテーブルの作成を行います。

まず、sqlite3.connectコマンドによって、データベースファイルを作成されます。

次に、CREATE TABLEというSQLコマンドによってテーブルを作成しています。

# テーブルの作成
def create_table():

	# Connectionオブジェクトの作成
	conn = sqlite3.connect('Test.db')

	# Cursorオブジェクトの作成
	con = conn.cursor()

	try:
		# TEST_DB_TABLEという名前のテーブルを作成する
		con.execute('''CREATE TABLE '''+'TEST_DB_TABLE'+''' (
				key1 varchar(64),
				key2 varchar(64)
			)''')

	except sqlite3.OperationalError:
		print("couldn't create table")

SQLite3のデータベース操作:テーブルの削除

次は、テーブルの削除を行います。Cursorオブジェクトの作成までは、前述のテーブル作成手順と同じです。

その後、DROP TABLEというSQLコマンドによって、テーブルを削除します。

現在のSQLコマンドでは、データベースファイル自体を削除することができないので,osコマンドを用いて、データベースファイル自体を削除しています。

# テーブルとDBファイルの削除
def delete_table():

	# Connectionオブジェクトの作成
	conn = sqlite3.connect('Test.db')

	# Cursorオブジェクトの作成
	con = conn.cursor()

	try:
		# TEST_DB_TABLEという名前のテーブルを削除する
		con.execute('''DROP TABLE ''' + 'TEST_DB_TABLE')

	except sqlite3.OperationalError:
		print("The table's already been removed")

	# Connectionオブジェクトを閉じる
	conn.close()

	# dbファイルの削除
	os.remove('./' + 'Test.db')

SQLite3のデータベース操作:テーブルデータの挿入

次は、前述で作成したデータベーステーブルの対して、テーブルデータの挿入(保存)を行います。

Cursorオブジェクトの作成までは、前述のテーブル作成手順と同じです。

その後、INSERT INTOというSQLコマンドによって、テーブルデータの挿入(保存)を行います。

# テーブルデータの挿入
def insert_table(table_name,i_table):

	# Connectionオブジェクトの作成
	conn = sqlite3.connect('Test.db')

	# Cursorオブジェクトの作成
	con = conn.cursor()

	try:
		# テーブルを作成する為のコマンドを作成
		command = 'INSERT INTO '+ table_name + ' VALUES('
		for i in range(len(i_table)):
			command += '?,'
		command = command[:-1] + ')'

		# テーブルを挿入
		con.execute(command, i_table)

	except sqlite3.OperationalError:
		print("couldn't insert table")

	# 変更を保存する
	conn.commit()

SQLite3のデータベース操作:テーブルデータの参照

そして次は、先ほど保存したテーブルデータを参照する方法を説明します。

SELECTと呼ばれるSQLコマンドによってテーブルデータを読み出します。Cursorオブジェクトconに対して、fetchallを呼び出すことで、それぞれの要素を取得することができます。

# テーブルデータの参照
def refer_table_data(table_name):

	# Connectionオブジェクトの作成
	conn = sqlite3.connect('Test.db')

	# Cursorオブジェクトの作成
	con = conn.cursor()

	# Selectコマンド実行
	con.execute('SELECT ' + '*' + ' from ' + table_name)
	for item in con.fetchall():
		print(item)

SQLite3のデータベース操作:定義した関数の実行処理

最後に、上で定義した4つの関数の呼び出しを行います。

ここでは、作成し、挿入するテーブルの名前は、「TEST_DB_TABLE」に設定しています。

テーブル「TEST_DB_TABLE」には、「Date1」と「Date2」という2つのstring型の文字列のデータが入っていることになります。

if __name__ == '__main__':

	# テーブルの作成
	create_table()

	# テーブルデータの挿入
	i_table = ['Date1','Date2']
	insert_table('TEST_DB_TABLE',i_table)

	# テーブルデータの参照
	refer_table_data('TEST_DB_TABLE')

	# テーブルの削除
	delete_table()

pythonで業務効率化するその他の方法

other way of business efficiency by python

pythonには、業務効率化できる手段がたくさんあります。 せっかくpythonプログラムの学習のですから、実務に生かせないと学習している効果も実感することができません。

プログラマーにとって、

  • 「人の役に立った時」
  • 「人に喜んでもらった時」

にそこ、プログラムをやっていてよかったと喜びを感じられるものです。

また、プログラムの効果を発揮できる身近な場所は「普段の業務」です。つまり、学習したプログラムで効率化できる可能性の一番の高い場所です。 そういう意味で、「普段の業務」を効率化しないと、もったいないです。

下記の記事に、普段オフィス環境で使われるツールを使って業務効率化できる方法をまとめていますので、ぜひ合わせて読んで取り組んでみてください。

【python】業務効率化の方法8選【→周りを出し抜く自動化】

-python
-,

Copyright© Tommy's blog , 2020 All Rights Reserved Powered by AFFINGER5.