home(h) links(l) memo profile(r)
memo(m) SQLite

SQLite

インストール

対話モードと非対話モード

対話モード

【対話モードに入る】
shell> sqlite3 データベース名
【対話モードから出る】以下3つ、いずれでもOK
sqlite> .q
sqlite> .quit
sqlite> .exit
  

非対話モード

【非対話モード】
shell> sqlite3 オプション データベース名 "操作文"
  
-init ファイル名
指定したファイルに記述されたメタコマンドやSQL文を読み込んで実行する。
-echo
コマンドを実行する前にコマンドを表示する。
-header
ヘッダの表示をONにする。
-noheader
ヘッダの表示をOFFにする。
-column
結果を空白区切りで表形式に整形して出力する。
-html
結果をhtmlの表形式に整形して出力する。
-line
各列の値は改行で、行間は空行で区切って結果を出力する。
-list
各列の値を縦棒(|)で、行間は改行で区切って結果を出力する(既定の動作)。
-separator 区切り文字
結果の値間の区切り文字を指定する。既定値は縦棒(|)。
【例】sqlite3 -separator , log.db 'select * from main_tbl'
-nullvalue 文字
NULL値を示すのに使う文字を指定する。既定値は空文字('')。
-version
バージョンを表示して終了する。
-help
ヘルプを表示して終了する。

データベース操作

出力モードの設定

【書式】
sqlite> .mode 出力モード;
    
csv
コンマで区切って出力
column
左揃えの列に出力(列幅は.widthで設定)
html
htmlのtableコードとして出力
insert
SQLのデータ挿入文を出力
line
各値を1行ごとに出力
list
.separatorで指定した区切り文字で区切って出力
tabs
TABで区切って出力
tcl
TCLリスト要素(って何?)

出力先の設定

【書式1】ファイルに出力
sqlite> .output 出力先ファイル名;
【書式2】標準出力(画面)に出力
sqlite> .output stdout;
    

データベースの作成

【書式】
sqlite3 データベース名

【例】
shell> sqlite3 test.db
SQLite version 3.6.10
Enter ".help" for instructions
sqlite> .quit
shell> 
    

テーブルの作成

【書式】
create table テーブル名 (カラム名 , カラム名 ...);

【例】
shell> sqlite3 test.db
SQLite version 3.6.10
Enter ".help" for instructions
sqlite> create table tbl1
   ...> (id INT, name VARCHAR(30),bd DATE);
sqlite> .quit
shell> 
    

なお、対話モードに入らず直接操作することもできる。

shell> sqlite3 test.db "create table tbl1 (id INT, name VARCHAR(30), bd DATE);"
    

テーブルの削除

【書式】
DROP TABLE IF EXIST データベース名.テーブル名

【例】
shell> sqlite3 test.db
SQLite version 3.6.10
Enter ".help" for instructions
sqlite> .schema tbl1
CREATE TABLE tbl1
(id INT, name VARCHAR(30), bd DATE);
sqlite> drop table tbl1
shell> 
    

参考文献・サイト

テーブル構造の表示

【書式】
.schema テーブル名

【例】
shell> sqlite3 test.db
SQLite version 3.6.10
Enter ".help" for instructions
sqlite> .schema tbl1
CREATE TABLE tbl1
(id INT, name VARCHAR(30), bd DATE);
sqlite> .quit
shell> 
    

データの追加

【書式】
insert into テーブル名 (カラム名...) values (データ...);

【例】
shell> sqlite3 test.db "insert into tbl1 (id, name, bd) values (1,"Jack",2008/1/1);"
    

データの更新

【書式】
UPDATE テーブル名 SET カラム名='',カラム名='',... WHERE 条件

【例】

    

データの削除

【書式】
delete from テーブル名 条件節

【例】test.db の main テーブルからカラムdateが'2010/03/01'のデータ(レコード、行)を削除する。
shell> sqlite3 test.db "delete from main where date='2010/03/01';"
    

外部SQL文を読み込んで実行

【書式】
.read ファイル名

【例】
shell> sqlite3 test.db
sqlite3> .mode csv ←出力モードをcsvにする
sqlite3> .output test.csv ←出力先ファイルをtest.csvに設定
sqlite3> .read test.sql ←test.sqlに書かれたsql文を実行して設定したファイル(test.csv)に出力
    

データ型

書式 内容
NULL型 NULL
整数型 INT 符号付き整数、値の大きさに応じて1,2,3,4,6,8バイトをとる
実数型 REAL 浮動小数点値、8バイトをとる
テキスト型 TEXT テキスト文字列。データベースのエンコードで保存される(UTF-8など)。
バイナリ型 BLOB バイナリデータ。データはそのままの状態で保存される。

参考文献・サイト: