Firefoxのアドオン、SQLite Managerの基本的な使い方のメモ書き
普段使う事はないであろうFirefoxのアドオンの1つ、SQLite Managerの基本的な使い方を、ずばりメモ書きしてます。
Firefoxのアドオンなので、つまり、PCにソフトウェアをインストールせずに利用出来るので、インストール権限が付与されてないPCでもGUIでSQLiteが扱えるのが特徴なのです。
アドオンのページ → SQLite Manager

インストール方法とか書くまでもないと思うので割愛。因みにSQLite ManagerはFirefoxの「ツール」メニュー内から起動可能です。
まぁSQLiteをデータ管理に使っている人はそんなにいないとは思うけど(AccessとかExcelで事足りてる人多いと思う)、使える道具は多いに越した事はないので、くどいけどメモ書きします。
所詮はアドオンなので、対して気の利いた機能はないけど、GUIでデータの入力や削除、コピー等基本的な事が出来るし、SQLを保存出来て一発でビューとして表示出来たり、何かと便利なのです。
因みにレコード番号や日時は自動入力が可能です!
また、暗号化の機能はないので、注意が必要です。
ExcelファイルをSQLite Managerに取り込む為にCSV形式で別名保存する
ExcelからCSV形式でSQLite Managerに取り込む事も可能です。
ただ、SJISではなくUTF-8で取り込む必要がある場合、最新版のExcel、2016以降でないと、「CSV UTF-8(カンマ区切り)」で保存出来ないので、サクラエディタ等で開いてUTF-8で保存し直すなど一手間必要なので、注意が必要です。

Excelで「別名で保存」を選択し、CSV UTF-8(カンマ区切り)で保存をする。

サクラエディタで開いて見ると、中国語と日本語が混在しているファイルが文字化けせずに開けている事が確認出来ます。
これでExcelファイルをCSVに変換し、SQLite Managerに取り込む準備が完了しました!
いよいよExcelから変換したCSVファイルをSQLite Managerに取り込む

さて、SQLite Managerに戻り、「取り込み」をクリックして取り込むCSVファイルを選択してCSVのタブをクリックし、「First row contains column names」にチェックを入れ、コンマを選択してOKをクリック。

新しいテーブルを作成するかどうかのダイアログが出るので、OKをクリック。


その後、「Define Columns」のウィンドウが出てくるので、ここでデータの種類やプライマリーキー、デフォルトのデータやNullを許可するかどうか等を設定。
現在のバージョンではデフォルトのデータは日時以外自動で入力してくれません。

OKを押すと、左のTablesに取り込んだCSVのファイル名でテーブルが作成されているのが確認できます。

「参照と検索」をクリックするとUTF-8で取り込まれている為、SQLite Manager上でも日本語・中国語混在でも文字化けせずに表示されている事が確認出来ます。

因みに100以上レコードがある場合、下部の矢印から次のページへ移動する事が出来ます。
SQLを発行し、必要なデータを抽出してみる
まぁSQLiteというか、SQLの初歩の初歩でWHERE句で完全一致するデータを抽出してみます。
SELECT * FROM 'Test_Excel' WHERE "Service Name" = 'ASUS'

結果、Service Nameカラムに「ASUS」と完全一致した文字列を含むレコードが表示されました。
次にこれも初歩の初歩でLIKE句であいまい検索をしてみます。
SELECT * FROM "Test_Excel" WHERE "Service Name" LIKE "58%"

結果、Service Nameカラムに「58」から始まる文字列を含むレコードが表示されました。
因みに試しに最初は「シングルクォーテーション」と「ダブルクォーテーション」を混ぜて検索し、次のLIKE句ではダブルクォーテーションのみでくくってSQLを発行していますが、どちらもエラーにならず、正常に表示されています。
もちろんテストなのでごちゃまぜに使ってみただけです。まぁつまり「ダブルクォーテーション」のみでくくって検索出来るという事です。
また、あいまい検索では*(アスタリスク)ではなく%(パーセント)を使用する事が分かりましたね。
ついでにCOUNTで条件に合うレコード数をカウントし、AS句でカラムの名前も変えてみます。
SELECT COUNT(*) AS "Service NameにTwから始まる文字列を含むカラムの数" FROM "Test_Excel" WHERE "Service Name" LIKE "Tw%"

Service Nameに「Tw」から始まるレコードが何個あるかをカウントしてみました。カラム名もAS句でちゃんと反映されています。
SQLite Managerでテーブルを作成、そしてビュー(View)を使ってみる
テーブルはメニューのテーブルから作成を選択して、インポート時と同じく各カラムの属性を設定すればいい程度の作業なので割愛。
また、ビュー(View)はSQLを保存して、一発で条件にあうデータを抽出する際に利用出来ます。

メモなので適当ですが、ビューからビューを作成をクリック。

ここで先ほど発行したSQL文とビューのタイトルを付けてOKを押すと、もう一つダイアログが出るのでそこで保存。

左の列に先ほど保存したビュー(View)が出来てるのでクリックすると、すぐに出てきます。
SQLite Managerのデータ追加とCOUNTのNOT NULLのメモ書き

データの追加はSQLを発行してもいいけれど、GUIでも可能です。ぶっちゃけ追加をクリックして入力すればいいだけです。

ついでに新たに適当に作成したテストテーブルで、日付についてテストしてみます。
日付は「CURRENT_DATE」と指定してあげれば今現在の日付を画面キャプチャの形式で自動で入力してくれます。

SQL文でも「CURRENT_DATE」としてしてあげると、ずばり現在の日付をカウントしてくれます。で、初歩的ですが、「NOT NULL」を指定しないとカウントは「0」となりますよ! なぜかって? それは調べましょう~。
因みにCOUNTで複数条件を一括表示する場合は下記のように指定するとできます。
SELECT COUNT("日付" = "2017-03-03" AND "分類1" = "肉" OR NULL) AS "3月3日の肉",
COUNT("日付" = "2017-03-03" AND "分類1" = "魚" OR NULL ) AS "3月3日の魚"
FROM "Test_Table"

日付が3月3日でかつ肉と魚のそれぞれの数をカウントして取得しています。で、今度は「OR NULL」を指定します。
肉と魚とか意味不明なものを数えてますが、テストでメモなので許してね!
まぁただのメモブログなので適当ですが、SQLite Managerの基本的な使い方のメモ書きでした。参考になれば幸いです。でゎでゎ♪

FirefoxがFirefox Quantum になってしまってからはどうしていますか?
わたしは、しかたなく、SQLコマンドを入力しています。
ども!返信遅くなりました。
今は特にFireFoxで使う必要がないので放置してます><
権限がないPCでもさくっと使える事に意味があった!(個人的にw)
>るっちょさん
>
>FirefoxがFirefox Quantum になってしまってからはどうしていますか?
>
>わたしは、しかたなく、SQLコマンドを入力しています。
>
>