命令行执行SQL文件

  1. sqlite3 test.db < execute.sql

创建表

create_table.sql

  1. CREATE TABLE IF NOT EXISTS dbsnp(
  2. chrom CHAR(2),
  3. pos INT,
  4. ref VARCHAR(50),
  5. alt VARCHAR(50),
  6. rsid CHAR(20)
  7. );

执行

  1. sqlite3 dbsnp.db < create_table.sql

导入数据

TSV数据,有表头

  1. chrom pos ref alt rsid
  2. 1 10019 TA T rs775809821
  3. 1 10039 A C rs978760828
  4. 1 10043 T A rs1008829651
  5. 1 10051 A G rs1052373574
  6. 1 10051 A AC rs1326880612
  7. 1 10055 T TA rs768019142
  8. 1 10055 T A rs892501864
  9. 1 10063 A C rs1010989343

import_tsv.sql

  1. .headers ON
  2. .separator "\t"
  3. .import test.tsv dbsnp

执行

  1. sqlite3 dbsnp.db < import_tsv.sql

创建索引

  1. sqlite3 dbsnp.db 'create index variant on dbsnp(chrom, pos, ref, alt)'
  2. sqlite3 dbsnp.db .indices # 查看索引
  3. sqlite3.dbsnp.db 'explain select * from dbsnp where chrom="1"' # 查看查询是否使用了索引