python - 从 sql 表中检索单个值
问题描述
我希望从我创建的这个数据库中检索一个值。例如,用户将从下拉框中选择一个名称(这些名称对应于数据库中的名称列)。选择的名称将存储在名为 name_value 的变量中。我想知道如何在数据库中搜索 name_value 中的名称,并且只将下一列中名为 Scientific 的其他文本返回到另一个名为 new_name 的变量中。我希望我解释得很好?
connection = sqlite3.connect("Cw.db")
crsr = connection.cursor()
crsr.execute("""CREATE TABLE Names(
Name text,
Scientific text)""")
插入这些值:(还有更多但没有必要全部添加)
connection = sqlite3.connect("Cw.db")
crsr = connection.cursor()
crsr.execute("""INSERT INTO Names (Name, Scientific)
VALUES
('Human', 'Homo Sapien');""")
解决方案
SQL 中的SELECT
语句可用于查询具有特定值的行,并指定要返回的列。
在您的情况下,代码看起来像这样
stmt = """\
SELECT Scientific
FROM Names
WHERE Name = ?
LIMIT 1
"""
name = 'Human'
crsr.execute(stmt, (name,))
new_name = crsr.fetchone()[0]
需要注意的几点:
- 我们
?
在SELECT
语句中使用 a 作为我们要查询的值的占位符 - 我们
LIMIT 1
在SELECT
语句中设置以确保最多只返回一行,因为您希望将结果分配给单个变量。 - 传递给的值
crsr.execute
必须是一个元组,即使只有一个值 - 的返回值
crsr.fetchone
是 atuple
,即使我们只获取一列。
推荐阅读
- r - 根据代码和日期过滤数据
- java - 如何在 Spring 框架中实现服务器和客户端之间的快速通信?
- c# - 数据插入 Excel 文件
- javascript - 不能在three.js中播放透明webm?
- zurb-foundation - 切换菜单 - 动画高度
- php - 全新安装中未找到类“类‘表单’”
- sql - Qliksense 中的 SQL 逻辑
- javascript - async await 返回一个 Promise 而不是一个值
- shieldui - FieldType.Number 将编辑值限制为 100,任何超过 100 的值都会自动更改为 100
- python-2.7 - 无法为操作“Variable_4/Adam_1”分配设备