SQLite SQLiteを触ってみよう 【第2回 操作編】

この記事は2014年11月11日に書かれたものです。内容が古い可能性がありますのでご注意ください。


前回はインストールの方法を書きました。
今回は実際にSQLiteを触って、DB、テーブルの作成、操作について記載します。

DB作成とDBアクセス(接続)

SQLiteはDBを作成すると1つのファイルを生成します。
このファイルにDBの情報がすべて詰まっていると言っても過言ではありません。
では、実際にDBを作成するために下記コマンドを実行してみましょう。

sqlite3 ./test_DB.sqlite

コマンドを実行するとSQLiteのコマンドプロンプトに移動します。
簡単に言うと、test_db.sqliteというDBにログインした状態になります。
つまり、作成と同時にログインした状態と考えても良いでしょう。
SQLiteのコマンドプロンプトから抜ける場合は下記コマンドを実行します。

.exit

テーブルも何も作成していない場合、何もファイルはできません。
※ファイルの拡張子はなんでもokです。今回は分かるように.sqliteとしたにすぎません。
01_login

DB削除時のお話になりますが、SQLiteは一般的なDBと異なり、DBサーバと言うものがありません。
組込み型のDBです。
そのため、DROP DATABASE データベース名といったことはせずに
通常のファイルと同様に上記ファイルを削除すれば事足ります。

テーブル作成

では、改めてSQLiteにアクセスし、簡単テーブルを作成します。
テーブル名:employee_tbl

カラム名 データ型 その他
id INTEGER 主キーかつ、自動採番
name TEXT 名前
gender INTEGER(1) 性別・・・男:0、女:1
salary INTEGER 給料
notes TEXT 備考

【SQL文】

CREATE TABLE employee_tbl (
id INTEGER PRIMARY KEY,
name TEXT,
gender INTEGER(1),
salary INTEGER,
notes TEXT)

02_create_tbl

SQL文自体は一般的なものと同じですが、1点異なる箇所があります。
MySQLやMariaDBは自動採番を行う際、AUTO_INCREMENTというオプションを付けます。
PostgreSQLについては、シーケンステーブルを作成し、カラムとリンクさせます。
しかし、SQLiteに関しては特に何も記載していません。
これは、PRIMARY KEY制約を付けたカラムのデータ型がINGETERであった場合、
自動採番される
仕組みが備わっているためです。

自動採番

前述でありました自動採番について、触れてみたいと思います。
まず、通常通りのINSERT文を書いて正常に自動採番されているかを見たいと思います。
03_insert_data
正常に自動採番されていることが分かるかと思います。

では、ここで2件目のデータ(SAK HANAKO)を削除し、再度データを登録してみたいと思います。
どうなるでしょう・・・
04_insert_data2
また、IDに2が付きました。
このことから分かるように、登録されている値の最大値+1の値が設定されます。
つまり、番号を他のテーブルで管理していないため、このような事象が発生すると考えられます。
念のため、中抜けのパターンも試してみました。
05_insert_data3
やはり、最大値+1が設定されています。
プログラム作成を行う際には、この点は注意したいところです。

  • このエントリーをはてなブックマークに追加

PAGE TOP