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');""")
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
,即使我们只获取一列