SQLiteの基本(Windows)

SQLite(エスキューライト)は、アプリケーションに組み込まれて利用する数百キロバイト程度のデータベースライブラリまたはコマンドです。 SQLiteはパブリックドメインで提供されており、個人使用、商用問わず無料で使用できます。 コマンドラインプログラムの「sqlite.exe」(バージョン3から「sqlite3.exe」)は、データベースサーバーへのインストールをすることなく実行できます。
SQLiteは、SQL92に準拠しているので、基本的なSQコマンドはサポートされています。しかし、基本的にローカル環境で使用されることが想定されているので、ユーザの概念はなくGRANT、REVOKEコマンドがサポートされていません。
トランザクションはサポートされていますが、ロック単位はデータベース単位(ファイル単位)で行われます。
SQLite Home Page:SQLite Home Page

データベース作成(接続)

SQLiteには、CEEATE DATABASEコマンドやDROP DATABASEコマンドがありません。
そのため、データベースを新規に作成(接続)するにはコマンドプロンプト上で次のように入力します。
データベースに接続された状態でSQLiteのコマンドラインツールが起動します。

sqlite3 データベース名
データベースファイルが存在しない場合は、新規で作成されます。
データベースに接続してSQLを実行するにはコマンドプロンプト上で次のように入力します。
sqlite3 データベース名 "SQL文"
SQLの実行結果は、標準出力に表示されます。
sqlite3 データベース名 < ファイル名
データベースに接続してファイルに保存されているSQLを実行するにはコマンドプロンプト上で次のように入力します。
SQLiteがサポートする文字列のエンコーディングは、UTF-8と、UTF-16のリトルエンディアン(LE)とビッグエンディアン(BE)です。データベースの新規作成時にSQLiteのコマンドラインで
pragma encoding=エンコーディング名;
を実行することで設定します。エンコーディングはデータベースごとに固定となり、設定した後には変更できません。

エンコーディング名

  • utf8 - UTF-8
  • utf16, utf16le - UTF-16LE(リトルエンディアン)
  • utf16be - UTF-16BE(ビッグエンディアン)

通常、コマンドプロンプトの文字コードは、sjisになっているので、UTF-8文字コードは、文字化けします。そこで、コマンドプロンプトのフォントを"MS ゴシック"に変更後、文字コードをUTF-8に変更します。
コマンドプロンプトのプロパティでフォントに"MS ゴシック"を選択後、コマンドプロンプトの文字コードをUTF-8に変更するコマンドをコマンドプロンプト上で次のように入力します。
chcp 65001
文字コードを変更後、データベースに接続すれば、日本語の表示は文字化しません。だたし、文字化けはしませんが、コマンドプロンプト上で日本語文字列は途中で切れて表示されます。コマンドプロンプト画面をウィンドウ外に動かすなどして再描画させれば、正常に表示されます。

メモリにデータベース作成

データベースファイルをメモリ上に作成することができます。メモリ上に作成したデータベースファイルは高速で動作しますが、接続を解除すると削除されます。
データベース接続時、データベース名として「:memory:」を指定します。

sqlite3 :memory:

データベースを削除する

DROP DATABASEコマンドがサポートされていませんので、作成したデータベースファイルを直接削除します。

SQLiteでSQLの実行

SQLiteのコマンドラインツール上でSQLステートメント(終了は";"セミコロン)を入力し、"Enter"キーを押してSQLを実行させます。セミコロンを入力せずに"Enter"キーを押した場合、SQLiteは継続行を表すプロンプトを表示し、次行テキストの入力待ちになります。この機能を使い、SQLコマンドを複数行にまたがって入力することが出来ます。テーブル名やフィールド名は大文字と小文字の区別がありませんので注意が必要です。

inserted by FC2 system