sql >> データベース >  >> RDS >> SQLite

SQLiteコマンド

    概要 :このチュートリアルでは、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ツールの多くの便利なコマンドを学習しました。


    1. PostgreSQLで文字列と数値を連結する

    2. SQL、データとテーブルを削除する方法

    3. UTC_DATEの例– MySQL

    4. MySQLのCHECK制約が機能していません