!!!SQLite {{outline}} ---- !!ダウンロード https://www.sqlite.org/download.html !二種類のファイルをダウンロードして、解凍して、全部、一つのフォルダーに入れる。 *sqlite-dll-win64-x64 *sqlite-tools-win32-x86 !Windowsのプロンプトから、sqlite3.exeを実行 *ただフォルダー内でダブルクリックで起動 !!GUIで操作:DB Browser for SQLite https://sqlitebrowser.org/ !!csvファイルを読み込む *csvファイルは、見出しを一行目に書いておくこと .mode csv でモードを変更しておく .import ./ファイル名.csv テーブル名 !!コマンド入力 !終わりは ; *長いコマンドは途中で改行してもよい。 *最後に ; を打ったところまでが一つのコマンドとなる。 !!select 条件に合ったデータを選択する select * from テーブル名 where 条件 !条件は論理演算子を使う select * from テーブル名 where mode = 'written' and ipsyn13 > 50; *AND *OR *BETWEEN AND *IN(項目, 項目) *LIKE '表現' **%をワイルドカードとして使用 's%' *空の値は NULL *LIMIT 数字 **出力行数の制限 *ORDER BY 項目 **ORDER BY 項目 DESC !!関数 !avg() !sum() !count() *該当する者の個数を数える **条件を指定して、該当するものを数える select count(id) from ipsyn13 where ipsyn13 > 60; !min() !max() !distinct() *データ項目一覧作成の際に重複を除く(unique) !!Tips !ヘルプ .help !終了 .exit !データベースの確認 .databases !テーブル一覧 .tables !見出しを表示 .headers on !見出しの確認 .schema !一覧表を見やすく .explain on !カラムごとに見やすく .mode column *デフォルトは .mode list !設定一覧 .show !テーブル名の変更 alter table 古い名前 rename to 新しい名前; !カラム名の変更 *通常のSQLでは、alter table でできるが、SQLiteにはその関数がない !selectした結果の見出しを変更 {{pre sqlite> select N as '名詞句', V as '動詞句' from ipsyn_spoken; 名詞句 動詞句 --- --- 16 14 19 17 18 15 19 15 19 17 }} !!正規化 *情報が重複しないようにテーブルを整理する !!集計 !group by *グループの種類ごとにまとめる select year, count(id) from ipsyn13 group by year; !!テーブル結合 *テーブル間で共通する項目を軸にデータを結合する *結合した結果、新たなテーブルができる *該当するデータがない場合は削除される *「テーブル名.見出し」で指定する。 *テーブル名は、「as ニックネーム」でニックネームで使える。 **テーブル名が長い場合に短いニックネームで表記できるようにすると便利 *** entranceyear as ey !inner join select * from テーブルA inner join テーブルB on テーブルA.id = テーブルB.id; *表示する項目を限定するには、select * ではなく、* のところに、表示したい項目だけを列挙 select テーブルA.name, テーブルB.score from テーブルA inner join テーブルB on テーブルA.id = テーブルB.id; !left outer join *条件にマッチしないものも残す **nullと表示される !!テーブル分割:selectした結果を別のテーブルに create table 新しいテーブル名 as select * from 元のテーブル名 where 条件; !!条件分岐 CASE {{pre select case when 条件 then 値 when 条件 then 値 else 値 end }} !!エクスポート !csvファイルとして保存 .header on .mode csv .once ファイル名 select文の実行 *.once は、その一回だけ、出力先をファイルにする。 *.output は、それ以降の出力先を継続的に変更する。 !!参考 https://youtu.be/v-Mb2voyTbc