Python sqlite3查询操作过程解析
这篇文章主要介绍了Pythonsqlite3查询操作过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
记录查询操作及获取查询结果列字段的方法
1.sqlite3中获取所有表名及各表字段名的操作方法
SQLite数据库中有一个特殊的表叫sqlite_master,sqlite_master的结构如下:
CREATETABLEsqlite_master( typeTEXT, nameTEXT, tbl_nameTEXT, rootpageINTEGER, sqlTEXT );
可以通过查询这个表来获取数据库中所有表的信息
SELECT*FROMsqlite_masterWHEREtype='table';
查询某张表的所有字段
PRAGMAtable_info(表名); 示例: PRAGMAtable_info(sqlite_sequence);
2.python操作sqlite3,获取sql查询结果及对应查询结果的列名的方法
classDBOperate(object):
"""
数据库操作类
"""
def__init__(self,db_file_path):
#连接sqlitedb
#关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,
#设置isolation_level=None,变为自动提交模式
self._db_file_path=db_file_path
self.conn=sqlite3.connect(self._db_file_path,check_same_thread=False,isolation_level=None,timeout=1000)
#创建游标
self.cur=self.conn.cursor()
defqueryall(self,sql):
"""
查询所有的数据及对应的列名
:paramsql:
:return:
"""
self.cur.execute(sql)
#TODO获取查询结果的列名
columns_tuple=self.cur.description
#columns_tuple示例:(('TACHE_NAME',None,None,None,None,None,None),('avgtime',None,None,None,None,None,None),('DATE',None,None,None,None,None,None),('ANALYSIS_TIME',None,None,None,None,None,None))
columns_list=[field_tuple[0]forfield_tupleincolumns_tuple]
#TODO获取查询结果
query_result=self.cur.fetchall()
self.cur.close()
returnquery_result,columns_list
defclose(self):
"""
关闭数据库连接
:return:
"""
ifself.curisnotNone:
self.cur.close()
ifself.connisnotNone:
self.conn.close()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。