Python、SQLAlchemyのDB操作(データ追加)方法【sqliteにsql文を使用せずにinsertする】

2021年6月23日

こんにちは、説也です。

sqlite × SQLAlchemy のデータベース操作、第2弾!
この記事では、「sqlite」のdbファイルにデータを追加する方法を紹介しています。

SQLAlchemyを使用すると、SQL文を書かなくても実装できます。

完成イメージ

SQLAlchemy でのデータ追加(Insert)

ソースコード全容

#############################################################################################
#  sqlite データレコード追加
#############################################################################################
#============================================================================================
#  ライブラリインポート
#============================================================================================
#--------------------------------------------------------------------------------------------
#  SQLALCHEMY
#--------------------------------------------------------------------------------------------
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker

#============================================================================================
#  データベース(DB)基本
#============================================================================================
#--------------------------------------------------------------------------------------------
# DBエンジンの定義
#--------------------------------------------------------------------------------------------
engine = create_engine('sqlite:///勤務データ.db', echo=True)
Base = declarative_base()

#--------------------------------------------------------------------------------------------
# DBテーブル定義
#--------------------------------------------------------------------------------------------
class 従業員DB(Base):
  __tablename__ = '従業員'
  id = Column(Integer, primary_key=True)
  入社 = Column(String)
  名前 = Column(String)
  年齢 = Column(String)
  役職 = Column(String)

class 勤怠DB(Base):
  __tablename__ = '勤怠状況'
  id = Column(Integer, primary_key=True)
  日付 = Column(String)
  時間 = Column(String)
  備考 = Column(String)

#============================================================================================
#  DB操作
#============================================================================================
#--------------------------------------------------------------------------------------------
#  DB操作セッション定義
#--------------------------------------------------------------------------------------------
Session = sessionmaker(bind=engine)
session = Session()

#--------------------------------------------------------------------------------------------
#  (1) DBデータレコード追加
#--------------------------------------------------------------------------------------------
session.add(従業員DB(入社="2020-01-01", 名前="加藤", 年齢="21", 役職="なし"))
session.commit()

session.add(勤怠DB(日付="2020-01-01", 時間="08:36", 備考="なし"))
session.commit()

事前準備

SQLAlchemyのインストール

https://pypi.org/project/SQLAlchemy/

pip install SQLAlchemy

公式サイトを参考に、SQLALchemyのライブラリを pip install します。

コード解説

(1) DBデータレコード追加

追加するテーブルと内容を指定

#--------------------------------------------------------------------------------------------
#  (1) DBデータレコード追加
#--------------------------------------------------------------------------------------------
session.add(従業員DB(入社="2020-01-01", 名前="加藤", 年齢="21", 役職="なし"))
コード内容
session.addデータ追加
従業員DBDB内にあるテーブル名を指定
入社="2020-01-01″追加する項目内の内容を設定
名前="加藤"追加する項目内の内容を設定
Integer = 数字型、String = 文字型、primary_key=True = 主キー(重複することがないID,自動的に必ず値が入ります)

データベースの変更をコミット

session.commit()

※ コミットすることで、変更内容がDBへ反映されます。

作成ファイルの確認

今回は、下記の外部のソフトウェアを使用し中身を確認しました。

DB Browser for SQLite

インストールしたあと、作成したdbファイルをドラッグ&ドロップすると中身を確認できます。

以上になります。

ここまで見ていただきありがとうございました。
参考になりましたら、また遊びにきてもらえると嬉しいです。

では🙂

DBファイルの作成方法はこちらを参考にしてみてください。

Pythonをまとめて学びたい方は、まずは無料オンラインセミナーがおすすめ