LoginSignup
2

More than 1 year has passed since last update.

VScode上でSQliteを操作する方法

Posted at

目的

Railsでアプリを作っている際に、VScode上でテーブルのデータを操作したいと思いました。
本記事では

  • VScode上でテーブルを確認する方法
  • VScode上でテーブルのデータを操作(追加、編集、削除)する方法

についてまとめています。

今回使用するテーブル

今回はRailsにて簡単な名簿アプリを作成しました。
GitHubにアップロードしていますので、下記から自由にダウンロードしてください。
https://github.com/ysk91/name_list

本アプリ内ではpeopleというテーブルを用意しました。
まずはアプリ上の「新規作成」かdb>seeds.rbかでデータを適当に作ります。

VScode上でテーブルに格納されたデータを確認する

VScode上でSQliteを見るには、「sqlite3」という拡張機能を使用します。
インストール方法はこちらの記事を参考にしてください。
VSCodeでSQLiteを使うなら拡張機能を使う(sqlite3のバイナリファイルを見る方法)(Qiita)
これで自分が今、どんなテーブルを持っているのかが分かるようになります。

早速sqlite3でテーブルを表示させると、下記のようにデータが格納されていることが確認できました。
image.png

VScode上でSQliteを操作する方法

VScode上でSQliteを操作するには、sqlite3で操作したいテーブルを右クリックし、「New Query[Select]」を選択します。
「New Query[Insert]」でも良いのですが、まぁお好きにどうぞ。
image.png

すると、「-- SQLite.sql」というファイルが開きます。
このファイル上にSQliteのコードを書いて実行していく訳です。
こちらのファイルは、dbフォルダ直下に保存しておきましょう(保存しなくても操作可能)。

試しに、現在書かれているコードを実行してみましょう。

SELECT id, name, age, created_at, updated_at
FROM people;

コードを実行するには、画面上で右クリックをして「Run Query」をクリックします。
image.png

すると、peopleテーブルに格納されているデータが見られるはずです。

INSERT

dさんをこの名簿に参加させます。\Welcome/
dさんの情報を追加しましょう。
記載する情報はnameagecreated_atupdated_atです(created_atupdated_atはsqlite3から操作する場合は自動更新しないので、操作してあげる必要がある)。
下記コードを実行します。

INSERT INTO people (name, age, created_at, updated_at)
VALUES ("d", 40, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);

「Run Query」しテーブルを確認すると、id=4にdさんの情報が格納されたことが分かります。

Tips
ここで、実行したコードはコメントアウトしておきましょう。
次に操作するときに同じコードが実行されてしまうのを防ぐためです。
コメントアウトは、コメントにしたい行を選択して「Ctrl + /」で可能です。

CURRENT_TIMESTAMPについて

操作したテーブルをよく見ると、created_atupdated_atの値が微妙に違うことが分かります。

image.png

アプリ上、もしくはseed.rbでデータを作成したcさんのcreated_atupdated_atには時間表記の後にミリ秒?が続きますが、sqlite3からデータ作成したdさんにはそれがありません。
このような違いはありますが、実際にアプリ上での表記に差はないので、今はこれで良しとします。
image.png

ミリ秒?まで出力するメソッドをご存じの方がいたらコメント欄にて教えて頂けると幸いです。

UPDATE

今、aさんが誕生日を迎えて11歳になったとします。\HBD/
aさんの情報を更新していきましょう。
更新する情報はageupdated_atです。
下記コードを実行します。

UPDATE people
SET age = 11, updated_at = CURRENT_TIMESTAMP
WHERE id = 1;

「Run Query」しテーブルを確認すると、id=1であるaさんが無事に誕生日を迎えられたことが分かります。

DELETE

今、dさんからこの名簿から退出したいと申し出がありました。\Good-Bye/
bさんのデータを削除したいと思います。
bさんのidは2なので、下記コードを実行します。

DELETE FROM people
WHERE id = 2;

「Run Query」しテーブルを確認すると、id=2であるbさんのデータが削除されているのが分かります。

まとめ

以上がVScodeでSQliteを操作する方法です。
意外と一か所に情報がまとまっていなかったので、本記事が誰かの役に立つことを願っています。
ご指摘等はコメント欄にてお願いします。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2