望月の息抜き

在宅勤務の息抜きです。主にプログラミングについて書いていきたいと思います。

【Python】【12】データを操作してみよう

【記事の目標】

Pythonでデータベースを使って、テーブルに対してCRUD操作をしてみよう。

 

【作業手順】

1.SQLiteをインポートして、データベースへ接続しよう

2.データを登録しよう

3.登録したデータを取得しよう

4.データを更新しよう

5.データを削除しよう

 

1.SQLiteをインポートして、データベースへ接続しよう

【11】で実施した手順と同じです。

まず、SQLiteをインポートします。

 import sqlite3

データべース blog_test に接続しましょう。

 db_name = 'blog_test'
connect = sqlite3.connect(db_name)

これで、接続完了です。

 

2.データを登録しよう

まず、Cursorオブジェクトを作成しましょう。

 cursor = connect.cursor()

では、データを登録するSQLを定義します。

今回は後続の説明で作成するため、2レコード登録します。

 cursor.execute("INSERT INTO first_table VALUES (?,?)", (1, 'あいうえお'))
cursor.execute("INSERT INTO first_table VALUES (?,?)", (2, 'かきくけこ'))

これで、1レコード目には「あいうえお」、2レコード目には「かきくけこ」が登録されます。

最後にコミットとクローズを行います。

 connect.commit()
connect.close()

では実行してみましょう。

f:id:fysker:20220115171502p:plain

エラーは出ていないので登録は成功していると思いますが、本当に大丈夫か不安になってしまいますね。

次のステップで登録されたデータを確認しましょう。

 

3.登録したデータを取得しよう

先ほど記載していたコードは一度削除かコメントアウトしましょう。

まずは、インポートとデータベースの作成とcursorオブジェクトの作成ですね。

 import sqlite3
 db_name = 'blog_test'
connect = sqlite3.connect(db_name)
 cursor = connect.cursor()

ここまでは基本一緒なのでだんだんと慣れてきたのではないでしょうか。

次に取得用のSQLを定義します。

 cursor.execute("SELECT * FROM first_table")

本当に取得出来ているかを確認するためにコンソールに出力してみましょう。

 for row in cursor.fetchall():
print(row)

最後にデータベースのクローズを行います。

 connect.close()

では実行してみましょう。

f:id:fysker:20220115172021p:plain

「2.」で登録した値が取得できていますね。

 

4.データを更新しよう

先ほど記載していたコードは一度削除かコメントアウトしましょう。

まずは、インポートとデータベースの作成とcursorオブジェクトの作成ですね。

 import sqlite3
 db_name = 'blog_test'
connect = sqlite3.connect(db_name)
 cursor = connect.cursor()

次に、更新用のSQLを定義します。

 cursor.execute("UPDATE first_table SET value = 'さしすせそ' WHERE id = 1")

1レコード目に登録した「あいうえお」を「さしすせそ」に更新するSQLです。

最後にコミットとクローズを行います。

 connect.commit()
connect.close()

では実行してみましょう。

f:id:fysker:20220115172440p:plain

更新されているかわからないので、「3.登録したデータを取得しよう」をもう一度実施してみましょう。

実行結果は以下になります。

f:id:fysker:20220115172534p:plain

1レコード目の値が「さしすせそ」に書き換わっていますね。

 

5.データを削除しよう

先ほど記載していたコードは一度削除かコメントアウトしましょう。

まずは、インポートとデータベースの作成とcursorオブジェクトの作成ですね。

 import sqlite3
 db_name = 'blog_test'
connect = sqlite3.connect(db_name)
 cursor = connect.cursor()

次に、削除用のSQLを定義します。

 cursor.execute("DELETE FROM first_table WHERE id = 1")

1レコード目に登録したデータを削除するSQLです。

最後にコミットとクローズを行います。

 connect.commit()
connect.close()

では実行してみましょう。

f:id:fysker:20220115172848p:plain

削除されているかわからないので、「3.登録したデータを取得しよう」をもう一度実施してみましょう。

実行結果は以下になります。

f:id:fysker:20220115172924p:plain

1レコード目は削除されて、2レコード目が取得されていますね。

 

【補足】

CRUDって何?

CRUDというのは、「Create(登録機能)」「Read(参照機能)」「Update(更新機能)」「Delete(削除機能)」の頭文字を並べた用語になります。

 

 

今回は【11】で作成したテーブルに対するCRUD操作をしてみました。

登録、参照、更新、削除、すべて実施しましたが結構ボリュームが多かったですね。

データベースの操作はSQL文が全てですので、いろいろなデータを登録して、取得したいデータを取得するSQL文を書いてみるのも面白いと思います。

データベース操作が苦手な私でも、開発となるとSQL文を書かなければならないので、基礎だけはおさえておきましょう。