Pythonの記事作成を進めていて、SQLiteの扱い方について触れておりませんでした。
プログラミング言語の多くは、データベースと組み合わせて使用することによって、アプリケーションでできることが、ぐんっと増えます!
例えば、ユーザ情報(ID・パスワード)を保持するデータベースを作成しておきます。
ユーザはログインするたびに、ID/パスワードで認証しますが、データベースに入っているデータと一致していればログイン可能。一致していなければログイン不可。となります。
そのほかにも、計算処理した結果を格納したりしますが、主に役割としては以下の2点です。
- データの永続的な保持
- データの使用
さて、前置きが長くなってしまいましたが、Pythonでもデータベースと連携をして、データの更新・削除・読込が可能です。
本日は、SQLite3で作成したデータベースに対して、Pythonのプログラムから接続してデータの操作をできるまで。を実践したいと思います。
CRUD操作(作成・更新・読込・削除)については、【【SQLite3】SQLでCRUD操作(CREATE/READ/UPDATE/DELETE)】をご参照ください。
目次
SQLite3モジュールをインポートして使用準備をする
さて、タイトルにモジュールという言葉が出てきました。
import分によって呼び出して、自分以外の人が開発したプログラム、自分のプログラムに組み込んで利用することができます。
import モジュール名
上記のように使います。
以下のキャプチャは、for文の記事を書いたときのものですが、冒頭で、import sqlite3と記述しているのがわかると思います。
なお、sqlite3モジュールは、Pythonの標準ライブラリに属します。
そのため、pipコマンドで、新規にインストールをする必要はありません。
ライブラリについての補足は、以下の記事をご覧ください!
データベースの作成と接続(sqlite3.connect())
データベースを作成します。
sqlite3.connect()にデータベース名称を引数に渡すことで、作成することができます。
すでにデータベースが存在する場合は、該当のデータベースに接続します。
#データベースへの接続
conn = sqlite3.connect('データベース名称')
データベース接続後の切断(close())
プログラムの最終行には、close()を記載します。
データベースの操作は、connect() 〜 close()の間で実行されます。
#データベースからの切断
conn.close()
import + 接続〜切断のPythonコード
#SQLite3のインポート
import sqlite3
#データベースへの接続
conn = sqlite3.connect('TEST_for.sqlite3')
#データベースからの切断
conn.close()
カーソルを作成し、データベースのテーブルを操作する(cursor())
カーソルには、データベースのデータにアクセスする役割があります。
データに対し、【検索】【挿入】【更新】を実行することができます。
cur = conn.cursor()
テーブルに対してSQL文を渡す(execute())
execute()は、テーブルに対してSQLを実行するためのメソッドです。
引数(()の中)に、SQLを記載することによって、実行することができます。
なお、executeでは、SQLは一つしか実行できません。複数のSQLを実行する場合は、executescript()を利用します。
execute()は、Cursorに属しているメソッドです。
そのため、直前で記載していたcurと一緒に使います。
cur.execute("実行するSQL")
テーブル操作までのPythonコード
cur = conn.cursor()
for shirts in cur.execute("select * from clothes"):
for文で利用したときのPythonコードです。
データの更新や削除を実行することもできます。
データ更新のサンプル
#更新(ID=3 Blue_shirtsの金額を4500円に変更)
cur.execute('UPDATE clothes SET PRICE = 4500 WHERE ID = "3"')
SQLで変更した値を保存するには、commitが必要ですが、それはまだ次回!
EOF(今回実行したSQL全行)
# coding: utf-8
import sqlite3
#データベースへ接続
conn = sqlite3.connect('TEST_for.sqlite3')
#カーソルの作成
cur = conn.cursor()
#ececuteで、SQL文をわたして、更新
#更新(ID=3 Blue_shirtsの金額を4500円に変更)
cur.execute('UPDATE clothes SET PRICE = 4500 WHERE ID = "3"')
#更新後
for shirts in cur.execute("select * from clothes"):
print(shirts)
#データベースとの接続を切断
conn.close()
どのようなシステムにも、データベースへの接続や操作は不可欠ですので、ご参考になれば幸いです。
今日も一緒に学習していただいて、ありがとうございました!
では、また!
追伸:これからPythonを学ぶなら
これからPythonを学びたい!業務に活かせるように学習したい!という方ならば、まずはUdemyで学習を始めることをお勧めします。
Udemyでは、数多くの講師陣がITの知識やスキルアップのための解説動画を提供していて、現場でも役立つ知識が多数存在します。
特に、流行りもあるのだと思いますがPythonやAWSの講座は数が多く品質が高いものが多いです。
手前味噌ながら以下の記事で、主に初学者の方向けのお勧め講座のレビューをしていますので、ご参考にしていただけますと幸甚です。