• Pythonからデータベース「SQLite3」を操作!使い方を解説

    公開日:2021年10月20日 最終更新日:2021年12月16日

    SQLite3は軽量でインストールが簡単なデータベースです。PythonではSQLite3を操作するライブラリを標準で提供しています。本記事ではPythonからSQLite3を操作する方法を紹介しますので、興味がある方はぜひ参考にしてください。

    1. SQLite3とは?

    Pythonからデータベース「SQLite3」を操作!使い方を解説【フリーランスエンジニア案件情報 | プロエンジニア】

    SQLite3とは、軽量なリレーショナルデータベース「SQLite」のバージョン3を意味します。SQLite3はコンパクトでインストールが簡単なことから、スマートフォンなどの機器に組み込まれ、ローカルデータストレージとして活用されるケースも時にはあります。

    PythonではSQLite3を操作するライブラリを「sqlite3」という名称で標準提供しています。ライブラリを詳しく確認したい方は、以下のリンクをご参考にしてください。

    公式リファレンス

    ▲ページトップへ戻る

    2. PythonからSQLite3を操作するには?使い方

    Pythonからデータベース「SQLite3」を操作!使い方を解説【フリーランスエンジニア案件情報 | プロエンジニア】

    「PythonからSQLite3を操作するにはどうしたらいいのだろう…」とお悩みの方も多いでしょう。ここでは、PythonからのSQLite3の基本的な操作方法を紹介しますので、ぜひ参考にしてください。

    モジュールのインポートを行った上で、今回は「persons」というテーブルを作り、テーブルの中に人名のデータを格納。最後に格納したデータを全件取得してみます。

    ▲ページトップへ戻る

    2.1 モジュールのインポート

    まず、PythonのプログラムからSQLite3を操作するには、「sqlite3」というモジュールをインポートする必要があります。

    「sqlite3」というモジュールはPythonの標準ライブラリのため、pipなどのコマンドを利用して、ライブラリの追加インストールは必要ありません。

    Pythonのプログラムファイルの上部に以下のコードを記述するだけで、モジュールをインポートできます。

    import sqlite3
    

    ▲ページトップへ戻る

    2.2 データベース(DB)を作成する

    データベースを作成する方法を解説します。データベースを作成するには、sqlite3.connect()を利用します。sqlite3.connect()は第一引数にデータベース名を渡すことで、データベースを作成できるライブラリです。

    import sqlite3
    
    # カレントディレクトリにTEST.dbがなければ、作成します。
    # すでにTEST.dbが作成されていれば、TEST.dbに接続します。
    dbname = 'TEST.db'
    conn = sqlite3.connect(dbname)
    
    # データベースへのコネクションを閉じる。(必須)
    conn.close()
    

    ▲ページトップへ戻る

    2.3 テーブル(table)を作成する

    テーブルを作成する方法を解説します。テーブルを作成する際に、次の順番で処理を実装します。

    1. データベースに接続

    2. カーソルオブジェクトを作成

    3. テーブルのCreate文を実行

    4. データベースに情報をコミット

    5. データベースの接続を切断

    今回は「persons」というテーブルを作ります。

    import sqlite3
    
    dbname = 'TEST.db'
    # 1.データベースに接続
    conn = sqlite3.connect(dbname)
    
    # 2.sqliteを操作するカーソルオブジェクトを作成
    cur = conn.cursor()
    
    # 3.テーブルのCreate文を実行(例ではpersonsテーブルを作成)
    cur.execute(
        'CREATE TABLE persons(id INTEGER PRIMARY KEY AUTOINCREMENT, name STRING)')
    
    # 4.データベースに情報をコミット
    conn.commit()
    
    # 5.データベースの接続を切断
    cur.close()
    conn.close()
    

    ▲ページトップへ戻る

    2.4 テーブル(table)にデータを登録する

    テーブルにデータを登録する方法を解説します。データを登録する場合、次の順番で処理を実装します。

    1. データベースに接続

    2. カーソルオブジェクトを作成

    3. テーブルにデータを登録するINSERT文を実行

    4. データベースにデータをコミット

    5. データベースの接続を切断

    今回は作成した「persons」テーブルにINSERT文で「Sato」「Suzuki」「Takahashi」という人名データを格納していきます。

    import sqlite3
    
    dbname = 'TEST.db'
    # 1.データベースに接続
    conn = sqlite3.connect(dbname)
    
    # 2.sqliteを操作するカーソルオブジェクトを作成
    cur = conn.cursor()
    
    # 3.テーブルに人名データを登録する
    # 例では、personsテーブルのnameカラムに「Sato」「Suzuki」「Takahashi」というデータを登録
    cur.execute('INSERT INTO persons(name) values("Sato")')
    
    cur.execute('INSERT INTO persons(name) values("Suzuki")')
    
    cur.execute('INSERT INTO persons(name) values("Takahashi")')
    
    # 4.データベースにデータをコミット
    conn.commit()
    
    # 5.データベースの接続を切断
    cur.close()
    conn.close()
    

    ▲ページトップへ戻る

    2.5 テーブル(table)のデータを取得する

    テーブルの登録データを取得する方法を解説します。データを取得する場合、次の順番で処理を実装します。

    1. データベースに接続

    2. カーソルオブジェクトを作成

    3. テーブルのデータを取得

    4. データベースの接続を切断

    「persons」テーブルの人名データを全件取得してみましょう。

    import sqlite3
    
    dbname = 'TEST.db'
    # 1.データベースに接続
    conn = sqlite3.connect(dbname)
    
    # 2.sqliteを操作するカーソルオブジェクトを作成
    cur = conn.cursor()
    
    # 3.テーブルのデータを取得
    # 例では、personsテーブルデータを全件取得
    cur.execute('SELECT * FROM persons')
    
    # 取得したデータを出力
    for row in cur:
        print(row)
    
    # 4.データベースの接続を切断
    cur.close()
    conn.close()
    

    ▲ページトップへ戻る

    2.6 テーブル(table)のデータを更新・削除する

    テーブルの登録データを更新・削除する方法を解説します。データを更新・削除する場合、次の順番で処理を実装します。

    1. データベースに接続

    2. カーソルオブジェクトを作成

    3. テーブルのデータを更新・削除

    4. データベースにデータをコミット

    5. データベースの接続を切断

    先に格納した人名データのうち「Takahashi」を「Tanaka」に変えてみましょう。

    import sqlite3
    
    dbname = 'TEST.db'
    # 1.データベースに接続
    conn = sqlite3.connect(dbname)
    
    # 2.sqliteを操作するカーソルオブジェクトを作成
    cur = conn.cursor()
    
    # 3.テーブルのデータを更新・削除
    # データ更新(例ではカラム「name」の「Takahashi」を「Tanaka」に変更します)
    cur.execute('UPDATE persons SET name = "Tanaka" WHERE name = "Takahashi"')
    
    # データ削除(例ではカラム「name」の「Suzuki」を削除します)
    cur.execute('DELETE FROM persons WHERE name = "Suzuki"')
    
    # 取得したデータはカーソルの中に入る
    for row in cur:
        print(row)
    
    # 4.データベースにデータをコミット
    conn.commit()
    
    # 5.データベースの接続を切断
    cur.close()
    conn.close()
    

    ▲ページトップへ戻る

    3. GUIツールを活用したSQLiteのテーブル確認方法

    Pythonからデータベース「SQLite3」を操作!使い方を解説【フリーランスエンジニア案件情報 | プロエンジニア】

    PythonのプログラムコードからSQLiteのテーブルを操作した結果をGUIツールで確認したい方もいらっしゃるでしょう。ここでは、SQLiteのテーブルをGUIで確認できる「DB Browser For SQLite」を紹介します。

    ▲ページトップへ戻る

    3.1 DB Browser For SQLiteとは

    DB Browser For SQLiteとは、SQLiteをGUIで管理できる無料ツールです。OSはSQLiteのテーブルのデータ閲覧はもちろん編集、肥大化したデータベースを最適化できます。

    Windows・macOS・Linux・FreeBSDと幅広いOSに対応しているのも特徴です。

    ▲ページトップへ戻る


    3.1.1 ダウンロード方法

    DB Browser For SQLiteのインストーラーは、公式サイトのDownloadsページよりダウンロードします。

    2021年9月時点の最新バージョンは「3.12.2」です。対応OSは以下の通りです。

    • Windows OS
    • macOS
    • Linux
    • FreeBSD

    )Arch Linux、Fedora、openSUSE、Debian、Ubuntuが対応しています。

    ▲ページトップへ戻る


    3.1.2 インストール方法

    Windows 10(64bit)にインストールした場合の方法を解説します。

    公式サイトのDownloadsページより「DB Browser for SQLite - Standard installer for 64-bit Windows」をクリックし、インストーラーをダウンロードします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    「DB.Browser.for.SQLite-X.XX.X-win64.msi」をダブルクリックします。SetUp画面が表示されますので、「Next」ボタンをクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    ライセンス同意画面が表示されますので、「I accept~」のチェックボックスをチェックして、「Next」ボタンをクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    ショートカットキーの作成画面が表示されますので、必要に応じてチェックし、「Next」ボタンをクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    インストールディレクトリを設定する画面が表示されますので、必要に応じて「Browse」ボタンをクリックし、ディレクトリを変更して、「Next」ボタンをクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    インストールの最終確認画面が表示されますので、「Install」ボタンをクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    セットアップが完了した旨の画面が表示されたら、「Finish」ボタンをクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    以上で、インストールは完了です。

    ▲ページトップへ戻る

    3.2 データベース(DB)の読み込み方法

    DB Browser for SQLiteでデータベースを読み込む方法を解説します。

    まずショートカットキー または「DB Browser for SQLite.exe」をダブルクリックして、DB Browser for SQLiteを起動します。「データベースを開く」をクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    ファイルを選択する画面が表示されますので、SQLiteのデータファイルを選択し、「開く」ボタンをクリックします。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    左側のデータベース構造にデータベースの情報が表示されます。

    DB Browser For SQLite【フリーランスエンジニア案件情報 | プロエンジニア】

    ▲ページトップへ戻る

    4. Python及びデータベース関連の求人動向

    Pythonからデータベース「SQLite3」を操作!使い方を解説【フリーランスエンジニア案件情報 | プロエンジニア】

    SQLite3は組み込み開発に使用されるほか、アプリのデータベースとして保守運用業務でも重用されることが多いです。
    アプリの新規開発業務でも、データベース周りの要件としてSQLite3が指定されているケースがあります。

    SQLite3に関連するアプリ開発やデータベース周りの保守運用業務のフリーランス案件は弊社が運営する「プロエンジニア」でも多数紹介しております。月額単価の目安はおよそ60~80万円前後です。

    以下のリンクから案件を検索してみてください。

    ▲ページトップへ戻る

    5. まとめ

    今回はPythonのsqlite3というライブラリの使い方を紹介しました。SQLiteは簡単に導入できるため、気軽に利用できるのが特徴です。

    Pythonやデータベースを学び始めた方には、データベースを気軽に学べるので、ピッタリなデータベースです。興味がある方は、ぜひ本記事を参考にしてsqlite3を利用してプログラミングしてみてください。

    ▲ページトップへ戻る


    最新の求人情報をチェック!

    月額単価60万円〜90万円
    勤務地 東京都 千代田区
    月額単価70万円〜
    勤務地 東京都 渋谷区

    フリーランスの方でこのようなお悩みありませんか?

    • 定期的に案件を紹介してほしい
    • 完全フルリモートワークや、週1出勤など、働き方を選びたい
    • 単価交渉など営業周りが苦手なので、誰かに任せたい

    プロエンジニアにお任せください!

    プロエンジニアはほとんどEND直案件!高額単価案件ならお任せください。
    完全フルリモートや、週1出勤など、希望に合わせた働き方ができる案件を多数ご用意しています。
    単価や契約交渉などは弊社キャリアコンサルタントに全てお任せください。

    無料登録して、あなたの希望に合った案件をチェック!

    簡単60秒!無料登録はこちらから

    おすすめ記事

  • ピックアップ

    フリーランス

    NEW 【言語複数】フルスタックエンジニア★某有名経済情報サービスを展開している企業での開発

    今回は、BtobB向け経済情報プラットフォームの開発に関わっていただきます。 新しいチームが組成される...

    月額単価:60万円〜90万円

    フリーランス

    NEW 【Ruby/React/Node.js】フルスタックエンジニア★動画配信プラットフォームの開発

    動画配信プラットフォームを提供する企業にて、Ruby / React、Node.js のフルスタックエンジニアとして...

    月額単価:70万円〜

    フリーランス

    【Java/JavaScript】サーバーサイドエンジニア★ソフトウェア・WEBアプリケーションの開発

    システム開発やDXのプロダクトを展開している企業にて、同社で請け負っている受託開発案件に携わって頂...

    月額単価:50万円〜60万円

    フリーランス

    【React/Python】フルスタックエンジニア★ヘルスケア業界向けSaaSを展開する企業でのアルゴリズム開発

    同社は3D関連技術を活用したヘルスケア業界向けのSaaSや、AI関連のサービスを提供している企業です。 ...

    月額単価:70万円〜80万円

SCROLL TOP