【问题标题】:retrieving a single value from sql table从 sql 表中检索单个值
【发布时间】:2021-01-08 22:43:12
【问题描述】:

我希望从我创建的这个数据库中检索一个值。例如,用户将从下拉框中选择一个名称(这些名称对应于数据库中的名称列)。选择的名称将存储在名为 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');""")

【问题讨论】:

    标签: python sql sqlite


    【解决方案1】:

    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 的值必须是tuple,即使只有一个值
    • crsr.fetchone 的返回值是 tuple,即使我们只获取一列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2020-04-06
      相关资源
      最近更新 更多