zoukankan      html  css  js  c++  java
  • python sqlite3 查询操作及获取对应查询结果的列名

    记录查询操作及获取查询结果列字段的方法

    1.sqlite3 中获取所有表名及各表字段名的操作方法

    SQLite 数据库中有一个特殊的表叫 sqlite_master,sqlite_master 的结构如下:

    CREATE TABLE sqlite_master ( 
    type TEXT, 
    name TEXT, 
    tbl_name TEXT, 
    rootpage INTEGER, 
    sql TEXT 
    ); 
    
    • 可以通过查询这个表来获取数据库中所有表的信息
    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()
            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()
    
    种一棵树最好的时间是十年前,其次是现在!
  • 相关阅读:
    bootstrap-table 切换页码保留勾选的checkbox
    vsftp服务器同步文件
    MySQL5.7 主从复制配置
    VMware NAT模式下设置网络
    在Jsp中调用静态资源,路径配置问题,jsp获取路径的一些方法
    centos7.3安装配置vsftp
    Linux安装配置Nginx
    jsp登录页面,展示错误信息,刷新页面后错误依然存在解决方案
    linux中使用Jmeter压测总结
    常规测试方法
  • 原文地址:https://www.cnblogs.com/gaozhidao/p/12334542.html
Copyright © 2011-2022 走看看