Python
 Computer >> コンピューター >  >> プログラミング >> Python

【初心者向け】PythonでSQLiteデータベースを自作する方法|作成からデータ挿入まで徹底解説

はじめに

プログラマーにとって、アプリケーション内でデータベースを活用し、データの保存・取得・更新・削除を効率的に行えることは欠かせないスキルです。Pythonには標準でsqlite3モジュールが組み込まれているため、追加インストールなしでSQLiteデータベースを作成・操作できます。

SQLiteデータベースはすべてのデータを単一のファイルに保存する仕組みのため、扱いやすくアクセスも簡単です。軽量でありながら本格的なSQL操作が可能で、セットアップも非常に手軽なことから、小規模アプリケーションやデータ分析、プロトタイプ開発などで広く利用されています。

準備:始め方

まず、お使いのPCにPythonがインストールされていることを確認してください。SQLite(sqlite3モジュール)はPythonに標準搭載されているため、別途インストールする必要はありません。

SQLiteライブラリを使い始めるには、Pythonスクリプト内で次のようにインポートします。

import sqlite3

データベースの作成

データベースを作成するには、対象のデータベースへの接続を試みます。指定したデータベースファイルが存在しない場合は、実行時に自動的に新規作成されます。

database = sqlite3.connect("Student_records.db")
print("Connection has been made successfully!")
database.close()

これでデータベースの作成と接続が完了しました。作業ディレクトリを確認すると、「Student_records.db」というファイルが生成されていることがわかります。

テーブルと属性(カラム)の追加

RDBMSにおける「属性」とは、テーブルのカラム(列)のことです。

注意:1つのデータベースには複数のテーブルを持たせることができ、それぞれのテーブルに異なるカラムを定義できます。

まずデータベースに接続し、その後テーブルと属性を追加します。

database = sqlite3.connect("Student_records.db")
print("Connection has been made successfully!")
database.execute("""CREATE TABLE Scores(ID INT PRIMARY KEY NOT NULL, NAMES TEXT NOT NULL, MARKS TEXT NOT NULL, GRADES TEXT NOT NULL)""")
print("Columns created in your Database")
database.close()

上記のコードでは、学生ID(ID)、名前(NAMES)、点数(MARKS)、成績(GRADES)を格納する「Scores」テーブルを作成しています。

ポイント:

  • NOT NULL … 必ず値を入力しなければならない(空欄不可)という制約
  • PRIMARY KEY … 各値が一意でなければならない(同じ学生IDが重複しない)という制約

レコードの挿入

データベースとテーブルを作成したら、次は実際にレコード(データ)を挿入していきましょう。ここでもまずデータベースに接続します。

connection = sqlite3.connect("Student_records.db")
print("Connection has been made successfully!")
cursor = connection.cursor()
cursor.execute("""INSERT INTO Scores(ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(1,"Vijay",93,"A"))
connection.commit()
connection.close()

上記のコードのポイントは以下の通りです。

  • connection.cursor() … データベース内のレコードを操作・走査するためのカーソルオブジェクトを取得します。
  • connection.commit() … 実行したコマンド(変更内容)をデータベースに確定・保存します。接続を閉じる前に必ず呼び出しましょう。
  • プレースホルダー(?) … SQL文に直接値を埋め込む代わりに「?」を使うことで、SQLインジェクション対策にもなり安全です。

レコードを追加したい分だけ cursor.execute() を繰り返し実行すればOKです。

ヒント:GUIでデータベースの中身を確認したい場合は、「DB Browser for SQLite」がおすすめです。オープンソースで無料・軽量なソフトウェアで、データベースの内容を簡単に閲覧・編集できます。

実行例

import sqlite3
connection = sqlite3.connect("Student_records.db")
print("Connection has been made successfully!")
cursor = connection.cursor()
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(1,"Vijay",93,"A"))
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(2,"Tony",86,"B"))
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(3,"Stark",100,"A"))
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(4,"Steve",63,"C"))
print("Records have been added")
connection.commit()
connection.close()
input("Press Enter key to exit ")

このスクリプトを実行すると、4件の学生レコードがScoresテーブルに登録されます。

まとめ

これで、自分専用のデータベースを作成し、テーブル・属性・レコードを自由に追加できるようになりました!

sqlite3ライブラリには他にも、データの検索(SELECT)、更新(UPDATE)、削除(DELETE)、並べ替え(ORDER BY)など、データ分析に役立つ豊富な機能が用意されています。

さらに詳しく知りたい方は、公式ドキュメント(https://docs.python.org/3/library/sqlite3.html)を参照してください。

  1. 自分専用のクラウドPCを構築する方法【Paperspace+Parsec活用ガイド】

    どこからでもアクセスできるパソコンが欲しいと思ったことはありませんか?そんなときに便利なのが「クラウドPC」です。外出先から自分のファイルにアクセスできるだけでなく、高性能なゲーミングPCをレンタルすれば、今のマシンでは到底動かせないようなゲームも快適にプレイできます。 さらに、レンタルしたクラウドPCを自分好みにカスタマイズできたら理想的ですよね。実は、オンラインサービスと「Parsec」というアプリを組み合わせれば、それが簡単に実現できるのです。 クラウドPCのセットアップ手順 まずは、クラウドPCを利用できるサービスを選びましょう。Amazon AWSなど選択肢は多数ありますが、この記

  2. WordPressデータベースのクリーンアップ方法|サイト高速化のための最適化手順とおすすめプラグイン5選

    WordPressサイトを快適に、そして高速に運用したいなら、データベースから不要なデータを取り除く「クリーンアップ」は欠かせません。WordPressデータベースのクリーンアップは、ページの表示速度を改善するために非常に効果的なメンテナンス作業です。キャッシュの活用、画像の最適化、JavaScriptの遅延読み込み、未使用CSSの削除といった他のパフォーマンス対策と併せて定期的に行うことで、より大きな効果が得られます。WordPressのデータベースには、投稿や固定ページなどのコンテンツだけでなく、コメント、リンク、ポートフォリオ項目、フォームの送信内容、プラグイン設定、テーマ設定、メディア