こんにちは!
はるさらと申します。
今回はPythonの練習がてら
SQLiteへの接続方法を
備忘録として残しておきます。
開発環境
PyCharm を使用しております。
コピペしていただければ
同じ挙動が出来るように作成しております。
他のPythonの記事はこちらから参照できます♪
今回の目標
今回は最低限の動作として
実行する事でPython上から
DB上にテーブルを作成し、
行の追加を行った後に
テーブルに登録されている内容の表示。
まで、実施したいと思います。
コーディング
import sqlite3
# テーブルの作成
# con = sqlite3.connect(":memory:")
con = sqlite3.connect("test.db",isolation_level=None)
c = con.cursor()
create_table = '''create table harusara1125 (id integer primary key, Day date, Place varchar2(32))'''
c.execute(create_table)
# データの追加
sql = 'insert into harusara1125 (Day, Place) values ' \
'(date("2020-01-01"),"東京"),' \
'(date("2020-03-03"),"愛媛"),' \
'(date("2020-05-05"),"鹿児島"),' \
'(date("2020-07-07"),"愛知"),' \
'(date("2020-10-10"),"岩手")'
c.execute(sql)
# データの表示
for a in c.execute("select * from harusara1125"):
print(a)
con.close()
※すみません。インデントのずれは後に修正します。
処理の解説
【1行目】
SQLiteを使用するために、sqlite3をインポートする必要があります。
【4~5行目】
データベースを作成しています。
4行目の様に
con = sqlite3.connect(“:memory:”)
と記載すると、ファイルを作成せずに
メモリ上にDBを作成します。
(接続を閉じると消えますので
一時的に使用する際にはこちらで良いと思います。)
一方、5行目の様に
con = sqlite3.connect(“test.db”,isolation_level=None)
と記載すると、「test.db」というファイルが作成され
その中に、テーブルや業などが作成されていきます。
一度作成したDBを保存しておきたい場合、
他のプログラムでも使用したい場合などは
こちらの方法でDBを作成してください。
なお、「isolation_level=None」の記載は
自動コミット(※)の設定になります。
※自動コミットについて
5行目には「isolation_level=None」といった
記載がありますが
こちらを記載することで
意識せずとも自動でコミットしてくれます。
もし、記載しない場合は
con.commit()
を別途記載してあげましょう!
コミットを忘れると、
「テーブルの中に値が入っていない!」
と、ちょっとしたパニックにつながります。
【8~9行目】
「harusara1125」というテーブルを作成しています。
「項目」
列1 列名:Id 型:int
列2 列名:Day 型:date
列3 列名:Place 型:varchar(32)
列1のidという項目には
自動インクリメントを設定しています。
「integer primary key」
これによって、次に行うinsert文で
IDを指定しなくても
自動的に1から順に採番していってくれます。
【12~19行目】
作成したテーブルにレコードを追加しています。
追加する行ごとにinsert文を記載せずとも
コードに書いてあるようにまとめて複数行
作成することが可能です。
【22~23行目】
select文を使用して、テーブルの中身を表示しています。
for文を使用することで、
複数行取得できた場合でもすべて表示させることが可能です!
今日はここまで
最低限、DBを作成して
動かしてみる~といったところまで
記載しました。
他にも重要な構文などは
沢山ありますので
随時、追加か
別の記事に起こしたいと思います!
それではまたー!!