SQLiteとは
SQLiteは軽量なRDBMS。アプリの組み込みDBや小規模アプリなデータベースに適している。サポートしていないSQL文があったり、ユーザ権限管理の仕組みがないなど、大規模なアプリケーションには向かない。作成したデータベースはファイルとして保存される。
インストール
yumでインストールできる。公式サイトからも落とせる。
1 |
yum install sqlite |
操作
構文ルール
- 末尾に「;」をつける。
- エスケープ処理は文字の前に「’」をつける。
■接続/DB作成
接続も作成も同じコマンド。指定したDB名が存在しなければ新しく作成される(何かテーブルが作成されたらファイルとして作成される)。作成済みのDBにアクセスする際は、保管ディレクトリまで移動してファイル名を指定して接続できる。
1 2 3 4 5 |
# sqlite3 hogedb.sqlite SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> |
■テーブル一覧表示
1 2 |
sqlite> .tables hogetable hogetable2 hogetable3 |
■各テーブルのスキーマ確認
1 2 3 4 |
sqlite> .schema CREATE TABLE hogetable("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,"username" text); CREATE TABLE hogetable2("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,"username" text); CREATE TABLE hogetable3("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,"username" text); |
■テーブル作成
1 |
sqlite> create table hogetable("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,"username" text); |
■テーブル削除
1 |
sqlite> drop table hogetable; |
■カラム追加
1 |
sqlite> alter table user add column 'tel_info' text; |
■カラム削除
SQLiteにはカラム削除操作は存在しない模様
■レコード作成
table名の後ろ括弧内にカラム名を指定する。指定しない場合はvaluesにカンマ区切りでvalueを記載する。
1 |
sqlite> insert into hogetable(username) values('test'); |
■レコード参照
1 2 3 |
sqlite> select * from hogetable; 1|test 2|test |
■レコード削除
whereを省略すると、全レコードが削除される。
1 |
sqlite> delete from hogetable where id = '2'; |
■オートインクリメントの初期化
sqlite_sequenceに値が保管されている。削除すれば初期化される。
1 2 3 4 5 6 7 |
sqlite> select * from hogetable; 6|test sqlite> delete from hogetable; sqlite> delete from sqlite_sequence where name='hogetable'; sqlite> insert into hogetable(username) values('test'); sqlite> select * from hogetable; 1|test |
■Shellから実行
後ろにつければできる。
1 2 3 4 |
# sqlite3 hogedb 'select * from hogetable' 1|test # sqlite3 hogedb 'create table shelldb(address text)' |
以上。