Python sqlite3查询操作过程解析
时间:2020-02-20来源:系统城作者:电脑系统城
这篇文章主要介绍了Python sqlite3查询操作过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
记录查询操作及获取查询结果列字段的方法
1.sqlite3 中获取所有表名及各表字段名的操作方法
SQLite 数据库中有一个特殊的表叫 sqlite_master,sqlite_master 的结构如下:
- CREATE TABLE sqlite_master (
- type TEXT,
- name TEXT,
- tbl_name TEXT,
- rootpage INTEGER,
- sql TEXT
- );
可以通过查询这个表来获取数据库中所有表的信息
![Python sqlite3查询操作过程解析](/d/file/shujuku/SQLite/2020-02-20/b9ce9e89d76f00f6b64858b17f04d3a4.png)
- SELECT * FROM sqlite_master WHERE type='table';
查询某张表的所有字段
- PRAGMA table_info(表名);
- 示例:
- PRAGMA table_info(sqlite_sequence);
2. python 操作sqlite3,获取sql 查询结果及对应查询结果的列名的方法
- class DBOperate(object):
- """
- 数据库操作类
- """
- def __init__(self, db_file_path):
- # 连接 sqlite db
- # 关于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()
-
- def queryall(self, sql):
- """
- 查询所有的数据及对应的列名
- :param sql:
- :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] for field_tuple in columns_tuple]
- # TODO 获取查询结果
- query_result = self.cur.fetchall()
- self.cur.close()
- return query_result, columns_list
-
- def close(self):
- """
- 关闭数据库连接
- :return:
- """
- if self.cur is not None:
- self.cur.close()
- if self.conn is not None:
- self.conn.close()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关信息