概要 :このチュートリアルでは、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.dbCode 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を使用します 次のようにコマンドを実行します:
.helpCode 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>.exitCode 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>.fullschemaCode 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_TrackMediaTypeIdCode language: Shell Session (shell)
特定のテーブルのインデックスを表示するには、.indexes TABLEを使用します 指図。たとえば、albumsのインデックスを表示するには テーブルでは、次のコマンドを使用します:
sqlite> .indexes albums
IFK_AlbumArtistIdCode language: CSS (css)
名前がesで終わるテーブルのインデックスを表示するには 、LIKE演算子のパターンを使用します。
sqlite> .indexes %es
IFK_EmployeeReportsTo
IFK_InvoiceCustomerIdCode 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 SpadesCode language: Shell Session (shell) このチュートリアルでは、SQLiteデータベースを処理するさまざまなタスクを実行するためのsqlite3ツールの多くの便利なコマンドを学習しました。