Top > SQLite > レコード操作


コレの続きです。

レコードの追加 (INSERT)

構文
INSERT INTO テーブル名 (カラム名1, カラム名2) VALUES(値1, 値2);
  • 文字列を入力する場合は、「"」ダブルクォーテーションで囲う
  • コマンドの最後には、必ず「;」コロンをつける
  • カラム数と順番が同じであれば、カラム名を省略可能
例(正式版)
sqlite> INSERT INTO t_menu (id, name) VALUES(1, "イチゴミルク");
これで1つのレコードが追加されました。
例(省略版)
sqlite> INSERT INTO t_menu VALUES(2, "イチゴパフェ");
例(連続版)
sqlite> INSERT INTO t_menu VALUES(3, "イチゴアイス"); INSERT INTO t_menu
VALUES(4, "まるごとイチゴ");
sqlite>

レコードの抽出 (SELECT)

構文
SELECT カラム名 FROM テーブル名;
  • カラムの代わりに「*」アスタリスクを指定すると、全てのカラムを意味する
オプション設定
sqlite> .header ON
sqlite> .explain ON
としておくと、一覧表示時に見やすい(人によるかも..)
sqlite> SELECT * FROM t_menu;
id   name
---- -------------
1    イチゴミルク
2    イチゴパフェ
3    イチゴアイス
4    まるごとイチゴ
 
sqlite> SELECT name FROM t_menu;
name
----
イチゴミルク
イチゴパフェ
イチゴアイス
まるごとイチゴ

レコードの検索(WHERE)

比較演算子編

例(=)
sqlite> SELECT * FROM t_menu WHERE id=3;
id   name
---- ---------------
3    イチゴアイス

sqlite> SELECT * FROM t_menu WHERE name="イチゴアイス";
id   name
---- ---------------
3    イチゴアイス
例(>)
sqlite> SELECT * FROM t_menu WHERE id>3;
id   name
---- ---------------
4    まるごとイチゴ
例(≧)
sqlite> SELECT * FROM t_menu WHERE id>=3;
id   name
---- ---------------
3    イチゴアイス
4    まるごとイチゴ
例(!=)
sqlite> SELECT * FROM t_menu WHERE id<>3;
id   name
---- ---------------
1    イチゴミルク
2    イチゴパフェ
4    まるごとイチゴ
  • != と記述してもOK

算術演算子編

例(+)
sqlite> SELECT * FROM t_menu WHERE id=1+2;
id   name
---- ---------------
3    イチゴアイス

sqlite> SELECT * FROM t_menu WHERE id+1=3;
id   name
---- ---------------
2    イチゴパフェ

あいまい検索編

  • 文字列の一部のみを指定して条件設定
  • LIKE と % を使用する
sqlite> SELECT * FROM t_menu WHERE name LIKE "%アイス";
id   name
---- ---------------
3    イチゴアイス
  • 不明な文字数が分かっている場合は、1文字を「_」アンダーバーで 置き換えることができる

論理演算子編

  • 2 つ以上の条件式を満たすように指定できる
  • 全ての条件式を満たす必要がある場合、「AND」を使用
  • いずれかの条件を満たせばよい場合、「OR」を使用
AND
sqlite> SELECT * FROM t_menu WHERE id=3 AND name="イチゴアイス";
id   name
---- ---------------
3    イチゴアイス
OR
sqlite> SELECT * FROM t_menu WHERE id<2 OR id>3;
id   name
---- ---------------
1    イチゴミルク
4    まるごとイチゴ
両方使用
sqlite> SELECT * FROM t_menu WHERE id<2 OR (id>3 AND name="まるごとイチゴ");
id   name
---- ---------------
1    イチゴミルク
4    まるごとイチゴ

否定論理演算子編

  • 条件式を否定する場合に「NOT」を使用
sqlite> SELECT * FROM t_menu WHERE NOT id<3;
id   name
---- ---------------
3    イチゴアイス
4    まるごとイチゴ

比較演算子編

  • IN に続く括弧の中に値を並べて比較する
sqlite> SELECT * FROM t_menu WHERE id IN(1,4,5,8);
id   name
---- ---------------
1    イチゴミルク
4    まるごとイチゴ
  • 範囲を指定して取り出す場合に便利な BETWEEN...AND...
sqlite> SELECT * FROM t_menu WHERE id BETWEEN 2 AND 4;
id   name
---- -------------
2    イチゴパフェ
3    イチゴアイス
4    まるごとイチゴ

エイリアス使用したカラム表示

  • テーブルを作成時のカラム名の代わりに、別の名前を表示する
sqlite> SELECT name AS dessert FROM t_menu;
dessert
----------------
イチゴミルク
イチゴパフェ
イチゴアイス
まるごとイチゴ

レコードの並び替え

  • SELECT文で取り出したレコードの表示順番を操作できる
  • デフォルトは昇順、アルファベット順である
例1
sqlite> SELECT * FROM t_menu ORDER BY id;
id    name
----  -------------
1     イチゴミルク
2     イチゴパフェ
3     イチゴアイス
4     まるごとイチゴ
例2
sqlite> SELECT * FROM t_menu ORDER BY name;
id    name
----  -------------
4     まるごとイチゴ
3     イチゴアイス
2     イチゴパフェ
1     イチゴミルク
  • 逆に降順に並び替える場合は、DESC(descendant)を指定する
例3
sqlite> SELECT * FROM t_menu ORDER BY id DESC;
id    name
----  -------------
4     まるごとイチゴ
3     イチゴアイス
2     イチゴパフェ
1     イチゴミルク

レコードの変更

  • WHERE節でレコードを指定し、更新する
文法
UPDATE [テーブル名] SET カラム名=値 WHERE節;
sqlite> SELECT * FROM t_menu;
id    name
----  -------------
1     イチゴミルク
2     イチゴパフェ
3     イチゴアイス
4     まるごとイチゴ
sqlite> UPDATE t_menu SET name="イチゴプリン" WHERE id=3;
sqlite> SELECT * FROM t_menu;
id    name
----  -------------
1     イチゴミルク
2     イチゴパフェ
3     イチゴプリン
4     まるごとイチゴ

レコードの削除

  • WHERE節で指定してレコードを削除する
  • 指定を忘れると、全てのレコードが削除される
文法
DELETE FROM [テーブル名] WHERE節;
sqlite> DELETE FROM t_menu WHERE id=3;
sqlite> SELECT * FROM t_menu;
id    name
----  -------------
1     イチゴミルク
2     イチゴパフェ
4     まるごとイチゴ

リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Mon, 03 Jun 2019 14:37:49 UTC (686d)