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
コメント