データベースの作成と接続

SQLite でデータベースを利用するには最初にデータベースを作成する必要があります。ここでは SQLite でデータベースを新規に作成する方法、そして作成済のデータベースに接続する方法について解説します。

(Last modified: )

データベースの作成

新しいデータベースを作成するにはコマンドプロンプト上で次のように入力します。

sqlite3 データベース名

例として myfriend.sqlite3 という名前のデータベースを作成してみます。コマンドプロンプトを起動し、sqlite3.exe を設置したディレクトリに移動してから次のように実行して下さい。

sqlite3 myfriend.sqlite3

データベースの作成(1)

myfriend.sqlite3 データベースが存在していなかった場合は新しいデータベース myfriend.sqlite3 が作成された上で作成したデータベースに接続されます。

データベースの作成(2)

データベースに接続されている状態ですのでテーブルなどをデータベースに作成することができます。(テーブルの作成方法は別のページで詳しく解説します)。

create table personal(id, name);

データベースの作成(3)

現在接続しているデータベースにテーブル personal が作成されました。

接続しているデータベースから切断するには .exit と実行して下さい。

.exit

データベースの作成(4)

では sqlite3.exe を設置したディレクトリを見て下さい。データベース名に指定した名前と同じファイル名のファイルが作成されています。

データベースの作成(5)

SQLite ではこのようにデータベースを作成すると同じ名前のファイルが作成されます。データベースに含まれるすべてのデータがこのファイルの中に保存されます。

なお sqlite3.exe を設置したディレクトリ以外にデータベースのファイルを設置したい場合には次のようにパス付きで指定して下さい。

sqlite3 パス名\データベース名

例えば絶対パスで c:\code\sqlite ディレクトリ内に sample.sqlite3 データベースを作成する場合は次のように実行します。

sqlite3 c:\code\sqlite\sample.sqlite3

データベースの作成(6)

なお事前にディレクトリを作成しておく必要があります。パスに指定したディレクトリが存在しない場合、データベースを作成した時点ではエラーは表示されませんが、データベースにテーブルなどを追加するとエラーとなります。

データベースの名前について

データベースの名前は任意の名前を付けることができます。先ほどは myfriend.sqlite3 と付けましたがどのような形式でも構いません。

myfriend
myfriend.db
myfriend.sqlite
myfriend.sqlite3

データベースを作成すると SQLite ではデータベース名と同じ名前のファイルを作成してデータを保存します。例えばデータベース名が myfriend にした場合、作成されるファイル名も myfriend と拡張子が何も無いファイルが作成され、あとからファイルを見たときにこれが何のファイルなのか非常に分かりにくくなってしまいます。

そこでデータベースの名前を決める時はデータベースが保存されるファイル名のことも考慮して付けることをお勧めします。一般的にどのような拡張子が使われているのかは分かりませんが、今回は .sqlite3 という拡張子で統一しています。

データベースへの接続

データベースに対して色々な操作を行うにはまずデータベースへ接続する必要があります。新規にデータベースを作成した場合は作成と同時に接続が行われますが、既に作成済のデータベースへ接続するにはコマンドプロンプト上で次のように入力します。

sqlite3 データベース名

見て頂くと分かる通り新規にデータベースを作成する場合と同じ書式です。引数に既に存在するデータベース名を指定した場合、新しいデータベースが作成されるのではなく引数に指定したデータベースに接続が行われます。

では先ほど作成した myfriend.sqlite3 データベースへ接続してみます。コマンドプロンプトを起動し、sqlite3.exe を設置したディレクトリに移動してから次のように実行して下さい。

sqlite3 myfriend.sqlite3

データベースへの接続(1)

新しくデータベースが作成されたわけではなく既存のデータベースに接続していることを確認するために、既存のデータベースに作成したテーブルを確認してみます。 .tables と実行して下さい。

.tables

データベースへの接続(2)

最初にデータベース myfriend.sqlite3 を作成したときに同時に作成したテーブル personal が作成されていることが確認できます。このように新規にデータベースを作成する場合と既存のデータベースに接続する場合は同じ書式となっていますのでご注意下さい。

データベースのファイルが作成されるタイミング

SQLite でデータベースを作成すると、データベースの名前と同じファイル名でファイルが作成されます。ただデータベースを作成しただけではファイルは作成されず、データベースにテーブルなどを何か作成した時点で初めてファイルが作成されます。

実際に試してみます。新しいデータベース diary.sqlite3 を作成します。

sqlite3 diary.sqlite3

データベースのファイルが作成されるタイミング(1)

データベースを作成した直後に、データベースのファイルが作成されるはずのディレクトリを確認すると、データベースのファイルがまだ存在していません。

データベースのファイルが作成されるタイミング(2)

では作成したデータベースにテーブルを作成します。

create table blogpost(id, title);

データベースのファイルが作成されるタイミング(3)

あらためてデータベースのファイルが作成されるはずのディレクトリを確認すると、今度はデータベースのファイルが作成されていることが確認できます。

データベースのファイルが作成されるタイミング(4)

このようにデータベースを作成しただけではまだデータベースのファイルは作成されませんが、データベースにテーブルなどを追加して時点でデータベースのファイルは作成されます。

-- --

SQLite でデータベースを新規に作成する方法、そして作成済のデータベースに接続する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。