Python

Python初学者向け:SQLite3の基本を解説(テーブル作成)

スポンサーリンク

 

この記事はこんな方におススメです
  • Pythonを始めたばかりで基本から学びたい方
  • Pythonの基本的な部分を速習してまずは全体像を把握しておきたい方

▶ データベースからデータを抽出する場合は以下の記事をご覧ください。

はじめに

今回からデータベースを扱うことにします。PythonにはSQLite3が標準ライブラリに入っているのでこれを使っていくことにしましょう。SQLiteは軽量で使いやすく、他のDBと共通点も多いのでまず学ぶにはよいかと思います。テーブルの作成から始めていくことにしましょう。

▶ DB Browser for SQLiteを使って、データベースを作成する場合は以下の記事をご覧ください。

SQLite3 の超基本

まずSQLiteとSQLite3について確認しておきましょう。SQLiteはデータベースです。名前が表すとおり、簡易的なデータベースとなります。このデータベースを操作する言語がSQLとなります。

SQLite3は、PythonでSQLiteを操作するためのライブラリになります。このライブラリはPythonの標準ライブラリとなっています。Pythonからはライブラリ(SQLite3)を通じてデータベース操作言語(SQL)を使いデータベース(SQLite3)を操作します。

データベースを作る際はSQL言語で直接、作成した方がわかりやすいでしょう。(PythonからSQLite3を使って作成する場合でも、結局、Pythonとは別にSQLを書く必要があります。)

SQLiteを起動する

まずはSQLiteの起動からですね。私の環境はOS:Windows10 Proです。Windowsの場合は、コマンドプロンプトあるいはPowerShellを開いてデータベースを作りたいディレクトリまで移動しましょう。ここでSQLite3を起動させましょう。

SQLite3の起動

起動できました。赤字でメッセージが表示されているのでドキッとしますが、問題ありません。これは、まだデータベースを作成していないので一時的なデータベースに接続している、と教えてくれているメッセージです。

SQLite3を終了するときには「.quit」とします。

SQLite3の終了

データベースを作る

新たにデータベースを作るのであれば、起動と同時にデータベース名を指定してしまうのが楽でしょう。ここでは、「animal.db」というデータベースを作ることにしましょう。PowerShellあるいはコマンドプロンプト上で次のようにします。

起動時にデータベースを指定する

この時点ではまだファイルは作れれていませんが、このあと、テーブルの作成などを進めるとファイルが作られます。続けて、テーブルを作っていきましょう。

SQlite3 でテーブルを作る

書式

まず書式を確認しておきましょう。SQLでテーブルを作る際は次の書式に従います。

CREATE TABLE テーブル名 (
カラムの名前1 データ型 オプション,
カラムの名前2 データ型 オプション,
……
テーブル全体のオプション
);

見てわかるように、各カラムに「データ型」を設定する必要があります。次はこのデータ型を見ていきましょう。

データ型

SQLite3 ではカラムに指定できるデータ型は、とりあえず「TEXT」「INTEGER」「REAL」「NULL」を知っておけばよいでしょう。テーブルを作る行為はそんなに頻繁におこなうわけではないので、書式を確認出来たら、細かい部分は必要になった時点で調べて対応する、でよいかと思います。4つの型はそれぞれ以下の意味となります。

  • TEXT:文字列のデータ型
  • INTEGER:整数のデータ型
  • REAL:小数のデータ型
  • NULL:空

オプション

カラムにはデータ型だけでなく、オプションでルールを設定することができます。オプションを設定することでデータをある程度きれいに保つことができます。まずは以下を知っておけばよいでしょう。

  • NOT NULL
    指定したカラムではNULLを入れることができません。値が必須となる。
  • DEFAULT
    デフォルトの値を指定できます。DEFAULTの後にスペースで区切って、値を指定します。
  • UNIQUE
    テーブル内で値がユニークとなるように設定されます。
  • PRIMARY KEY
    IDとなるカラムに設定します。
  • CHECK
    ルールのロジックを設定できます。CHECKの後の()内にルールを設定します。

テーブルを作る

実際にテーブルを作ってみることにしましょう。「animal.db」に「Animal」というテーブルをつくることにしましょう。このテーブルには次のカラムを定義することにしましょう。

  • ID
    文字通りIDとなるカラムに設定
  • Name
    どうぶつたちのなまえを保管するカラムとします
  • Zoo
    どうぶつたちの出身の「どうぶつえん」の名前を保管するカラムとします
  • Age
    どうぶつたちの年齢を保管するカラムとします

やってみます。

テーブルの作成

最後に「;(セミコロン)」をつけないと、実行されないので読みやすいように改行を使って記載していきましょう。最後までかけたら「Enter」です。

Zooカラムではどうぶつの出身どうぶつえんを管理しますが、デフォルトでは「UnKnown」をセットするようにしています。また、Ageは負の値が入らないようにルールを設定しています。

ただ、これを実行しても何も応答がありません。テーブル一覧を確認してみましょう。テーブル一覧を確認するには「.tables」で確認することができます。

テーブルの確認

ちゃんと「Animal」というテーブルが確認できていますね。さらにテーブルの構造を確認するコマンド「.schema」があります。やってみましょう。

テーブルの構造の確認

ちゃんとできてますね!

スポンサーリンク

まとめ

今回はSQLite3でデータベースの作成をしました。Pythonから離れて、PowerShellから直接データベースの定義をおこないました。起動と同時にデータベース名を指定すると、(存在していなければ)データベースファイルを作ろうとします。続けて、テーブルを定義すると、データベースが作られるのでしたね。

データベース作成後は、次のコマンドでデータベースの確認、データベースの構造の確認ができます。

  • 「.tables」:テーブル一覧の確認
  • 「.shema」:テーブルの構造の確認(テーブルが複数ある場合はスペースに続けてテーブル名を指定すると、対象のテーブルの構造のみを表示し、テーブル名を省略した場合はすべてのテーブルの構造を表示する。)

コメント

タイトルとURLをコピーしました