Python 小規模データベースの作成はsqliteがおすすめ【SQLAlchemyを使うと非常に簡単】
こんにちは、説也です。
ちょっとしたデスクトップアプリを作成する場合、小規模のデータベースがあると便利ですよね。
この記事では、自己完結型のデータベース「sqlite」のdbファイルの作成方法を紹介しています。
今回は、sql文を使わずに、SQLAlchemyを使用し実装していきます。
完成イメージ
ソースコード全容
#÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
# Python 小規模データベースの作成はsqliteがおすすめ【SQLALCHEMYを使うと簡単です】
#÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
#============================================================================================
# ライブラリインポート
#============================================================================================
#--------------------------------------------------------------------------------------------
# (1) SQLAlchemy
#--------------------------------------------------------------------------------------------
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
#============================================================================================
# (2) データベース(DB)基本定義
#============================================================================================
#--------------------------------------------------------------------------------------------
# 1. DBエンジンの定義
#--------------------------------------------------------------------------------------------
engine = create_engine('sqlite:///勤務データ.db', echo=True)
Base = declarative_base()
#--------------------------------------------------------------------------------------------
# 2. 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)
#============================================================================================
# (3) DBファイルの作成
#============================================================================================
#--------------------------------------------------------------------------------------------
# DBファイル作成
#--------------------------------------------------------------------------------------------
Base.metadata.create_all(engine)
事前準備
SQLAlchemyのインストール
https://pypi.org/project/SQLAlchemy/
pip install SQLAlchemy
公式サイトを参考に、SQLALchemyのライブラリを pip install します。
コード解説
(1) SQLAlchemy (インポートライブラリ)
SQLALchemyを使用するためのライブラリをプログラムにインポートします。
基本的には、変更せずそのままコピーして大丈夫です。
#--------------------------------------------------------------------------------------------
# (1) SQLAlchemy
#--------------------------------------------------------------------------------------------
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
(2) データベース(DB)基本定義
ここで設定した定義を使用し、DBの作成からDBへのデータ追加、参照、削除などを行います。
1. DBエンジンの定義
プログラム内で使用する、データベースエンジンを指定しています。
#============================================================================================
# (2) データベース(DB)基本定義
#============================================================================================
#--------------------------------------------------------------------------------------------
# 1. DBエンジンの定義
#--------------------------------------------------------------------------------------------
engine = create_engine('sqlite:///勤務データ.db', echo=True)
Base = declarative_base()
engine = create_engine('sqlite:///勤務データ.db', echo=True)
コード | 内容 |
---|---|
sqlite:/// | 使用するDBエンジンの種類を定義しています。 |
勤務データ.db | DBのファイル名を定義しています。 |
echo=True | DB操作時、SQL文を表示するかを指定できます。 |
Base = declarative_base()
declarativeを使用し、下記で指定するテーブル(class)定義と紐づけをおこないます。
2. DBテーブル定義
DB内のテーブル定義をします。
#--------------------------------------------------------------------------------------------
# 2. 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)
コード | 内容 |
---|---|
class 従業員DB(Base): | DBを操作するときのclass名を任意で定義 |
tablename = '従業員' | テーブルの名前を任意で定義 |
id = Column(Integer, primary_key=True) | テーブル内のカラム(項目)を定義 (主キー) |
入社 = Column(String) | テーブル内ののカラム(項目)を定義 |
(3) DBファイルの作成
上記、(2)で定義したデータベースを実際に作成するコードになります。
#============================================================================================
# (3) DBファイルの作成
#============================================================================================
#--------------------------------------------------------------------------------------------
# DBファイル作成
#--------------------------------------------------------------------------------------------
Base.metadata.create_all(engine)
実行すると .db ファイルが作成されます。
作成ファイルの確認
今回は、下記の外部のソフトウェアを使用し中身を確認しました。
インストールしたあと、作成したdbファイルをドラッグ&ドロップすると中身を確認できます。
以上になります。
ここまで見ていただきありがとうございました。
参考になりましたら、また遊びにきてもらえると嬉しいです。
では🙂
ディスカッション
コメント一覧
まだ、コメントがありません