Python初心者がPythonでSQLite3を使ってみる。

スポンサーリンク

Python初心者がPythonでSQLite3を使ってみます。(Windows10上)

なお、Pythonには標準ライブラリとして、軽量・高速なデータベースSQLiteが含まれています。

そのため、インストールなどは必要ありません。

今回参考にしたURL:https://qiita.com/saira/items/e08c8849cea6c3b5eb0c

■Python

Pythonバージョン

今回のPythonのバージョンは、「3.8.2」を使用しています。

■データベースの新規作成を行う

■コード

import sqlite3


# データベースを作成する
# データベースに接続。ない場合は作成する。
dbname = 'TEST.db'
conn = sqlite3.connect(dbname)


# データベースへのコネクションを終了する
conn.close()

こちらの記事を参考にして「sqlite3-test.py」というファイルを作り、上記のコードを記述する。

「TEST.db」というデータベースのファイルを新規で作成してみます。

他の記事も見ていたのだが、どうやらデータベースの新規作成を行う場合は、ファイルを生成するか、メモリ上に生成するか2種類がある。

コードを記述した後は、保存する。

■実行

保存した「sqlite3-test.py」をコマンドプロンプトから実行してみます。

実行後は、何も表示されません。何も表示されませんが、カレントディレクトリを確認してみます。

確認してみると、「TEST.db」というDBファイルが作成されていることが確認できました。

■データベース内にテーブルを作ってみる。

「TEST.db」というDBファイルが作成されていることが確認できましたので、次はデータベース内にテーブルを作ってみます。

■コード

import sqlite3


dbname = 'TEST.db'
conn = sqlite3.connect(dbname)
#カーソルオブジェクトの作成
cur = conn.cursor()


# personsというテーブルを作成
# personsというテーブルにはIDとnameを収納
cur.execute(
    'CREATE TABLE persons(id INTEGER PRIMARY KEY AUTOINCREMENT, name STRING)')


# データベースへコミット。コミット後、閉じる。
conn.commit()
conn.close()

「CREATE TABLE persons」でpersonsというテーブルを作成し、テーブルにはidとnameと収納してみます。収納するidはINTEGER(整数)、nameはSTRING(文字列)と指定してみます。さらにid(INTEGER型)(カラム)がPRIMARY KEY 制約の設定をし、カラムが主キー(プライマリーキー)となるようにします。また、AUTOINCREMENT制約の設定で、nameをテーブルへ追加すると自動でidが追加される仕組みになります。

著者のイメージとしては上記のようなイメージです。

このコードを、「create-table-test.py」というファイル名で保存します。

■実行

保存した「create-table-test.py」をコマンドプロンプトから実行してみます。

実行後は、何も表示されません。何も表示されませんが、テーブルが作成されていますので、次に進みます。

■作成したテーブルにデータを追加してみる

「TEST.db」というデータベースにテーブルが作成されていますので、このテーブルにデータを追加してみます。

■コード

import sqlite3


dbname = 'TEST.db'
conn = sqlite3.connect(dbname)
cur = conn.cursor()


# "name"に"テスト太郎"を入れる
cur.execute('INSERT INTO persons(name) values("テスト太郎")')
# "name"に"テスト次郎"を入れる
cur.execute('INSERT INTO persons(name) values("テスト次郎")')
# "name"に"テスト三郎"を入れる
cur.execute('INSERT INTO persons(name) values("テスト三郎")')


conn.commit()


cur.close()
conn.close()

データベースのテーブルに「テスト太郎」、「テスト次郎」、「テスト三郎」といったデータを追加します(INSERT INTO)。

personsというテーブルのnameに追加されたvaluesというデータの値がそれぞれ「テスト太郎」、「テスト次郎」、「テスト三郎」となっています。idは、AUTOINCREMENT制約の設定で、nameをテーブルへ追加すると自動でidが追加されるようになっています。

なお、「con.commit()」で、データベースに反映させます。データを追加したら、これで、毎回反映させる必要があります。

このコードを「sqlite3-data-addition-test.py」というファイルで保存します。

■実行

保存した「sqlite3-data-addition-test.py」をコマンドプロンプトから実行してみます。

実行後は、何も表示されません。何も表示されませんが、データが追加されていますので、次に進みます。

■Pythonで作成したテーブルの中身を確認してみる

「TEST.db」というデータベースにテーブルが作成し、テーブルにデータを追加してみましたので、Pythonでテーブルの中身を確認してみます。

■コード

import sqlite3


dbname = 'TEST.db'
conn = sqlite3.connect(dbname)
cur = conn.cursor()


cur.execute('SELECT * FROM persons')


print(cur.fetchall())


cur.close()
conn.close()

「SELECT * FROM」は、プログラミング初心者がWindows10にSQLiteを使ってみるという記事で公開したSQLiteで作成したテーブルの中身を確認する時と同じコマンドを利用します。

作成したテーブルの中身を取得し、「cur.fetchall()」で結果をもってきて、出力します。

このコードを「check-table-test.py」というファイルで保存します。

■実行

保存した「check-table-test.py」をコマンドプロンプトから実行してみます。

実行後、「[(1, ‘テスト太郎’), (2, ‘テスト次郎’), (3, ‘テスト三郎’)]」というテーブルの中身が出力されました。

 

コメント

タイトルとURLをコピーしました