こんにちは。
SQLiteの勉強メモです。
概要
以下の記事の続きになります。
テーブルの作成
itemsというテーブルを以下のカラムで作成します。
名前 | 型 | PRIMARY KEY | NOT NULL |
---|---|---|---|
Id | INTEGER | ○ | |
Name | TEXT | ○ | |
TypeId | INTEGER | ○ | |
ColorId | INTEGER | ○ |
以下のコマンドでそれぞれのテーブルを作成します。
プライマリーキーはIdです。
さらに、IdにはAUTOINCREMENTを設定します。
これは、INTEGERでPRIMARY KEYに設定した場合に、
値を指定しなくても最大のインデックス+1を自動で採番するというものです。
sqlite> CREATE TABLE items( ...> Id INTEGER PRIMARY KEY AUTOINCREMENT ...> , Name TEXT NOT NULL ...> , TypeId INTEGER NOT NULL ...> , ColorId INTEGER NOT NULL ...> );
テーブルの一覧を以下のコマンドで確認します。
sqlite> .tables items
テーブルが生成されているが確認できます。
テーブルの削除
まず、testというテーブルを作成します。
sqlite> CREATE TABLE test(id int primary key, name text);
sqlite> .tables
items test
削除する際のコマンドは、DROP TABLEです。
sqlite> DROP TABLE test; sqlite> .tables items
testテーブルが削除されたのが確認できました。
カラムの追加
itemsテーブルにMemoというカラムを追加しましょう。
型はTEXTです。
sqlite> ALTER TABLE items ADD COLUMN Memo TEXT; sqlite> .schema items CREATE TABLE items( Id INTEGER PRIMARY KEY AUTOINCREMENT , Name TEXT NOT NULL , TypeId INTEGER NOT NULL , ColorId INTEGER NOT NULL , Memo TEXT);
データの追加
全データを入力する
INSERT INTO テーブル名 VALUES(...)
で行います。
itemsテーブルにデータを追加してみましょう。
sqlite> INSERT INTO items VALUES(1, 'Apple', 1, 1, NULL);
SELECTで確認するとデータが追加されているのがわかります。
sqlite> SELECT * FROM items; 1|Apple|1|1|
特定のカラムのデータを入力する
INSERT INTO テーブル名(カラム名、カラム名…) VALUES(データ、データ…); で行います。
sqlite> INSERT INTO items(Name, TypeId, ColorId) VALUES('Strawberry', 1, 1);
SELECTで確認するとデータが追加されているのがわかります。
Idは自動で値が割り振られています。
sqlite> SELECT * FROM items; 1|Apple|1|1| 2|Strawberry|1|1|
SELECTの結果を見やすくする
SELECTした際、初期のままだと非常に見にくいです。
sqlite> SELECT * FROM items; 1|Apple|1|1| 2|Strawberry|1|1|
なので、カラム名を表示するようにし、
modeをカラム毎に左揃えで表示する設定に変更します。
sqlite> .headers on sqlite> .mode column
結果は以下のようになります。 非常に見やすくなりますね。
sqlite> SELECT * FROM items; Id Name TypeId ColorId Memo ---------- ---------- ---------- ---------- ---------- 1 Apple 1 1 2 Strawberry 1 1
以上です。