简介
数据库是解决内存不足的另一方案,关系数据库存储一系列的表格,通过多个表格间的关系来提取与合并特定的信息。目前常用的关系数据库是采用SQL语句,例如MySQL,PostgreSQL,SQLite等。它们的语法是相通的,由于SQLite不需要繁琐的配置,这里我们着重介绍。
注意:小型、关系清晰、便于检索展示的信息采用关系数据库存储更为合适,而原始数据及特定类型的数据(如VCF,BED等)使用相应的专业工具效率更高。
SQLite安装
linux可以通过包管理工具直接安装:
sudo apt install sqlite3
也支持通过源码编译安装。
SQLite交互探索
SQLite通过命令行工具交互,首先连接数据库(gwascat.db
为创建好的例子数据,例子数据下载):
$ sqlite3 gwascat.db
SQLite version 3.36.0 2021-06-18 18:36:39
Enter ".help" for usage hints.
sqlite>
通过点命令来进行管理,.table
命令可以查看当前数据库内的表格:
sqlite> .table
gwascat
.schema
命令可以查看数据库的架构:
sqlite> .schema
CREATE TABLE gwascat(
id integer PRIMARY KEY NOT NULL,
dbdate text,
pubmedid integer,
author text,
date text,
journal text,
link text,
study text,
trait text,
initial_samplesize text,
replication_samplesize text,
region text,
chrom text,
position integer,
...
以上信息包含了表格的字段名与数据类型(可以通过此命令创建相同表格)。
SQLite包括5种数据类型:
- 文本(Text);
- 整数(Integer);
- 实数(Real);
- 空(NULL),代表缺失值;
- 二进制文件(BLOB)
需要注意的是,SQLite虽然需要指明每列的数据类型,当你存入不同类型的数据时会进行隐式转换预防信息丢失。不过还是建议系列使用相同的数据类型,下游处理的时候可以不需要再考虑数据类型的问题。
注意:MySQL与PostgreSQL有严格的数据类型。
其它常用的点命令与介绍如下表所示:
下一节我们将重点介绍一下数据的查询操作。