从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语句中使用?作为我们正在查询的值的占位符
  • 我们在SELECT语句中设置了LIMIT 1,以确保最多只返回一行,因为您希望将结果分配给单个变量
  • 传递给crsr.execute的值必须是元组,即使只有一个值
  • crsr.fetchone的返回值是tuple,即使我们只获取一列

最新更新