▶ データベースからデータを抽出する場合は以下の記事をご覧ください。
はじめに
今回からデータベースを扱うことにします。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を終了するときには「.quit」とします。
データベースを作る
新たにデータベースを作るのであれば、起動と同時にデータベース名を指定してしまうのが楽でしょう。ここでは、「animal.db」というデータベースを作ることにしましょう。PowerShellあるいはコマンドプロンプト上で次のようにします。
この時点ではまだファイルは作れれていませんが、このあと、テーブルの作成などを進めるとファイルが作られます。続けて、テーブルを作っていきましょう。
SQlite3 でテーブルを作る
書式
まず書式を確認しておきましょう。SQLでテーブルを作る際は次の書式に従います。
見てわかるように、各カラムに「データ型」を設定する必要があります。次はこのデータ型を見ていきましょう。
データ型
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から直接データベースの定義をおこないました。起動と同時にデータベース名を指定すると、(存在していなければ)データベースファイルを作ろうとします。続けて、テーブルを定義すると、データベースが作られるのでしたね。
データベース作成後は、次のコマンドでデータベースの確認、データベースの構造の確認ができます。
コメント