wiki:SQLite3の使い方

戻る

### シェルからコマンドの実行
$ sqlite3 data.db ".tables"
auth_group                  auth_user_groups
auth_group_permissions      auth_user_user_permissions
auth_message                django_content_type
auth_permission             django_session
auth_user                   django_site

-- ロードしたDBファイル
sqlite> .databases
seq  name             file
---  ---------------  ----------------------------------------------------------
0    main             /home/roka/Dev/Django/tests/data.db

-- テーブル一覧の表示
sqlite> .tables
auth_group                  auth_user_groups
auth_group_permissions      auth_user_user_permissions
auth_message                django_content_type
auth_permission             django_session
auth_user                   django_site

-- スキーマの確認
sqlite> .schema django_session
CREATE TABLE "django_session" (
    "session_key" varchar(40) NOT NULL PRIMARY KEY,
    "session_data" text NOT NULL,
    "expire_date" datetime NOT NULL
);

-- テーブル構成をDUMPする
sqlite> .dump django_site
BEGIN TRANSACTION;
CREATE TABLE "django_site" (
    "id" integer NOT NULL PRIMARY KEY,
    "domain" varchar(100) NOT NULL,
    "name" varchar(50) NOT NULL
);
INSERT INTO "django_site" VALUES(1,'example.com','example.com');
COMMIT;

-- 実行したSQLを復唱する
sqlite> .echo on
sqlite> select * from django_content_type;
select * from django_content_type;
1|message|auth|message
2|group|auth|group
3|user|auth|user
4|permission|auth|permission
5|content type|contenttypes|contenttype
6|session|sessions|session
7|site|sites|site

-- 結果を見やすくする
sqlite> .explain on
sqlite> select * from django_content_type;
id    name            app_label   model
----  --------------  ----------  ----------
1     message         auth        message
2     group           auth        group
3     user            auth        user
4     permission      auth        permission
5     content type    contenttyp  contenttyp
6     session         sessions    session
7     site            sites       site

-- カラム名を表示(ON)/非表示(OFF)(デフォルトON)
sqlite> .header off
sqlite> select * from django_content_type;
1     message         auth        message
2     group           auth        group
3     user            auth        user
4     permission      auth        permission
5     content type    contenttyp  contenttyp
6     session         sessions    session
7     site            sites       site

-- ファイルからデータをインポートする
sqlite> .import filename tablename

-- 作成したINDEX名を表示
sqlite> .indices django_content_type
sqlite_autoindex_django_content_type_1

-- 出力フォーマットを指定する(csv | column | html | insert | line | list | tabs | tcl)
sqlite> .mode html
sqlite> select * from django_content_type;
<TR><TD>1</TD>
<TD>message</TD>
<TD>auth</TD>
<TD>message</TD>
</TR>
......(略)
<TR><TD>7</TD>
<TD>site</TD>
<TD>sites</TD>
<TD>site</TD>
</TR>

-- 値がNULLの場合に表示する文字列を指定。デフォルトは"" (何も表示されない)
sqlite> .nullvalue NULL

-- 標準出力の代わりに指定したファイルに結果を出力する
sqlite> .output output.txt

-- プロンプトの表示を変更する
sqlite> .prompt "SQL>> "

-- 外部SQLの実行
sqlite> .read "select.sql"

-- 区切り文字を変更する(デフォルトは'|')。.import にも影響する
sqlite> .separator ,

-- 現在の設定が表示される
sqlite> .show
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: ""
    width:

-- 終了
sqlite> .exit
sqlite> .quit

Last modified 2 years ago Last modified on Nov 7, 2016, 4:13:18 PM