生信log

生信log39|使用sqlite构建临时数据库-附方法和使用sq

2023-08-22  本文已影响0人  小周的万用胶囊

最近的任务需要做一个工具,这个工具会定期查询文件或者数据库,原本打算从日志中提取,但日志中太多其他标准输出的内容了,提取信息可能很困难,也很容易导致错误,因此考虑了sqlit3。此篇记录sqlite3的常用命令。

1、为什么选择它?

2、软件安装

sudo apt-get install sqlite

3、命令行常见用法

sqlite3 tmp.db ".schema"

CREATE TABLE tasks (filename TEXT, vcfMD5 TEXT, task_id TEXT, anno_status TEXT, resultMD5 TEXT, error_info TEXT, time TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
sqlite3 tmp.db "SELECT * FROM tasks"
test_1.passed.indel.vcf.gz|0ce5cf61a9ba9a16372e2e342f8b62b6|annotation-1781e5036598e000||||2023-08-22 07:24:19
test_2.passed.indel.vcf.gz|4b7c2b9cb689df046ad6b3a13cc30c97|annotation-1781e5036618e000||||2023-08-22 07:24:19
# 更新数据表的值
UPDATE users SET email = 'updated@example.com' WHERE id = 2;

#插入数据 
INSERT INTO users (username, email) VALUES ('Charlie', 'charlie@example.com');

sqlite3 -header -separator $'\t' phyloP_hg38_chrM.db "SELECT * FROM phyloP;" | sed 's/NULL/NA/g' > test.tsv

4、在python中使用sqlite3

与mysql的使用类似

import sqlite3

conn = sqlite3.connect("databsae") #连接数据库
cursor = conn.cursor() #创建指针
 #数据增删查改
user_data = [('Alice', 'alice@example.com'),
             ('Bob', 'bob@example.com'),
             ('Charlie', 'charlie@example.com')]

cursor.executemany('INSERT INTO users (username, email) VALUES (?, ?)', user_data)
conn.commit() #提交
conn.close()

5、评价


参考
python sqlite3文档

上一篇 下一篇

猜你喜欢

热点阅读