概要 :このチュートリアルでは、sqlite3コマンドラインプログラムで最も一般的に使用されるSQLiteコマンドを紹介します。
SQLiteプロジェクトは、SQLステートメントとコマンドを使用してSQLiteデータベースと対話できるようにするsqlite3(またはWindowsではsqlite3.exe)という名前のシンプルなコマンドラインツールを提供します。
SQLiteデータベースに接続する
sqlite3を開始するには、次のようにsqlite3と入力します。
>sqlite3
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>
Code language: Shell Session (shell)
デフォルトでは、SQLiteセッションはインメモリデータベースを使用するため、セッションが終了するとすべての変更が失われます。
データベースファイルを開くには、.open FILENAME
を使用します 指図。次のステートメントは、chinook.db
を開きます データベース:
sqlite> .open c:\sqlite\db\chinook.db
Code language: Shell Session (shell)
SQliteデータベースに接続するときに特定のデータベースファイルを開きたい場合は、次のコマンドを使用します。
>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
sqlite>
Code language: Shell Session (shell)
存在しないデータベース名でセッションを開始すると、sqlite3ツールがデータベースファイルを作成します。
たとえば、次のコマンドはsales
という名前のデータベースを作成します C:\sqlite\db\
にあります ディレクトリ:
>sqlite3 c:\sqlite\db\sales.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite>
Code language: Shell Session (shell)
使用可能なすべてのコマンドとその目的を表示する
使用可能なすべてのコマンドとその目的を表示するには、.help
を使用します 次のようにコマンドを実行します:
.help
Code language: Shell Session (shell)
現在のデータベース接続でデータベースを表示する
現在の接続にあるすべてのデータベースを表示するには、.databases
を使用します 指図。 .databases
コマンドは、main
という名前のデータベースを少なくとも1つ表示します。 。
たとえば、次のコマンドは、現在の接続のすべてのデータベースを表示します。
sqlite> .database
seq name file
--- --------------- --------------------------
0 main c:\sqlite\db\sales.db
sqlite>
Code language: Shell Session (shell)
現在の接続にデータベースを追加するには、ステートメントATTACH DATABASE
を使用します。 。次のステートメントは、chinook
を追加します 現在の接続へのデータベース。
sqlite> ATTACH DATABASE "c:\sqlite\db\chinook.db" AS chinook;
Code language: Shell Session (shell)
ここで、.database
を実行すると もう一度コマンドを実行すると、sqlite3は2つのデータベースを返します:main
およびchinook
。
sqlite> .databases
seq name file
--- --------------- ---------------------
0 main c:\sqlite\db\sales.db
2 chinook c:\sqlite\db\chinook.db
Code language: Shell Session (shell)
sqlite3ツールを終了
sqlite3プログラムを終了するには、.exit
を使用します コマンド。
sqlite>.exit
Code language: Shell Session (shell)
データベースにテーブルを表示する
現在のデータベース内のすべてのテーブルを表示するには、.tables
を使用します 指図。次のコマンドは、chinook
への新しいデータベース接続を開きます データベースを作成し、データベース内のテーブルを表示します。
>sqlite3 c:\sqlite\db\chinook.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite> .tables
albums employees invoices playlists
artists genres media_types tracks
customers invoice_items playlist_track
sqlite>
Code language: Shell Session (shell)
特定のパターンに基づいてテーブルを検索する場合は、.table
を使用します パターンコマンド。 sqlite3はLIKE
を使用します パターンマッチングの演算子。
たとえば、次のステートメントは、文字列es
で終わるテーブルを返します。 。
sqlite> .table '%es'
employees genres invoices media_types
sqlite>
Code language: Shell Session (shell)
テーブルの構造を表示する
テーブルの構造を表示するには、.schema TABLE
を使用します 指図。 TABLE
引数はパターンである可能性があります。省略した場合は、.schema
コマンドは、すべてのテーブルの構造を表示します。
次のコマンドは、albums
の構造を示しています。 テーブル。
sqlite> .schema albums
CREATE TABLE "albums"
(
[AlbumId] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[Title] NVARCHAR(160) NOT NULL,
[ArtistId] INTEGER NOT NULL,
FOREIGN KEY ([ArtistId]) REFERENCES "artists" ([ArtistId])
ON DELETE NO ACTION ON UPDATE NO ACTION
);
CREATE INDEX [IFK_AlbumArtistId] ON "albums" ([ArtistId]);
sqlite>
Code language: Shell Session (shell)
sqlite_stat
のスキーマとコンテンツを表示するには テーブルでは、.fullschema
を使用します コマンド。
sqlite>.fullschema
Code language: CSS (css)
インデックスを表示
現在のデータベースのすべてのインデックスを表示するには、.indexes
を使用します 次のようにコマンドを実行します:
sqlite> .indexes
IFK_AlbumArtistId
IFK_CustomerSupportRepId
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
IFK_InvoiceLineInvoiceId
IFK_InvoiceLineTrackId
IFK_PlaylistTrackTrackId
IFK_TrackAlbumId
IFK_TrackGenreId
IFK_TrackMediaTypeId
Code language: Shell Session (shell)
特定のテーブルのインデックスを表示するには、.indexes TABLE
を使用します 指図。たとえば、albums
のインデックスを表示するには テーブルでは、次のコマンドを使用します:
sqlite> .indexes albums
IFK_AlbumArtistId
Code language: CSS (css)
名前がes
で終わるテーブルのインデックスを表示するには 、LIKE演算子のパターンを使用します。
sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerId
Code language: Shell Session (shell)
クエリの結果をファイルに保存する
クエリの結果をファイルに保存するには、.output FILENAME
を使用します 指図。 .output
を発行したら コマンドを実行すると、後続のクエリのすべての結果がFILENAME
で指定したファイルに保存されます。 口論。次の単一のクエリの結果をファイルのみに保存する場合は、.once FILENAME
を発行します。 コマンド。
クエリの結果を標準出力に再度表示するには、.output
を発行します。 引数なしのコマンド。
次のコマンドは、title
を選択します albums
から テーブルを作成し、結果をalbums.txt
に書き込みます ファイル。
sqlite> .output albums.txt
sqlite> SELECT title FROM albums;
Code language: Shell Session (shell)
ファイルからSQLステートメントを実行する
commands.txt
という名前のファイルがあるとします。 c:\sqlite\
にあります 次のコンテンツを含むフォルダ:
SELECT albumid, title
FROM albums
ORDER BY title
LIMIT 10;
Code language: Shell Session (shell)
commands.txt
のSQLステートメントを実行するには ファイルの場合、.read FILENAME
を使用します 次のようにコマンドを実行します:
sqlite> .mode column
sqlite> .header on
sqlite> .read c:/sqlite/commands.txt
AlbumId Title
---------- ----------------------
156 ...And Justice For All
257 20th Century Masters -
296 A Copland Celebration,
94 A Matter of Life and D
95 A Real Dead One
96 A Real Live One
285 A Soprano Inspired
139 A TempestadeTempestade
203 A-Sides
160 Ace Of Spades
Code language: Shell Session (shell)
このチュートリアルでは、SQLiteデータベースを処理するさまざまなタスクを実行するためのsqlite3ツールの多くの便利なコマンドを学習しました。