python 检索sqllite库里面的所有表所有数值型字段是否有值介于21和210之间的数值,如果有打印出表名和行id
时间: 2024-02-24 09:56:33 浏览: 79
查询sql数据库每张表包含的数据条数
3星 · 编辑精心推荐
可以使用类似上面的代码,对查询结果进行一些修改即可输出符合条件的表名和行 id。以下是一个示例代码:
```python
import sqlite3
# 连接到 SQLite 数据库
conn = sqlite3.connect('your_database.db')
# 获取数据库游标
cursor = conn.cursor()
# 查询所有表名
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
table_names = [t[0] for t in cursor.fetchall()]
# 查询每个表的所有数值型字段是否有值介于 21 和 210 之间的数值,并输出符合条件的表名和行 id
for table_name in table_names:
cursor.execute(f"PRAGMA table_info({table_name})")
columns = [c[1] for c in cursor.fetchall() if c[2] == 'REAL' or c[2] == 'INTEGER']
for column in columns:
cursor.execute(f"SELECT rowid FROM {table_name} WHERE {column} BETWEEN 21 AND 210")
rows = cursor.fetchall()
if len(rows) > 0:
print(f"{table_name}: {','.join([str(r[0]) for r in rows])}")
# 关闭游标和数据库连接
cursor.close()
conn.close()
```
这段代码会查询所有表的所有数值型字段是否有值介于 21 和 210 之间的数值,并输出符合条件的表名和行 id。注意,这里假设数值型字段类型为 REAL 或 INTEGER。如果存在其他类型的数值型字段(比如 NUMERIC),需要根据实际情况进行修改。同时,这里使用了 join 方法将行 id 拼接成一个字符串,用逗号分隔。如果需要其他格式的输出,也可以根据实际情况进行修改。
阅读全文