動かしてみる(SQLiteを学ぶ_2)

SQLiteを学んでいこうという連載の2回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

前回は、データベースというものを学ぼうと思った時に何を選択したらいいのかを考えてみました。その1つの解として、SQLiteが挙げられました。 SQLiteはコンパクトで高速な、アプリケーション組み込み型のデータベースシステムです。

今回は、早速実際に使ってみたいと思います。この連載で使用するSQLiteですが、Anaconda経由でインストールされた物を使います。

起動してみる

まずは起動してみまょう。Anaconda Promptを開いてから「SQLite3」と入力してみてください。以下の様な表示になったと思います。

SQLite version 3.39.3 2022-09-05 11:02:23
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

1行目はSQLiteのバージョン表記です。2行目はヘルプの表示方法(「.help」と入力)、3行目は現在一時的なインメモリデータベースに接続されている旨を、4行目はデータベースファイルに接続する方法(「.open ファイル名」と入力)を述べています。 最後に「sqlite>」と表示されました。この状態でコマンドやSQL文を入力して操作します。

入力の先頭に「.」を付けるとコマンド(ドットコマンド)と認識されて、SQLiteの色々な機能が使えます。それ以外の入力はSQL文と認識されます。 手始めに「.show」と入力してみてください。以下の表示が現れます。

sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width:
    filename: :memory:

「.show」はSQLiteの設定状態を表示するコマンドです。表示されている内容について主なものを解説します。

項目 機能
echo onにすると入力されたSQL文が実行結果の前に表示されます
headers onにするとSQL文の実行結果にヘッダーが表示されます
mode SQL文の実行結果の出力のフォーマットモードです
nullvalue NULL値(データがない状態)の代わりに出力する文字列です
output SQL文の実行結果の出力先(ファイル名)です。「stdout」ではモニターに出力されます
colseparator SQL文の実行結果の行の区切り文字です
rowseparator SQL文の実行結果の列の区切り文字です
filename 接続されているデータベースファイル名です。「:memory:」はインメモリデータベースを指します

また、colseparator、rowseparator、filename以外は先頭に「.」を付けてドットコマンドとして使用して設定を変えることができます。colseparator、rowseparatorは「.separator」で設定可能です。

SQLiteには、その他にも60以上のドットコマンドがあります。ドットコマンドの一覧は冒頭でも述べた「.help」で表示されます(英文です)。SQLiteを終了するには「.exit」と入力します。

インメモリデータベース

ここまで簡単な操作をみてきましたが、この状態では特定のデータベースファイルに接続されている状態ではありません。現状ではインメモリデータベースに接続されています。これは冒頭の起動時メッセージや「.show」の「filename」で表示された内容からもあきらかです。インメモリデータベースとは、SQLiteを使用しているハードウェアのメモリ上に展開されているデータベースの事です。ハードディスクやSSDなどの従来型のストレージに、ファイルとして記録されるデータベース(オンディスクデータベース)に比べると非常に高速に処理を実行できます。この状態でもテーブルを作成したりデータを入力したりをすることができるのですが、これらの内容はSQLite終了時に消えてしまいます。

このままではデータベースとして機能しませんので、ファイルを作成して操作してみましょう。

次回はデータベースファイルの作成

と言う訳で、次回はデータベースファイルを作成して操作してみようと思います。お楽しみに!!

hirocom777.hatenadiary.org SQLite学習記事のまとめですはこちらから