SQLite

SQLite3の使用についてのメモ
[最終更新日: 2008/04/21]

1. テーブル一覧の取得

| INDEX

sqliteコマンドでログイン後なら、以下で取れる。

sqlite> .tables

SQL文で取得したい場合は、sqlite_masterテーブルから取得する。

select name from sqlite_master;

なお、一時テーブルはsqlite_masterではなく、sqlite_temp_masterのほうで管理されるので同様の方法でそちらから取得する。

2. カンマ区切りテキスト(CSV)のインポート

| | INDEX

SQLite3では.importを使用する。

sqlite> .separator ","
sqlite> .import DEMO.csv [テーブル名]

sqliteコマンドから実行する場合は以下のようにする。

sqlite -separator "," DBNAME.db ".import DEMO.csv [テーブル名]"

ちなみに、SQLite2ではcopy構文を使っていた。

sqlite> copy [テーブル名] from 'DEMO.csv' using delimiters ',';

3. タブ区切りテキストのインポート

| INDEX

基本的には、CSVを読み込む場合と同様。

sqlite> .separator "\t"
sqlite> .import DEMO.tsv [テーブル名]

ただし、\tのようなエスケープがうまくいかなくてハマる場合もあるようので、以下に確実に動きそうなシェルスクリプト例をば。

#!/bin/sh

TAB=`echo -e "\t"`
sqlite -separator "$TAB" DBNAME.db ".import DEMO.tsv [テーブル名]"
.