sqliteコマンド データベース基本操作 (Linux)

sqlite370_banner
sqliteは、C/C++,Java,PHP,Perl等で利用できる軽量データベースであり、MacOS, iOS, Android等に標準搭載されています。Windows, Linuxでもインストールすれば利用可能です。また、.NET環境で利用できるSystem.Data.SQLiteもあります。

今回は、Linux環境でsqliteのコマンドをたたいてデータベースを操作する方法を紹介します。

関連記事)
.NET環境でSQLiteを使う方法についてはSystem.Data.SQLiteデータベース基本操作 その1 基本コマンド(C#)をご参照下さい。

 

環境的なこと


本ブログ記事ではロリポップ!のレンタルサーバで各種コマンドを実行しましたが、
特にレンタルサーバでなくてもsqliteが入っているLinuxマシンであれば基本的な手順は変わりません。

なお、ロリポップ!のチカッパプランならSSHでレンタルサーバにログインできます。
SSHについてはSSHについて- ロリポップ!を参照して下さい。

 

データベース作成


sqlite3 の後にデータベースファイル名を指定します。
指定したファイルがない場合は新規作成となります。

ここではdb_test.sqlite3というファイルを新規作成します。

-bash-3.2$ sqlite3 db_test.sqlite3
SQLite version 3.3.16
Enter ".help" for instructions
sqlite> 
sqlite> 

プロンプトがsqlite>に変わり、コマンドモードに入りました。
このコマンドモードから抜けるには.exitコマンドを実行します。

SQLite version 3.3.16
Enter ".help" for instructions
sqlite> 
sqlite>.exit
sqlite> 
-bash-3.2$
-bash-3.2$

 
以下のようにdb_test.sqlite3というファイルが作成されたことを確認できます。

-bash-3.2$
-bash-3.2$ ls -al
total 16
drwxr-xr-x  2 マシン名 User名 4096 Jan 19 08:39 .
drwx---r-x 19 マシン名 User名 4096 Jan 19 07:48 ..
-rw-r--r--  1 マシン名 User名    0 Jan 19 08:39 db_test.sqlite3
-bash-3.2$
-bash-3.2$

このファイルごと別マシンに移動したり、バックアップをとったりと取り扱いが便利です。
もちろん、間違って削除しないように注意が必要です。

 

テーブル作成


CREATE TABLE テーブル名 ( カラム名 型 , カラム名 型 の繰り返し,,, ) で作成します。

今回は名前と年齢を格納するいわゆる名簿のようなテーブルtest_tableを作成してみます。

カラム名
id 整数型
name 文字列型
age 整数型
sqlite> CREATE TABLE test_table ( id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar(128) ,age INTEGER);

idはプライマリキーとしています。
なお、AUTOINCREMENTを指定すると、レコードの追加操作時にidを省略しても自動で他のidと被らないidを付与してくれます。

.tableコマンドでデータベース内に存在するテーブルを確認できます。

sqlite> .table
test_table

 

レコード挿入


テストレコードを挿入してみましょう、INSERTコマンドで挿入できます。
INSERT INTO テーブル名 ( カラム名 , カラム名 の繰り返し,,,) VALUES( 値, 値 の繰り返し,,,);

sqlite> INSERT INTO test_table ( id , name , age ) VALUES( 1, "test", 99);

なお、idはプライマリキーなので重複した値を指定すると怒られます。

sqlite> INSERT INTO test_table ( id , name , age ) VALUES( 1, "test1", 15);
SQL error: PRIMARY KEY must be unique

また、テーブル名の後のカラム名は自明ならば省略できます。

sqlite> INSERT INTO test_table VALUES( 2, "test2", 99);

なので通常、プライマリキーであるidは常に省略してSQLiteに値の管理を任せるのが楽です。

sqlite> INSERT INTO test_table ( name, age )  VALUES( "test3", 101);

 

レコード問い合わせ


挿入したレコードがテーブルに格納されているか確認しましょう。
以下はSELECTコマンドでテーブルに含まれる全てのレコードを問い合わせています。
挿入時に値を省略したid値も3で格納されていることが確認できます。

sqlite> SELECT * from test_table;
1|test|99
2|test2|99
3|test3|101

 

レコードの更新


UPDATEコマンドですでに挿入済みのレコードの値を更新できます。
更新するレコードの条件はWHEREで指定します。

sqlite> UPDATE test_table SET name="hogehoge" WHERE id = 2;
sqlite> SELECT * from test_table;
1|test|99
2|hogehoge|99
3|test3|101

 

レコードの削除


DELETEコマンドで削除出来ます。削除するレコードの条件はWHEREで指定します。

sqlite> 
sqlite> DELETE from test_table WHERE id = 3;
sqlite> SELECT * from test_table;
1|test|99
2|hogehoge|99

以上、Linuxからsqliteコマンドを叩いてデータベースを操作する手順でした。

1件のコメント

  1. 【ブログ更新 】 sqliteコマンド データベース基本操作 (Linux) http://t.co/BVskyJjn 直接コマンドを叩いてデータベースを操作する方法です。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です