sqlite3 windows10コンソールでcsvファイルimportしてsql操作

sqlite3 含コンソールツール版 インストール

sqlite-tools-win32-x86-3340100.zip

インストールしない、回答してsqlite3

DOS画面で sqlite3 ファイル名 として空のファイル作成

C:\sqlite>sqlite3 importcsv01.sql3
SQLite version 3.33.0 2020-08-14 13:23:32
Enter ".help" for usage hints.

↑はDOSコマンド

以降はsqlite3へのコマンドなので。

 .schema (sqliteコマンド)

 select * from table1; (sql文)

初期設定を確認。変更

.show オプションを確認

sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width:
    filename: importcsv01.sql3

セパレーターが”|”なので”,”に変更(一時的な設定、ファイルには保存されない)

sqlite> .separator ,
sqlite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: ","
rowseparator: "\n"
       stats: off
       width:
    filename: importcsv01.sql3

DBの操作

テーブルを作成

CREATE TABLE テーブル名(カラム1,カラム2・・・・);

テーブルを削除する

作成済みのテーブルを削除する DROP TABLE

DROP TABLE テーブル名;

テーブルの表示

sqlite> .tables
company

テーブルスキーマの確認

sqlite> .schema
CREATE TABLE company(
  "date" TEXT,
  "time" TEXT,
  "process" TEXT,
  "p.take_profit" TEXT,
  "p.loss_cut" TEXT,
  "p.posi_lotsize" TEXT,
  "p.posi_minus" TEXT,
  "p.posi_pnl" TEXT,
  "p.trail_pnl" TEXT,
  "p.trail_count" TEXT,
  "p.trail_stage" TEXT,
  "p.current_price" TEXT,
  "p.posi_open_price" TEXT,
  "p.trail_start_price" TEXT,
  "p.tick_high" TEXT,
  "p.tick_low" TEXT,
  "p.posi_side" TEXT,
  "p.next_side" TEXT,
  "p.profit_width" TEXT,
  "p.stop_width" TEXT,
  "p.trail_profit_width" TEXT,
  "p.trail_stop_width" TEXT,
  "p.interval" TEXT,
  "p.lotsize" TEXT,
  "p.child_order_type" TEXT

テーブル名を変更する

作成済みのテーブル名を変更する ALTER TABLE 文を使います。

ALTER TABLE table_old rename to table_new;

カラムを追加する

一度作成したテーブルに後からカラムを追加する ALTER TABLE 文

ALTER TABLE テーブル名 ADD COLUMN カラム名[ データ型];

ビューを作成する

ビュー(MS_accessで言うクエリー)を作成する

CREATE VIEW ビュー名 AS SELECT文;

ビューを削除する

作成済みのビューを削除。

DROP VIEW ビュー名;

同じフォルダに入れておいたcsvを読み込む

.import ファイル名 テーブル名

(先に .mode csv としてcsvモードにする または、.separator , としてカンマ区切りにする。どちらの影響か不明だが、1行が一つのカラムとして読まれてしまう。)

sqlite>.import log.csv logdata(;は要らない)

テーブル名を記載しないとimportしてくれない

表示してみる

sqlite>select * from logdata;

sql文なので文末に ; が必要


select 抽出

特定の列を抽出する

select 列名 from テーブル;

select time from logdata;

select “p.take_profit” from logdata;

column名に英数字以外が含まれているときは””でくくらなければならない

複数のcolumnsを抽出する

select date,time,take_profit from nekolog;

取得したデータをカラムの値でソート(ORDER BY句)

select date,time,take_profit from nekolog order by take_profit;

2020/2/9,11:39:59,0
2020/2/9,11:40:37,0
2020/2/9,11:40:41,1
2020/2/9,11:41:09,1
2020/2/9,12:04:51,10
2020/2/9,12:05:22,10
(take_profitは数値ではなく文字になっているらしい)

select date,time,take_profit from nekolog order by tick_high;

selectしていない列の値で並び替えすることもできる。


sqlite3のデータ型

NULL       NULL値
INTEGER    符号付整数。1, 2, 3, 4, 6, or 8 バイトで格納
REAL       浮動小数点数。8バイトで格納
TEXT       テキスト。UTF-8, UTF-16BE or UTF-16-LEのいずれかで格納
BLOB       Binary Large OBject。入力データをそのまま格納

sqlite3のキーワード(識別子)

  • ABORT
  • ACTION
  • ADD
  • AFTER
  • ALL
  • ALTER
  • ALWAYS
  • ANALYZE
  • AND
  • AS
  • ASC
  • ATTACH
  • AUTOINCREMENT
  • BEFORE
  • BEGIN
  • BETWEEN
  • BY
  • CASCADE
  • CASE
  • CAST
  • CHECK
  • COLLATE
  • COLUMN
  • COMMIT
  • CONFLICT
  • CONSTRAINT
  • CREATE
  • CROSS
  • CURRENT
  • CURRENT_DATE
  • CURRENT_TIME
  • CURRENT_TIMESTAMP
  • DATABASE
  • DEFAULT
  • DEFERRABLE
  • DEFERRED
  • DELETE
  • DESC
  • DETACH
  • DISTINCT
  • DO
  • DROP
  • EACH
  • ELSE
  • END
  • ESCAPE
  • EXCEPT
  • EXCLUDE
  • EXCLUSIVE
  • EXISTS
  • EXPLAIN
  • FAIL
  • FILTER
  • FIRST
  • FOLLOWING
  • FOR
  • FOREIGN
  • FROM
  • FULL
  • GENERATED
  • GLOB
  • GROUP
  • GROUPS
  • HAVING
  • IF
  • IGNORE
  • IMMEDIATE
  • IN
  • INDEX
  • INDEXED
  • INITIALLY
  • INNER
  • INSERT
  • INSTEAD
  • INTERSECT
  • INTO
  • IS
  • ISNULL
  • JOIN
  • KEY
  • LAST
  • LEFT
  • LIKE
  • LIMIT
  • MATCH
  • NATURAL
  • NO
  • NOT
  • NOTHING
  • NOTNULL
  • NULL
  • NULLS
  • OF
  • OFFSET
  • ON
  • OR
  • ORDER
  • OTHERS
  • OUTER
  • OVER
  • PARTITION
  • PLAN
  • PRAGMA
  • PRECEDING
  • PRIMARY
  • QUERY
  • RAISE
  • RANGE
  • RECURSIVE
  • REFERENCES
  • REGEXP
  • REINDEX
  • RELEASE
  • RENAME
  • REPLACE
  • RESTRICT
  • RIGHT
  • ROLLBACK
  • ROW
  • ROWS
  • SAVEPOINT
  • SELECT
  • SET
  • TABLE
  • TEMP
  • TEMPORARY
  • THEN
  • TIES
  • TO
  • TRANSACTION
  • TRIGGER
  • UNBOUNDED
  • UNION
  • UNIQUE
  • UPDATE
  • USING
  • VACUUM
  • VALUES
  • VIEW
  • VIRTUAL
  • WHEN
  • WHERE
  • WINDOW
  • WITH
  • WITHOUT

コメント

amazon 本日のタイムセール Time Sale
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 動画290本28.5時間 \24,000 (毎月月初数日間は 1800円)
楽天モバイル、妻がiphone SE2、息子がiphone11で使ってます。一番安くて通信品質イマイチ
タイトルとURLをコピーしました